@playkit-js/transcript 3.5.15 → 3.5.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playkit-transcript.js","mappings":"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,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,GAAI,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,cAAe,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,eAAgB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,eAAgB,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EA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CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,KAAM,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,eAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,yBAA0B,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YA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","sources":["./transcript/../node_modules/@playkit-js/common/dist/components/button/index.js","./transcript/../node_modules/@playkit-js/common/dist/components/input-field/index.js","./transcript/../node_modules/@playkit-js/common/dist/hoc/a11y-wrapper/index.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/add.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/answerOnAir.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/arrowClose.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/arrowOpen.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/autoScroll.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/chapter.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/close.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/closedCaptions.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/document.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/download.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/excel.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/expand.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/genericFile.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/hotspot.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/image.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/index.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/message.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/minimizedVideo.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/more.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/pdf.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/pictureInPicture.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/presentation.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/print.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/quiz.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/related.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/replay.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/screenRotation.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/share.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/spinner.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/switch.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/volumeMute.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/volumeOn.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/zip.js","./transcript/../node_modules/@playkit-js/common/dist/icon/index.js","./transcript/../node_modules/classnames/index.js","./transcript/../node_modules/@playkit-js/common/dist/components/button/Button.scss","./transcript/../node_modules/@playkit-js/common/dist/components/input-field/InputField.scss","./transcript/../node_modules/@playkit-js/common/dist/icon/icon.scss","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/spinner.scss","./transcript/./components/autoscroll-button/autoscroll-button.scss","./transcript/./components/caption-list/captionList.scss","./transcript/./components/caption/caption.scss","./transcript/./components/plugin-button/plugin-button.scss","./transcript/./components/popover-menu/popover-menu.scss","./transcript/./components/small-screen-slate/small-screen-slate.scss","./transcript/./components/spinner/spinner.scss","./transcript/./components/transcript/transcript.scss","./transcript/../node_modules/css-loader/dist/runtime/api.js","./transcript/../node_modules/css-loader/dist/runtime/sourceMaps.js","./transcript/../node_modules/deepmerge/dist/cjs.js","./transcript/../node_modules/dom-serializer/lib/foreignNames.js","./transcript/../node_modules/dom-serializer/lib/index.js","./transcript/../node_modules/domelementtype/lib/index.js","./transcript/../node_modules/domhandler/lib/index.js","./transcript/../node_modules/domhandler/lib/node.js","./transcript/../node_modules/domutils/lib/feeds.js","./transcript/../node_modules/domutils/lib/helpers.js","./transcript/../node_modules/domutils/lib/index.js","./transcript/../node_modules/domutils/lib/legacy.js","./transcript/../node_modules/domutils/lib/manipulation.js","./transcript/../node_modules/domutils/lib/querying.js","./transcript/../node_modules/domutils/lib/stringify.js","./transcript/../node_modules/domutils/lib/traversal.js","./transcript/../node_modules/entities/lib/decode.js","./transcript/../node_modules/entities/lib/decode_codepoint.js","./transcript/../node_modules/entities/lib/encode.js","./transcript/../node_modules/entities/lib/escape.js","./transcript/../node_modules/entities/lib/generated/decode-data-html.js","./transcript/../node_modules/entities/lib/generated/decode-data-xml.js","./transcript/../node_modules/entities/lib/generated/encode-html.js","./transcript/../node_modules/entities/lib/index.js","./transcript/../node_modules/htmlparser2/lib/Parser.js","./transcript/../node_modules/htmlparser2/lib/Tokenizer.js","./transcript/../node_modules/htmlparser2/lib/index.js","./transcript/../node_modules/is-plain-object/dist/is-plain-object.js","./transcript/../node_modules/parse-srcset/src/parse-srcset.js","./transcript/../node_modules/picocolors/picocolors.browser.js","./transcript/../node_modules/sanitize-html/index.js","./transcript/../node_modules/sanitize-html/node_modules/escape-string-regexp/index.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/at-rule.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/comment.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/container.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/css-syntax-error.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/declaration.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/document.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/fromJSON.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/input.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/lazy-result.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/list.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/map-generator.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/no-work-result.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/node.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/parse.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/parser.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/postcss.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/previous-map.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/processor.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/result.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/root.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/rule.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/stringifier.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/stringify.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/symbols.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/tokenize.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/warn-once.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/warning.js","webpack://KalturaPlayer.plugins.transcript/../node_modules/@playkit-js/common/dist/components/button/Button.scss?6bdc","webpack://KalturaPlayer.plugins.transcript/../node_modules/@playkit-js/common/dist/components/input-field/InputField.scss?1722","webpack://KalturaPlayer.plugins.transcript/../node_modules/@playkit-js/common/dist/icon/icon.scss?f778","webpack://KalturaPlayer.plugins.transcript/../node_modules/@playkit-js/common/dist/icon/icons/spinner.scss?8097","webpack://KalturaPlayer.plugins.transcript/./components/autoscroll-button/autoscroll-button.scss?0ba0","webpack://KalturaPlayer.plugins.transcript/./components/caption-list/captionList.scss?ed8b","webpack://KalturaPlayer.plugins.transcript/./components/caption/caption.scss?0818","webpack://KalturaPlayer.plugins.transcript/./components/plugin-button/plugin-button.scss?1671","webpack://KalturaPlayer.plugins.transcript/./components/popover-menu/popover-menu.scss?30d2","webpack://KalturaPlayer.plugins.transcript/./components/small-screen-slate/small-screen-slate.scss?eee1","webpack://KalturaPlayer.plugins.transcript/./components/spinner/spinner.scss?84e4","webpack://KalturaPlayer.plugins.transcript/./components/transcript/transcript.scss?5d08","./transcript/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","./transcript/./components/autoscroll-button/autoscroll-button.tsx","./transcript/./components/autoscroll-button/index.ts","./transcript/./components/caption-list/captionList.tsx","./transcript/./components/caption-list/index.ts","./transcript/./components/caption/caption.tsx","./transcript/./components/caption/index.ts","./transcript/./components/icons/index.ts","./transcript/./components/plugin-button/plugin-button.tsx","./transcript/./components/popover-menu/index.ts","./transcript/./components/popover-menu/popover-menu.tsx","./transcript/./components/search/index.ts","./transcript/./components/search/search.tsx","./transcript/./components/small-screen-slate/index.ts","./transcript/./components/small-screen-slate/small-screen-slate.tsx","./transcript/./components/spinner/index.ts","./transcript/./components/spinner/spinner.tsx","./transcript/./components/transcript-menu/index.ts","./transcript/./components/transcript-menu/transcript-menu.tsx","./transcript/./components/transcript/error-icon.tsx","./transcript/./components/transcript/index.ts","./transcript/./components/transcript/transcript.tsx","./transcript/./events/events.ts","./transcript/./transcript-plugin.tsx","./transcript/./types/index.ts","./transcript/./types/transcript-item-data.ts","./transcript/./types/types-ui.ts","./transcript/./utils/debounce.ts","./transcript/./utils/index.ts","./transcript/./utils/object-utils.ts","./transcript/./utils/utils.ts","./transcript/external root \"KalturaPlayer\"","./transcript/external root \"KalturaPlayer.ui.preact\"","./transcript/../node_modules/sanitize-html/node_modules/nanoid/non-secure/index.cjs","./transcript/webpack/bootstrap","./transcript/webpack/runtime/compat get default export","./transcript/webpack/runtime/define property getters","./transcript/webpack/runtime/hasOwnProperty shorthand","./transcript/webpack/runtime/make namespace object","./transcript/webpack/runtime/nonce","./transcript/./index.ts"],"sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Button = exports.ButtonType = exports.ButtonSize = void 0;\nvar preact_1 = require(\"preact\");\nvar classnames = require(\"classnames\");\nvar kaltura_player_js_1 = require(\"@playkit-js/kaltura-player-js\");\nvar a11y_wrapper_1 = require(\"../../hoc/a11y-wrapper\");\nvar icon_1 = require(\"../../icon\");\nvar styles = require(\"./Button.scss\");\nvar Tooltip = kaltura_player_js_1.ui.Components.Tooltip;\nvar ButtonSize;\n(function (ButtonSize) {\n ButtonSize[\"small\"] = \"small\";\n ButtonSize[\"medium\"] = \"medium\";\n ButtonSize[\"large\"] = \"large\";\n})(ButtonSize = exports.ButtonSize || (exports.ButtonSize = {}));\nvar ButtonType;\n(function (ButtonType) {\n ButtonType[\"primary\"] = \"primary\";\n ButtonType[\"danger\"] = \"danger\";\n ButtonType[\"translucent\"] = \"translucent\";\n ButtonType[\"borderless\"] = \"borderless\";\n ButtonType[\"borderlessTranslucent\"] = \"borderlessTranslucent\";\n ButtonType[\"secondary\"] = \"secondary\";\n})(ButtonType = exports.ButtonType || (exports.ButtonType = {}));\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n function Button() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.buttonRef = (0, preact_1.createRef)();\n _this.renderChildren = function () {\n var props = _this.props;\n if (props.loading) {\n return ((0, preact_1.h)(\"span\", null,\n (0, preact_1.h)(icon_1.Icon, { name: 'spinner', size: icon_1.IconSize[props.size] })));\n }\n return props.children ? (0, preact_1.h)(\"span\", null, props.children) : null;\n };\n _this.renderButton = function () {\n var _a;\n var props = _this.props;\n var classNames = classnames(styles.button, styles[props.size], styles[props.type], props.className, (_a = {},\n _a[styles.disabled] = props.disabled,\n _a[styles.loading] = props.loading,\n _a[styles.withIcon] = props.children && props.icon,\n _a[styles.iconOnly] = !props.children && props.icon,\n _a));\n var buttonProps = __assign(__assign(__assign(__assign({ ref: _this.buttonRef, disabled: props.disabled, 'aria-disabled': props.disabled, 'aria-busy': props.loading, tabIndex: props.tabIndex, className: classNames }, (props.ariaLabel ? { 'aria-label': props.ariaLabel } : {})), (props.testId ? { 'data-testid': props.testId } : {})), (props.onFocus ? { onFocus: props.onFocus } : {})), (props.onBlur ? { onBlur: props.onBlur } : {}));\n var buttonContent = ((0, preact_1.h)(\"button\", __assign({}, buttonProps),\n (0, preact_1.h)(preact_1.Fragment, null,\n props.icon && (0, preact_1.h)(icon_1.Icon, { name: props.icon, size: icon_1.IconSize[props.size] }),\n _this.renderChildren())));\n return props.onClick ? (0, preact_1.h)(a11y_wrapper_1.A11yWrapper, { onClick: props.onClick }, buttonContent) : buttonContent;\n };\n return _this;\n }\n Button.prototype.componentDidMount = function () {\n var _a;\n if (this.props.setRef) {\n this.props.setRef(this.buttonRef.current);\n }\n if (this.props.focusOnMount) {\n (_a = this.buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n };\n Button.prototype.render = function (props) {\n if (props.tooltip) {\n var tooltipProps = __assign(__assign({ label: props.tooltip.label }, (props.tooltip.type ? { type: props.tooltip.type } : {})), (props.tooltip.className ? { classNames: props.tooltip.className } : {}));\n return (0, preact_1.h)(Tooltip, __assign({}, tooltipProps), this.renderButton());\n }\n return this.renderButton();\n };\n return Button;\n}(preact_1.Component));\nexports.Button = Button;\nButton.defaultProps = {\n disabled: false,\n focusOnMount: false,\n tabIndex: 0,\n children: null,\n size: ButtonSize.medium,\n icon: null,\n type: ButtonType.primary\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InputField = void 0;\nvar preact_1 = require(\"preact\");\nvar a11y_wrapper_1 = require(\"../../hoc/a11y-wrapper\");\nvar styles = require(\"./InputField.scss\");\nvar InputField = /** @class */ (function (_super) {\n __extends(InputField, _super);\n function InputField(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n active: false\n };\n _this._inputRef = null;\n _this.setFocus = function (options) {\n var _a;\n (_a = _this._inputRef) === null || _a === void 0 ? void 0 : _a.focus(options);\n };\n _this._handleOnChange = function (e) {\n _this.props.onChange(e.target.value);\n };\n _this._onClear = function () {\n var _a;\n (_a = _this._inputRef) === null || _a === void 0 ? void 0 : _a.focus();\n _this.props.onChange('');\n };\n _this._onFocus = function () {\n _this.setState({\n active: true\n });\n };\n _this._onBlur = function () {\n _this.setState({\n active: false\n });\n };\n _this._goToNextSearchResult = function () {\n var searchResults = _this.props.searchResults;\n var _a = searchResults, activeSearchIndex = _a.activeSearchIndex, totalSearchResults = _a.totalSearchResults, onSearchIndexChange = _a.onSearchIndexChange;\n if (totalSearchResults === 0) {\n return;\n }\n var index = 0;\n if (activeSearchIndex !== totalSearchResults) {\n index = activeSearchIndex + 1;\n }\n else {\n index = 1;\n }\n onSearchIndexChange(index);\n };\n _this._goToPrevSearchResult = function () {\n var searchResults = _this.props.searchResults;\n var _a = searchResults, activeSearchIndex = _a.activeSearchIndex, totalSearchResults = _a.totalSearchResults, onSearchIndexChange = _a.onSearchIndexChange;\n var index = 0;\n if (activeSearchIndex !== 1) {\n index = activeSearchIndex - 1;\n }\n else {\n index = totalSearchResults;\n }\n onSearchIndexChange(index);\n };\n _this._renderSearchResults = function () {\n return ((0, preact_1.h)(preact_1.Fragment, null,\n (0, preact_1.h)(\"div\", { className: styles.searchResults, \"aria-live\": \"polite\", \"aria-label\": _this.props.searchResults.searchResultsLabel }, \"\".concat(_this.props.searchResults.totalSearchResults > 0\n ? \"\".concat(_this.props.searchResults.activeSearchIndex, \"/\").concat(_this.props.searchResults.totalSearchResults)\n : '0/0')),\n (0, preact_1.h)(\"div\", { className: styles.prevNextWrapper },\n _this.props.value && ((0, preact_1.h)(a11y_wrapper_1.A11yWrapper, { onClick: _this._goToPrevSearchResult },\n (0, preact_1.h)(\"button\", { tabIndex: 0, className: \"\".concat(styles.prevNextButton, \" \").concat(_this.props.searchResults.totalSearchResults === 0 ? styles.disabled : ''), \"aria-label\": _this.props.searchResults.prevMatchLabel },\n (0, preact_1.h)(\"svg\", { width: \"8\", height: \"5\", viewBox: \"0 0 8 5\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": \"true\" },\n (0, preact_1.h)(\"path\", { d: \"M0.292893 4.70711C0.653377 5.06759 1.22061 5.09532 1.6129 4.7903L1.70711 4.70711L4 2.415L6.29289 4.70711C6.65338 5.06759 7.22061 5.09532 7.6129 4.7903L7.70711 4.70711C8.06759 4.34662 8.09532 3.77939 7.7903 3.3871L7.70711 3.29289L4.70711 0.292893C4.34662 -0.0675907 3.77939 -0.0953203 3.3871 0.209705L3.29289 0.292893L0.292893 3.29289C-0.0976311 3.68342 -0.0976311 4.31658 0.292893 4.70711Z\", fill: \"white\", \"fill-opacity\": \"0.7\" }))))),\n _this.props.value && ((0, preact_1.h)(a11y_wrapper_1.A11yWrapper, { onClick: _this._goToNextSearchResult },\n (0, preact_1.h)(\"button\", { tabIndex: 0, className: \"\".concat(styles.prevNextButton, \" \").concat(_this.props.searchResults.totalSearchResults === 0 ? styles.disabled : ''), \"aria-label\": _this.props.searchResults.nextMatchLabel },\n (0, preact_1.h)(\"svg\", { width: \"8\", height: \"5\", viewBox: \"0 0 8 5\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": \"true\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M0.292893 0.292893C0.683417 -0.0976311 1.31658 -0.0976311 1.70711 0.292893L4 2.58579L6.29289 0.292893C6.68342 -0.0976311 7.31658 -0.0976311 7.70711 0.292893C8.09763 0.683417 8.09763 1.31658 7.70711 1.70711L4.70711 4.70711C4.31658 5.09763 3.68342 5.09763 3.29289 4.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683417 0.292893 0.292893Z\", fill: \"white\", \"fill-opacity\": \"0.7\" }))))))));\n };\n _this._renderClearSearch = function () {\n return ((0, preact_1.h)(a11y_wrapper_1.A11yWrapper, { onClick: _this._onClear },\n (0, preact_1.h)(\"button\", { className: styles.clearIcon, tabIndex: 0, \"aria-label\": _this.props.clearSearchLabel },\n (0, preact_1.h)(\"svg\", { width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": \"true\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM3.38951 2.3502L3.46013 2.41264L5.99548 4.9504L8.53067 2.41264L8.60129 2.3502C8.89537 2.12125 9.32081 2.1418 9.59133 2.41199C9.8844 2.70471 9.88469 3.17958 9.59197 3.47265L7.05523 6.01165L9.59197 8.55189C9.88469 8.84496 9.8844 9.31983 9.59133 9.61255C9.32081 9.88275 8.89537 9.90329 8.60129 9.67434L8.53067 9.61191L5.99548 7.0729L3.46013 9.61191L3.38951 9.67434C3.09543 9.90329 2.66999 9.88275 2.39947 9.61255C2.1064 9.31983 2.10611 8.84496 2.39883 8.55189L4.93498 6.01165L2.39883 3.47265C2.10611 3.17958 2.1064 2.70471 2.39947 2.41199C2.66999 2.1418 3.09543 2.12125 3.38951 2.3502Z\", fill: \"white\", \"fill-opacity\": \"0.7\" })))));\n };\n _this.state = {\n active: false\n };\n return _this;\n }\n InputField.prototype.render = function () {\n var _this = this;\n var inputProps = {\n className: styles.inputElement,\n value: this.props.value,\n onInput: this._handleOnChange,\n onFocus: this._onFocus,\n onBlur: this._onBlur,\n tabIndex: 0,\n ref: function (node) {\n _this._inputRef = node;\n }\n };\n if (this.props.placeholder) {\n inputProps['aria-label'] = this.props.placeholder;\n inputProps['placeholder'] = this.props.placeholder;\n }\n return ((0, preact_1.h)(\"div\", { className: [styles.inputFieldWrapper, this.props.value || this.state.active ? styles.active : ''].join(' ') },\n (0, preact_1.h)(\"input\", __assign({}, inputProps)),\n this.props.value && this.props.clearSearchLabel && this._renderClearSearch(),\n this.props.value && this.props.searchResults && this._renderSearchResults()));\n };\n return InputField;\n}(preact_1.Component));\nexports.InputField = InputField;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.A11yWrapper = exports.isKeyboardEvent = void 0;\nvar preact_1 = require(\"preact\");\nvar kaltura_player_js_1 = require(\"@playkit-js/kaltura-player-js\");\nvar _a = kaltura_player_js_1.ui.utils.KeyMap, ENTER = _a.ENTER, SPACE = _a.SPACE, UP = _a.UP, DOWN = _a.DOWN, LEFT = _a.LEFT, RIGHT = _a.RIGHT;\nvar stopEvent = function (e) {\n e.preventDefault();\n e.stopPropagation();\n};\nvar isKeyboardEvent = function (e) {\n // space/enter keyEvent is swallowed by NVDA (https://github.com/nvaccess/nvda/issues/7898)\n // check offsetX and offsetY to define keyboard event triggered by NVDA\n return e instanceof KeyboardEvent || [e.offsetX, e.offsetY].every(function (offset) { return offset === 0; });\n};\nexports.isKeyboardEvent = isKeyboardEvent;\nvar A11yWrapper = function (_a) {\n var children = _a.children, onClick = _a.onClick, onUpKeyPressed = _a.onUpKeyPressed, onDownKeyPressed = _a.onDownKeyPressed, onLeftKeyPressed = _a.onLeftKeyPressed, onRightKeyPressed = _a.onRightKeyPressed, role = _a.role, type = _a.type;\n var props = {\n onKeyDown: function (e) {\n if (e.keyCode === SPACE || e.keyCode === ENTER) {\n stopEvent(e);\n onClick(e, true);\n }\n else if (e.keyCode === UP && onUpKeyPressed) {\n stopEvent(e);\n onUpKeyPressed(e);\n }\n else if (e.keyCode === DOWN && onDownKeyPressed) {\n stopEvent(e);\n onDownKeyPressed(e);\n }\n else if (e.keyCode === LEFT && onLeftKeyPressed) {\n stopEvent(e);\n onLeftKeyPressed(e);\n }\n else if (e.keyCode === RIGHT && onRightKeyPressed) {\n stopEvent(e);\n onRightKeyPressed(e);\n }\n },\n onClick: function (e) {\n onClick(e, (0, exports.isKeyboardEvent)(e));\n },\n role: role\n };\n if ((children === null || children === void 0 ? void 0 : children.type) === 'button') {\n props.type = type || 'button';\n }\n return (0, preact_1.cloneElement)(children, props);\n};\nexports.A11yWrapper = A11yWrapper;\nexports.A11yWrapper.defaultProps = {\n role: 'button'\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Add = void 0;\nvar preact_1 = require(\"preact\");\nvar Add = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M21.8083 4C22.4665 4 23 4.55964 23 5.25V18.75C23 19.4404 22.4665 20 21.8083 20H2.19167C1.53353 20 1 19.4404 1 18.75V5.25C1 4.55964 1.53353 4 2.19167 4H21.8083ZM15 6H3V18H15V6ZM12.999 8.967L13 9L12.998 8.94L12.999 8.967L13 9V15C13 15.5523 12.5523 16 12 16C11.4872 16 11.0645 15.614 11.0067 15.1166L11 15V11.414L6.70711 15.7071C6.34662 16.0676 5.77939 16.0953 5.3871 15.7903L5.29289 15.7071C4.93241 15.3466 4.90468 14.7794 5.2097 14.3871L5.29289 14.2929L9.584 10H6C5.48716 10 5.06449 9.61396 5.00673 9.11662L5 9C5 8.44772 5.44772 8 6 8L12.0193 8.00018C12.0427 8.00063 12.066 8.00189 12.0893 8.00397C12.1097 8.00575 12.1294 8.0081 12.149 8.01102C12.1659 8.01363 12.1834 8.0167 12.2007 8.02024C12.2227 8.02464 12.2444 8.02983 12.2658 8.03572C12.2815 8.0401 12.2969 8.04473 12.3121 8.04974C12.3318 8.05612 12.3516 8.06332 12.3711 8.0711L12.4232 8.09367C12.4439 8.10338 12.4643 8.11379 12.4843 8.12488C12.4964 8.1315 12.5086 8.13861 12.5207 8.146C12.5463 8.16172 12.5711 8.17849 12.5952 8.19631L12.6525 8.24221L12.6167 8.21279C12.6802 8.26255 12.7374 8.31982 12.7872 8.38325C12.7927 8.39016 12.7982 8.3974 12.8037 8.40469C12.8215 8.42887 12.8383 8.45372 12.8539 8.47934L12.8753 8.51594C12.8862 8.53571 12.8966 8.55611 12.9063 8.5769L12.9288 8.62866C12.9367 8.64842 12.9439 8.6682 12.9505 8.68826C12.9553 8.70315 12.9599 8.71854 12.9642 8.73401C12.9702 8.75556 12.9754 8.77725 12.9798 8.79921C12.9833 8.81662 12.9864 8.83405 12.989 8.85153L12.9972 8.92482L12.998 8.94L12.999 8.967Z\", fill: \"white\" }))); };\nexports.Add = Add;\n//# sourceMappingURL=add.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnswerOnAir = void 0;\nvar preact_1 = require(\"preact\");\nvar AnswerOnAir = function () { return ((0, preact_1.h)(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M5.99999 10C7.72605 10 11.1196 10.84 11.3237 12.5079L11.3333 12.6667V13.3333C11.3333 13.6667 11.0854 13.9449 10.7648 13.9927L10.6667 14H1.33332C0.99999 14 0.721753 13.7521 0.673919 13.4315L0.666656 13.3333V12.6667C0.666656 10.8933 4.21999 10 5.99999 10ZM13.9533 1.99333C15.7933 4.42667 15.7867 7.64667 13.9533 10.0067C13.6967 10.3428 13.2103 10.3932 12.8794 10.1476L12.7933 10.0733L12.7733 10.0533C12.5133 9.79333 12.4667 9.38 12.68 9.08C14.0067 7.18667 14.0133 4.74 12.7 2.91333C12.48 2.60667 12.52 2.19333 12.7867 1.92667C13.1133 1.6 13.6733 1.62667 13.9533 1.99333ZM5.99999 3.33333C7.47275 3.33333 8.66666 4.52724 8.66666 6C8.66666 7.47276 7.47275 8.66667 5.99999 8.66667C4.52723 8.66667 3.33332 7.47276 3.33332 6C3.33332 4.52724 4.52723 3.33333 5.99999 3.33333ZM11.7867 4.46C12.3067 5.46667 12.3067 6.6 11.8 7.56667C11.5635 8.02089 10.9728 8.12086 10.5808 7.8178L10.5 7.74667L10.48 7.72667C10.24 7.48667 10.1867 7.13333 10.3133 6.82C10.5267 6.29333 10.5267 5.70667 10.3133 5.18C10.2025 4.90583 10.2295 4.59594 10.3898 4.36643L10.4667 4.27333L10.4733 4.26667C10.8667 3.87333 11.5333 3.96667 11.7867 4.46Z\", fill: \"white\" }))); };\nexports.AnswerOnAir = AnswerOnAir;\n//# sourceMappingURL=answerOnAir.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrowClose = void 0;\nvar preact_1 = require(\"preact\");\nvar ArrowClose = function () { return ((0, preact_1.h)(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M7.5 21C5.01472 21 3 18.9853 3 16.5L3 7.5C3 5.01472 5.01472 3 7.5 3L16.5 3C18.9853 3 21 5.01472 21 7.5V16.5C21 18.9853 18.9853 21 16.5 21H7.5ZM8.625 17.625L14.25 17.625L14.3812 17.6174C14.9407 17.5524 15.375 17.0769 15.375 16.5C15.375 15.8787 14.8713 15.375 14.25 15.375L10.218 15.375L17.2955 8.2955L17.3891 8.18951C17.7322 7.74819 17.701 7.11005 17.2955 6.70451C16.8562 6.26517 16.1438 6.26517 15.7045 6.70451L8.625 13.7843L8.625 9.75L8.61743 9.6188C8.55245 9.0593 8.07694 8.625 7.5 8.625C6.87868 8.625 6.375 9.12868 6.375 9.75L6.375 15.375L6.38117 15.5429C6.46706 16.7071 7.43884 17.625 8.625 17.625Z\", fill: \"white\" }))); };\nexports.ArrowClose = ArrowClose;\n//# sourceMappingURL=arrowClose.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrowOpen = void 0;\nvar preact_1 = require(\"preact\");\nvar ArrowOpen = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M16.5 3C18.9853 3 21 5.01472 21 7.5V16.5C21 18.9853 18.9853 21 16.5 21H7.5C5.01472 21 3 18.9853 3 16.5V7.5C3 5.01472 5.01472 3 7.5 3H16.5ZM15.375 6.375H9.75L9.6188 6.38257C9.0593 6.44755 8.625 6.92306 8.625 7.5C8.625 8.12132 9.12868 8.625 9.75 8.625H13.782L6.7045 15.7045L6.61092 15.8105C6.26776 16.2518 6.29896 16.89 6.7045 17.2955C7.14384 17.7348 7.85616 17.7348 8.2955 17.2955L15.375 10.2158V14.25L15.3826 14.3812C15.4476 14.9407 15.9231 15.375 16.5 15.375C17.1213 15.375 17.625 14.8713 17.625 14.25V8.625L17.6188 8.45708C17.5329 7.29286 16.5612 6.375 15.375 6.375Z\", fill: \"white\" }))); };\nexports.ArrowOpen = ArrowOpen;\n//# sourceMappingURL=arrowOpen.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AutoScroll = void 0;\nvar preact_1 = require(\"preact\");\nvar AutoScroll = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": \"true\" },\n (0, preact_1.h)(\"path\", { d: \"M6.29289 15.2929C6.65338 14.9324 7.22061 14.9047 7.6129 15.2097L7.70711 15.2929L12 19.585L16.2929 15.2929C16.6534 14.9324 17.2206 14.9047 17.6129 15.2097L17.7071 15.2929C18.0676 15.6534 18.0953 16.2206 17.7903 16.6129L17.7071 16.7071L12.7071 21.7071C12.3466 22.0676 11.7794 22.0953 11.3871 21.7903L11.2929 21.7071L6.29289 16.7071C5.90237 16.3166 5.90237 15.6834 6.29289 15.2929Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { d: \"M17.7071 8.70711C17.3466 9.06759 16.7794 9.09532 16.3871 8.7903L16.2929 8.70711L12 4.415L7.70711 8.70711C7.34662 9.06759 6.77939 9.09532 6.3871 8.79029L6.29289 8.70711C5.93241 8.34662 5.90468 7.77939 6.2097 7.3871L6.29289 7.29289L11.2929 2.29289C11.6534 1.93241 12.2206 1.90468 12.6129 2.2097L12.7071 2.29289L17.7071 7.29289C18.0976 7.68342 18.0976 8.31658 17.7071 8.70711Z\", fill: \"white\" }),\n (0, preact_1.h)(\"rect\", { x: \"10\", y: \"10\", width: \"4\", height: \"4\", rx: \"2\", fill: \"white\" }))); };\nexports.AutoScroll = AutoScroll;\n//# sourceMappingURL=autoScroll.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Chapter = void 0;\nvar preact_1 = require(\"preact\");\nvar Chapter = function () { return ((0, preact_1.h)(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M4 4C4 3.44772 4.44772 3 5 3H11C11.5523 3 12 3.44772 12 4V13C12 13.824 11.0592 14.2944 10.4 13.8L8.6 12.45C8.24444 12.1833 7.75556 12.1833 7.4 12.45L5.6 13.8C4.94076 14.2944 4 13.824 4 13V4Z\", fill: \"white\" }))); };\nexports.Chapter = Chapter;\n//# sourceMappingURL=chapter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Close = void 0;\nvar preact_1 = require(\"preact\");\nvar Close = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M11.6592 10.245L6.70483 5.29061C6.31701 4.9028 5.68581 4.90476 5.29528 5.29528C4.90204 5.68853 4.90267 6.31688 5.29061 6.70483L10.245 11.6592L5.29061 16.6137C4.9028 17.0015 4.90476 17.6327 5.29528 18.0232C5.68853 18.4165 6.31688 18.4158 6.70483 18.0279L11.6592 13.0735L16.6137 18.0279C17.0015 18.4157 17.6327 18.4137 18.0232 18.0232C18.4165 17.63 18.4158 17.0016 18.0279 16.6137L13.0735 11.6592L18.0279 6.70483C18.4157 6.31701 18.4137 5.68581 18.0232 5.29528C17.63 4.90204 17.0016 4.90267 16.6137 5.29061L11.6592 10.245Z\", fill: \"white\" }))); };\nexports.Close = Close;\n//# sourceMappingURL=close.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClosedCaptions = void 0;\nvar preact_1 = require(\"preact\");\nvar ClosedCaptions = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M3.53616 4C2.68845 4 2 4.68038 2 5.51967V18.4803C2 19.3125 2.68776 20 3.53616 20H20.4638C21.3116 20 22 19.3196 22 18.4803V5.51967C22 4.6875 21.3122 4 20.4638 4H3.53616ZM11.4852 13.4164C11.4852 13.6096 11.4297 13.8161 11.3186 14.0358C11.2074 14.2555 11.0381 14.4648 10.8104 14.6637C10.5827 14.8626 10.2958 15.0227 9.94978 15.1439C9.60371 15.2652 9.21394 15.3258 8.78045 15.3258C7.85882 15.3258 7.13938 15.0464 6.6221 14.4876C6.10483 13.9288 5.84619 13.1796 5.84619 12.2401C5.84619 11.6036 5.96458 11.041 6.20136 10.5523C6.43814 10.0636 6.78056 9.68567 7.22863 9.41858C7.67669 9.15149 8.21217 9.01794 8.83509 9.01794C9.22123 9.01794 9.57548 9.07667 9.89787 9.19411C10.2203 9.31155 10.4935 9.46309 10.7175 9.64873C10.9415 9.83436 11.1127 10.0323 11.2311 10.2426C11.3495 10.4528 11.4087 10.6489 11.4087 10.8307C11.4087 11.0164 11.3422 11.1736 11.2093 11.3024C11.0763 11.4312 10.9151 11.4956 10.7257 11.4956C10.6018 11.4956 10.4989 11.4625 10.417 11.3962C10.335 11.3299 10.243 11.2228 10.141 11.0751C9.95889 10.7872 9.76855 10.5712 9.57002 10.4273C9.37149 10.2833 9.11923 10.2113 8.81323 10.2113C8.37246 10.2113 8.01729 10.3903 7.74772 10.7483C7.47815 11.1064 7.34337 11.596 7.34337 12.2173C7.34337 12.509 7.37798 12.7771 7.44719 13.0214C7.51641 13.2658 7.61658 13.4742 7.74772 13.6465C7.87886 13.8189 8.03732 13.9496 8.2231 14.0386C8.40889 14.1277 8.61288 14.1722 8.83509 14.1722C9.1338 14.1722 9.3897 14.1002 9.60281 13.9562C9.81591 13.8123 10.0044 13.5925 10.1683 13.297C10.2594 13.1228 10.3578 12.9864 10.4634 12.8879C10.5691 12.7894 10.6984 12.7401 10.8514 12.7401C11.0335 12.7401 11.1847 12.8121 11.3049 12.9561C11.4251 13.1 11.4852 13.2535 11.4852 13.4164ZM18.1351 13.4164C18.1351 13.6096 18.0796 13.8161 17.9684 14.0358C17.8573 14.2555 17.688 14.4648 17.4603 14.6637C17.2326 14.8626 16.9457 15.0227 16.5997 15.1439C16.2536 15.2652 15.8638 15.3258 15.4303 15.3258C14.5087 15.3258 13.7893 15.0464 13.272 14.4876C12.7547 13.9288 12.4961 13.1796 12.4961 12.2401C12.4961 11.6036 12.6145 11.041 12.8513 10.5523C13.088 10.0636 13.4305 9.68567 13.8785 9.41858C14.3266 9.15149 14.8621 9.01794 15.485 9.01794C15.8711 9.01794 16.2254 9.07667 16.5478 9.19411C16.8702 9.31155 17.1434 9.46309 17.3674 9.64873C17.5914 9.83436 17.7626 10.0323 17.881 10.2426C17.9994 10.4528 18.0586 10.6489 18.0586 10.8307C18.0586 11.0164 17.9921 11.1736 17.8592 11.3024C17.7262 11.4312 17.565 11.4956 17.3756 11.4956C17.2517 11.4956 17.1488 11.4625 17.0669 11.3962C16.9849 11.3299 16.8929 11.2228 16.7909 11.0751C16.6088 10.7872 16.4184 10.5712 16.2199 10.4273C16.0214 10.2833 15.7691 10.2113 15.4631 10.2113C15.0223 10.2113 14.6672 10.3903 14.3976 10.7483C14.128 11.1064 13.9933 11.596 13.9933 12.2173C13.9933 12.509 14.0279 12.7771 14.0971 13.0214C14.1663 13.2658 14.2665 13.4742 14.3976 13.6465C14.5288 13.8189 14.6872 13.9496 14.873 14.0386C15.0588 14.1277 15.2628 14.1722 15.485 14.1722C15.7837 14.1722 16.0396 14.1002 16.2527 13.9562C16.4658 13.8123 16.6543 13.5925 16.8182 13.297C16.9093 13.1228 17.0077 12.9864 17.1133 12.8879C17.2189 12.7894 17.3483 12.7401 17.5013 12.7401C17.6834 12.7401 17.8346 12.8121 17.9548 12.9561C18.075 13.1 18.1351 13.2535 18.1351 13.4164Z\", fill: \"white\" }))); };\nexports.ClosedCaptions = ClosedCaptions;\n//# sourceMappingURL=closedCaptions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Document = void 0;\nvar preact_1 = require(\"preact\");\nvar Document = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6 2H9.82843H14.1716H18C19.1046 2 20 2.89543 20 4V7.82843V20C20 21.1046 19.1046 22 18 22H6C4.89543 22 4 21.1046 4 20V7.82843V4C4 2.89543 4.89543 2 6 2ZM13 16C13 15.4477 12.5523 15 12 15H8C7.44772 15 7 15.4477 7 16C7 16.5523 7.44772 17 8 17H12C12.5523 17 13 16.5523 13 16ZM17 12C17 11.4477 16.5523 11 16 11H8C7.44772 11 7 11.4477 7 12C7 12.5523 7.44772 13 8 13H16C16.5523 13 17 12.5523 17 12ZM17 8C17 7.44772 16.5523 7 16 7H8C7.44772 7 7 7.44772 7 8C7 8.55228 7.44772 9 8 9H16C16.5523 9 17 8.55228 17 8Z\", fill: \"white\" }))); };\nexports.Document = Document;\n//# sourceMappingURL=document.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Download = void 0;\nvar preact_1 = require(\"preact\");\nvar Download = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M17.5 6C17.5 5.44772 17.0523 5 16.5 5L16.3834 5.00673C15.886 5.06449 15.5 5.48716 15.5 6L15.4997 17.693L9.71029 12.2702C9.30721 11.8926 8.67439 11.9133 8.29683 12.3164C7.91928 12.7195 7.93998 13.3523 8.34306 13.7298L15.8164 20.7298C15.8212 20.7343 15.826 20.7387 15.8308 20.7431L15.8164 20.7298L15.9035 20.8027C15.9034 20.8026 15.9037 20.8028 15.9035 20.8027C15.9135 20.8101 15.9231 20.817 15.9333 20.824C15.956 20.8397 15.9793 20.8544 16.0038 20.8684C16.0148 20.8747 16.0259 20.8808 16.0366 20.8864C16.0596 20.8984 16.0832 20.9096 16.1077 20.9201C16.1223 20.9263 16.1371 20.9322 16.1515 20.9376C16.1769 20.947 16.2028 20.9555 16.2299 20.963C16.2399 20.9658 16.25 20.9684 16.2595 20.9709C16.3365 20.9899 16.4171 21 16.5 21C16.5804 21 16.6585 20.9905 16.7336 20.9725C16.7521 20.968 16.7706 20.963 16.7889 20.9576C16.8097 20.9514 16.8303 20.9444 16.8507 20.9367C16.8632 20.932 16.8756 20.9271 16.8878 20.922C16.9121 20.9118 16.936 20.9006 16.9596 20.8883C16.9735 20.8812 16.9872 20.8736 17.0007 20.8658C17.0223 20.8533 17.0434 20.84 17.0636 20.8262C17.0764 20.8174 17.0891 20.8083 17.1021 20.7985C17.1224 20.7831 17.1422 20.767 17.161 20.7504C17.1685 20.7437 17.176 20.737 17.1834 20.7301L24.6619 13.7301C25.0651 13.3527 25.086 12.7198 24.7086 12.3166L24.6172 12.2304C24.2352 11.9126 23.6674 11.9215 23.2952 12.2699L17.4997 17.694L17.5 6Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { d: \"M27 26C27 26.5523 26.5523 27 26 27H7C6.44772 27 6 26.5523 6 26C6 25.4477 6.44772 25 7 25H26C26.5523 25 27 25.4477 27 26Z\", fill: \"white\" }))); };\nexports.Download = Download;\n//# sourceMappingURL=download.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Excel = void 0;\nvar preact_1 = require(\"preact\");\nvar Excel = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M22 6C22 4.89543 21.1046 4 20 4H4C2.89543 4 2 4.89543 2 6V18C2 19.1046 2.89543 20 4 20H20C21.1046 20 22 19.1046 22 18V6ZM8 16C8 15.4477 7.55228 15 7 15H5C4.44772 15 4 15.4477 4 16C4 16.5523 4.44772 17 5 17H7C7.55228 17 8 16.5523 8 16ZM14 16C14 15.4477 13.5523 15 13 15H11C10.4477 15 10 15.4477 10 16C10 16.5523 10.4477 17 11 17H13C13.5523 17 14 16.5523 14 16ZM8 12C8 11.4477 7.55228 11 7 11H5C4.44772 11 4 11.4477 4 12C4 12.5523 4.44772 13 5 13H7C7.55228 13 8 12.5523 8 12ZM14 12C14 11.4477 13.5523 11 13 11H11C10.4477 11 10 11.4477 10 12C10 12.5523 10.4477 13 11 13H13C13.5523 13 14 12.5523 14 12ZM8 8C8 7.44772 7.55228 7 7 7H5C4.44772 7 4 7.44772 4 8C4 8.55228 4.44772 9 5 9H7C7.55228 9 8 8.55228 8 8ZM14 8C14 7.44772 13.5523 7 13 7H11C10.4477 7 10 7.44772 10 8C10 8.55228 10.4477 9 11 9H13C13.5523 9 14 8.55228 14 8ZM19 17H17C16.4477 17 16 16.5523 16 16C16 15.4477 16.4477 15 17 15H19C19.5523 15 20 15.4477 20 16C20 16.5523 19.5523 17 19 17ZM17 13H19C19.5523 13 20 12.5523 20 12C20 11.4477 19.5523 11 19 11H17C16.4477 11 16 11.4477 16 12C16 12.5523 16.4477 13 17 13ZM19 9H17C16.4477 9 16 8.55228 16 8C16 7.44772 16.4477 7 17 7H19C19.5523 7 20 7.44772 20 8C20 8.55228 19.5523 9 19 9Z\", fill: \"white\" }))); };\nexports.Excel = Excel;\n//# sourceMappingURL=excel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Expand = void 0;\nvar preact_1 = require(\"preact\");\nvar Expand = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M20.997 3.924L20.998 3.945L20.999 3.98L21 4V10C21 10.5523 20.5523 11 20 11C19.4872 11 19.0645 10.614 19.0067 10.1166L19 10V6.416L14.7071 10.7071C14.3466 11.0676 13.7794 11.0953 13.3871 10.7903L13.2929 10.7071C12.9324 10.3466 12.9047 9.77939 13.2097 9.3871L13.2929 9.29289L17.586 5H14C13.4872 5 13.0645 4.61396 13.0067 4.11662L13 4C13 3.48716 13.386 3.06449 13.8834 3.00673L14 3L20.0332 3.00054C20.0503 3.00109 20.0683 3.00216 20.0862 3.0037C20.1079 3.00553 20.1285 3.00797 20.149 3.01102C20.166 3.01363 20.1834 3.0167 20.2007 3.02024C20.2227 3.02464 20.2444 3.02983 20.2658 3.03572C20.2815 3.0401 20.2969 3.04473 20.3121 3.04974C20.3318 3.05612 20.3516 3.06332 20.3711 3.0711L20.4232 3.09367C20.4439 3.10338 20.4643 3.11379 20.4843 3.12488C20.4964 3.1315 20.5086 3.13861 20.5207 3.146C20.5463 3.16172 20.5711 3.17849 20.5952 3.19631L20.6525 3.24221L20.6168 3.21279C20.6802 3.26255 20.7374 3.31982 20.7872 3.38325C20.7927 3.39016 20.7982 3.3974 20.8037 3.40469C20.8215 3.42887 20.8383 3.45373 20.8539 3.47934L20.8753 3.51594C20.8862 3.53571 20.8966 3.55611 20.9063 3.5769L20.9288 3.62866C20.9367 3.64842 20.9439 3.6682 20.9505 3.68826C20.9553 3.70315 20.9599 3.71854 20.9642 3.73401C20.9702 3.75556 20.9754 3.77725 20.9798 3.79921C20.9833 3.81662 20.9864 3.83405 20.989 3.85153L20.996 3.91075L20.996 3.919L20.997 3.921V3.924ZM3.002 20.059V20.071L3.00175 20.0593C3.00122 20.0503 3.00081 20.0413 3.00052 20.0323L3 14C3 13.4477 3.44772 13 4 13C4.51284 13 4.93551 13.386 4.99327 13.8834L5 14V17.586L9.29289 13.2929C9.65338 12.9324 10.2206 12.9047 10.6129 13.2097L10.7071 13.2929C11.0676 13.6534 11.0953 14.2206 10.7903 14.6129L10.7071 14.7071L6.416 19H10C10.5128 19 10.9355 19.386 10.9933 19.8834L11 20C11 20.5128 10.614 20.9355 10.1166 20.9933L10 21H4C3.99354 21 3.98709 20.9999 3.98066 20.9998C3.95732 20.9994 3.93401 20.9981 3.91075 20.996C3.89031 20.9943 3.87058 20.9919 3.85104 20.989C3.83405 20.9864 3.81662 20.9833 3.79927 20.9798C3.77725 20.9754 3.75556 20.9702 3.73416 20.9643C3.71854 20.9599 3.70315 20.9553 3.68786 20.9503C3.6682 20.9439 3.64842 20.9367 3.62894 20.9289L3.57678 20.9063C3.55611 20.8966 3.53571 20.8862 3.51572 20.8751C3.50361 20.8685 3.49139 20.8614 3.47929 20.854C3.45373 20.8383 3.42887 20.8215 3.40484 20.8037L3.34745 20.7578L3.38325 20.7872C3.31982 20.7374 3.26255 20.6802 3.21279 20.6168C3.20728 20.6098 3.20175 20.6026 3.19633 20.5953C3.17849 20.5711 3.16172 20.5463 3.14607 20.5207L3.12467 20.4841C3.11379 20.4643 3.10338 20.4439 3.09365 20.4231L3.07123 20.3713C3.06332 20.3516 3.05612 20.3318 3.04955 20.3117C3.04473 20.2969 3.0401 20.2815 3.03585 20.266C3.02983 20.2444 3.02464 20.2227 3.02017 20.2008C3.0167 20.1834 3.01363 20.1659 3.01102 20.1485L3.0037 20.0862L3.002 20.059Z\", fill: \"white\" }))); };\nexports.Expand = Expand;\n//# sourceMappingURL=expand.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GenericFile = void 0;\nvar preact_1 = require(\"preact\");\nvar GenericFile = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6 2C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V7.82843C20 7.29799 19.7893 6.78929 19.4142 6.41421L15.5858 2.58579C15.2107 2.21071 14.702 2 14.1716 2H6ZM14.3657 4.36569C13.8617 3.86171 13 4.21865 13 4.93137V8.2C13 8.64183 13.3582 9 13.8 9H17.0686C17.7814 9 18.1383 8.13829 17.6343 7.63431L14.3657 4.36569Z\", fill: \"white\" }))); };\nexports.GenericFile = GenericFile;\n//# sourceMappingURL=genericFile.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hotspot = void 0;\nvar preact_1 = require(\"preact\");\nvar Hotspot = function () { return ((0, preact_1.h)(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6.5 2C6.11537 2 5.79837 2.28953 5.75505 2.66253L5.75 2.75V3.5C5.75 3.91421 6.08579 4.25 6.5 4.25C6.88463 4.25 7.20163 3.96047 7.24495 3.58747L7.25 3.5V2.75C7.25 2.33579 6.91421 2 6.5 2ZM11.7955 3.8295C11.5235 3.55753 11.0946 3.53811 10.8003 3.77123L10.7348 3.8295L10.2045 4.35984C9.91161 4.65273 9.91161 5.1276 10.2045 5.4205C10.4765 5.69247 10.9054 5.71189 11.1997 5.47878L11.2652 5.4205L11.7955 4.89016C12.0884 4.59727 12.0884 4.1224 11.7955 3.8295ZM3.4545 12.1705C3.72648 12.4425 4.15536 12.4619 4.44975 12.2288L4.51516 12.1705L5.0455 11.6402C5.33839 11.3473 5.33839 10.8724 5.0455 10.5795C4.77352 10.3075 4.34464 10.2881 4.05025 10.5212L3.98484 10.5795L3.4545 11.1098C3.16161 11.4027 3.16161 11.8776 3.4545 12.1705ZM6.53592 6.98358C6.65797 6.61718 7.05316 6.41577 7.4186 6.53371L13.5234 8.50394C13.6272 8.53745 13.7214 8.59497 13.7983 8.67186C14.0693 8.94255 14.0669 9.38382 13.793 9.65748L12.8998 10.5499C12.7787 10.6708 12.7713 10.8642 12.8828 10.9915L13.6084 11.8185C14.0177 12.3362 13.9793 13.0939 13.4958 13.5769L13.4659 13.6069C12.9452 14.127 12.1056 14.1316 11.5906 13.6171L10.9802 12.9207C10.8554 12.7952 10.6516 12.7959 10.525 12.9224L9.66058 13.786C9.58277 13.8638 9.48795 13.9223 9.38376 13.957C9.01702 14.0789 8.624 13.8818 8.50593 13.5167L6.53356 7.41792C6.48802 7.27709 6.48885 7.12492 6.53592 6.98358ZM3.5 5.75C3.91421 5.75 4.25 6.08579 4.25 6.5C4.25 6.91421 3.91421 7.25 3.5 7.25H2.75C2.33579 7.25 2 6.91421 2 6.5C2 6.08579 2.33579 5.75 2.75 5.75H3.5Z\", fill: \"white\" }))); };\nexports.Hotspot = Hotspot;\n//# sourceMappingURL=hotspot.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Image = void 0;\nvar preact_1 = require(\"preact\");\nvar Image = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M20 4C21.1046 4 22 4.89543 22 6V18C22 19.1046 21.1046 20 20 20H4C2.89543 20 2 19.1046 2 18V6C2 4.89543 2.89543 4 4 4H20ZM13.4658 9.8483C13.739 9.41452 14.1763 9.3854 14.4736 9.76788L14.5351 9.85614L18.2077 15.7324C18.6176 16.3882 18.3599 16.9391 17.6281 16.9953L17.5018 17H6.49825C5.71856 17 5.40843 16.498 5.77171 15.8584L5.83853 15.7506L8.44382 11.8687C8.72793 11.4454 9.26701 11.3331 9.6897 11.5934L9.785 11.6602L10.696 12.3798C11.1046 12.7026 11.6375 12.6332 11.9477 12.2465L12.0152 12.1517L13.4658 9.8483ZM9 8.5C9 7.672 8.328 7 7.5 7C6.672 7 6 7.672 6 8.5C6 9.329 6.672 10 7.5 10C8.328 10 9 9.329 9 8.5Z\", fill: \"white\" }))); };\nexports.Image = Image;\n//# sourceMappingURL=image.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Icons = void 0;\nvar close_1 = require(\"./close\");\nvar print_1 = require(\"./print\");\nvar download_1 = require(\"./download\");\nvar related_1 = require(\"./related\");\nvar message_1 = require(\"./message\");\nvar share_1 = require(\"./share\");\nvar more_1 = require(\"./more\");\nvar quiz_1 = require(\"./quiz\");\nvar switch_1 = require(\"./switch\");\nvar add_1 = require(\"./add\");\nvar minimizedVideo_1 = require(\"./minimizedVideo\");\nvar pictureInPicture_1 = require(\"./pictureInPicture\");\nvar expand_1 = require(\"./expand\");\nvar arrowOpen_1 = require(\"./arrowOpen\");\nvar arrowClose_1 = require(\"./arrowClose\");\nvar chapter_1 = require(\"./chapter\");\nvar hotspot_1 = require(\"./hotspot\");\nvar answerOnAir_1 = require(\"./answerOnAir\");\nvar screenRotation_1 = require(\"./screenRotation\");\nvar autoScroll_1 = require(\"./autoScroll\");\nvar replay_1 = require(\"./replay\");\nvar closedCaptions_1 = require(\"./closedCaptions\");\nvar genericFile_1 = require(\"./genericFile\");\nvar presentation_1 = require(\"./presentation\");\nvar image_1 = require(\"./image\");\nvar document_1 = require(\"./document\");\nvar excel_1 = require(\"./excel\");\nvar pdf_1 = require(\"./pdf\");\nvar zip_1 = require(\"./zip\");\nvar volumeOn_1 = require(\"./volumeOn\");\nvar volumeMute_1 = require(\"./volumeMute\");\nvar spinner_1 = require(\"./spinner\");\nexports.Icons = {\n close: close_1.Close,\n print: print_1.Print,\n download: download_1.Download,\n related: related_1.Related,\n message: message_1.Message,\n share: share_1.Share,\n more: more_1.More,\n quiz: quiz_1.QuizIcon,\n switch: switch_1.Switch,\n add: add_1.Add,\n minimizedVideo: minimizedVideo_1.MinimizedVideo,\n pictureInPicture: pictureInPicture_1.PictureInPicture,\n expand: expand_1.Expand,\n arrowOpen: arrowOpen_1.ArrowOpen,\n arrowClose: arrowClose_1.ArrowClose,\n chapter: chapter_1.Chapter,\n hotspot: hotspot_1.Hotspot,\n answerOnAir: answerOnAir_1.AnswerOnAir,\n screenRotation: screenRotation_1.ScreenRotation,\n autoScroll: autoScroll_1.AutoScroll,\n replay: replay_1.ReplayIcon,\n closedCaptions: closedCaptions_1.ClosedCaptions,\n genericFile: genericFile_1.GenericFile,\n presentation: presentation_1.Presentation,\n image: image_1.Image,\n document: document_1.Document,\n excel: excel_1.Excel,\n pdf: pdf_1.PDF,\n zip: zip_1.Zip,\n volumeOn: volumeOn_1.VolumeOn,\n volumeMute: volumeMute_1.VolumeMute,\n spinner: spinner_1.Spinner\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Message = void 0;\nvar preact_1 = require(\"preact\");\nvar Message = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M25 5C27.2091 5 29 6.75035 29 8.90952V18.6833C29 20.8425 27.2091 22.5928 25 22.5928H14.985L10.7019 26.7188C10.546 26.8689 10.3449 26.9641 10.1302 26.9917L10 27C9.44772 27 9 26.5624 9 26.0226V22.5928H7C4.79086 22.5928 3 20.8425 3 18.6833V8.90952C3 6.75035 4.79086 5 7 5H25ZM25 6.95476H7C5.89543 6.95476 5 7.82994 5 8.90952V18.6833C5 19.7629 5.89543 20.6381 7 20.6381H11V23.687L14.1651 20.6381H25C26.1046 20.6381 27 19.7629 27 18.6833V8.90952C27 7.82994 26.1046 6.95476 25 6.95476ZM19 14.7738C19.5523 14.7738 20 15.2114 20 15.7512C20 16.291 19.5523 16.7286 19 16.7286H10C9.44772 16.7286 9 16.291 9 15.7512C9 15.2114 9.44772 14.7738 10 14.7738H19ZM23 10.8643C23.5523 10.8643 24 11.3019 24 11.8417C24 12.3815 23.5523 12.819 23 12.819H10C9.44772 12.819 9 12.3815 9 11.8417C9 11.3019 9.44772 10.8643 10 10.8643H23Z\", fill: \"white\" }))); };\nexports.Message = Message;\n//# sourceMappingURL=message.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MinimizedVideo = void 0;\nvar preact_1 = require(\"preact\");\nvar MinimizedVideo = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M5.25 4.5H18.75C19.9926 4.5 21 5.50736 21 6.75V17.25C21 18.4926 19.9926 19.5 18.75 19.5H5.25C4.00736 19.5 3 18.4926 3 17.25V6.75C3 5.50736 4.00736 4.5 5.25 4.5ZM5.25 6C4.83579 6 4.5 6.33579 4.5 6.75V17.25C4.5 17.6642 4.83579 18 5.25 18H18.75C19.1642 18 19.5 17.6642 19.5 17.25V6.75C19.5 6.33579 19.1642 6 18.75 6H5.25ZM13 12C12.4477 12 12 12.4477 12 13V15.5C12 16.0523 12.4477 16.5 13 16.5H17C17.5523 16.5 18 16.0523 18 15.5V13C18 12.4477 17.5523 12 17 12H13Z\", fill: \"white\" }))); };\nexports.MinimizedVideo = MinimizedVideo;\n//# sourceMappingURL=minimizedVideo.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.More = void 0;\nvar preact_1 = require(\"preact\");\nvar More = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": \"true\" },\n (0, preact_1.h)(\"path\", { d: \"M8 12C8 13.1046 7.10457 14 6 14C4.89543 14 4 13.1046 4 12C4 10.8954 4.89543 10 6 10C7.10457 10 8 10.8954 8 12ZM14 12C14 13.1046 13.1046 14 12 14C10.8954 14 10 13.1046 10 12C10 10.8954 10.8954 10 12 10C13.1046 10 14 10.8954 14 12ZM20 12C20 13.1046 19.1046 14 18 14C16.8954 14 16 13.1046 16 12C16 10.8954 16.8954 10 18 10C19.1046 10 20 10.8954 20 12Z\", fill: \"white\" }))); };\nexports.More = More;\n//# sourceMappingURL=more.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PDF = void 0;\nvar preact_1 = require(\"preact\");\nvar PDF = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M16.2428 13.7325C17.4357 13.7542 18.6185 13.8543 19.7692 14.1927C20.2755 14.3415 20.7634 14.5301 21.1919 14.8459C22.0863 15.5045 22.2575 16.5466 21.6176 17.4515C20.9502 18.3952 19.8553 18.72 18.699 18.3321C17.8678 18.0533 17.1473 17.5995 16.5083 17.0166C15.915 16.4753 15.3392 15.9159 14.7469 15.3728C14.6746 15.3069 14.5482 15.2591 14.4503 15.2645C13.1247 15.3448 11.8091 15.509 10.5119 15.7995C10.0065 15.9123 9.50577 16.0458 9.00867 16.1884C8.9162 16.2146 8.82374 16.3138 8.77522 16.4031C8.07579 17.6978 7.33425 18.9672 6.42427 20.1329C5.98118 20.7004 5.49231 21.2273 4.87985 21.6261C3.70346 22.3912 2.4932 21.9482 2.10595 20.6075C1.88074 19.828 2.01715 19.1098 2.49045 18.4458C3.25945 17.3658 4.29212 16.5917 5.46301 15.998C6.15878 15.6453 6.89849 15.3755 7.61256 15.0561C7.72516 15.0056 7.84509 14.9081 7.89911 14.8017C8.68916 13.2489 9.37486 11.6511 9.98182 10.0199C10.0386 9.86741 10.023 9.75825 9.93879 9.62562C9.17254 8.42205 8.68001 7.12375 8.59212 5.69644C8.52987 4.68865 8.64431 3.71155 9.23845 2.84631C9.8207 1.99822 10.8058 1.74831 11.6059 2.27611C12.2705 2.71459 12.6788 3.33712 12.7594 4.13649C12.8656 5.19209 12.6788 6.22063 12.4216 7.23743C12.2357 7.97275 12.0087 8.69813 11.7899 9.42532C11.7487 9.56246 11.7643 9.659 11.8494 9.77629C12.8399 11.1441 13.9632 12.4018 15.147 13.608C15.2156 13.6784 15.341 13.7217 15.4427 13.7289C15.7081 13.7434 15.9755 13.7325 16.2428 13.7325ZM9.79415 14.3894C10.9486 14.1981 12.0792 14.0104 13.2171 13.8219C12.5168 13.0017 11.8155 12.1798 11.1069 11.3507C10.6648 12.3738 10.2327 13.3735 9.79415 14.3894ZM10.7133 7.76704C10.7591 7.60103 10.8058 7.43592 10.8497 7.26901C11.0777 6.4101 11.3029 5.54937 11.2855 4.65347C11.2809 4.40716 11.2141 4.14551 11.1079 3.92176C11.0319 3.76207 10.8424 3.65471 10.7041 3.52388C10.5833 3.67095 10.4267 3.80267 10.3471 3.96868C10.1137 4.45588 10.0834 4.98458 10.1127 5.51329C10.1576 6.29912 10.3379 7.05428 10.7133 7.76704ZM6.60279 17.0942C5.92899 17.4163 5.3083 17.7592 4.77915 18.2283C4.40197 18.563 4.06233 18.942 3.73642 19.3272C3.48832 19.6204 3.46452 19.9696 3.62931 20.3242C3.70438 20.4866 3.80233 20.5461 3.96071 20.427C4.11817 20.3088 4.28662 20.2015 4.42852 20.068C5.31471 19.2334 5.95097 18.2148 6.58356 17.1944C6.59546 17.1763 6.59272 17.152 6.60279 17.0942ZM16.8937 15.2762C17.54 15.9394 18.2166 16.5529 19.1055 16.8678C19.3087 16.9399 19.5358 16.9715 19.7518 16.9724C20.0594 16.9742 20.4055 16.6792 20.4503 16.3842C20.497 16.0792 20.2233 15.9998 20.0237 15.9033C19.0396 15.426 17.9685 15.3484 16.8937 15.2762Z\", fill: \"white\" }))); };\nexports.PDF = PDF;\n//# sourceMappingURL=pdf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PictureInPicture = void 0;\nvar preact_1 = require(\"preact\");\nvar PictureInPicture = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M18.75 4.5H5.25C4.00736 4.5 3 5.50736 3 6.75V17.25C3 18.4926 4.00736 19.5 5.25 19.5H18.75C19.9926 19.5 21 18.4926 21 17.25V6.75C21 5.50736 19.9926 4.5 18.75 4.5ZM13 12C12.4477 12 12 12.4477 12 13V15.5C12 16.0523 12.4477 16.5 13 16.5H17C17.5523 16.5 18 16.0523 18 15.5V13C18 12.4477 17.5523 12 17 12H13Z\", fill: \"white\" }))); };\nexports.PictureInPicture = PictureInPicture;\n//# sourceMappingURL=pictureInPicture.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Presentation = void 0;\nvar preact_1 = require(\"preact\");\nvar Presentation = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6 4C4.34315 4 3 5.34315 3 7V17C3 18.6569 4.34315 20 6 20H18C19.6569 20 21 18.6569 21 17V7C21 5.34315 19.6569 4 18 4H6ZM18 8H6V16H18V8Z\", fill: \"white\" }))); };\nexports.Presentation = Presentation;\n//# sourceMappingURL=presentation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Print = void 0;\nvar preact_1 = require(\"preact\");\nvar Print = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M23 23H26C27.1046 23 28 22.1046 28 21V11C28 9.89543 27.1046 9 26 9H23V5C23 3.89543 22.1046 3 21 3H11C9.89543 3 9 3.89543 9 5V9H6C4.89543 9 4 9.89543 4 11V21C4 22.1046 4.89543 23 6 23H9V28C9 29.1046 9.89543 30 11 30H21C22.1046 30 23 29.1046 23 28V23ZM6 11V21H9V19C8.44772 19 8 18.5523 8 18C8 17.4477 8.44772 17 9 17H23C23.5523 17 24 17.4477 24 18C24 18.5523 23.5523 19 23 19V21H26V11H6ZM21 9V5H11V9H21ZM11 19V28H21V19H11Z\", fill: \"white\" }))); };\nexports.Print = Print;\n//# sourceMappingURL=print.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuizIcon = void 0;\nvar preact_1 = require(\"preact\");\nvar QuizIcon = function () {\n return ((0, preact_1.h)(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8.49857 2.11499L12.7442 4.2052C12.9162 4.28987 12.9812 4.48721 12.8895 4.64597C12.8594 4.69807 12.8145 4.74163 12.7597 4.77201L8.54484 7.10634C8.20953 7.29205 7.79063 7.29205 7.45532 7.10634L3.2405 4.77202C3.07335 4.67945 3.01915 4.47933 3.11944 4.32505C3.15235 4.27441 3.19956 4.23299 3.256 4.2052L7.50203 2.11498C7.81345 1.96167 8.18715 1.96168 8.49857 2.11499ZM14 6.02878V10.7642C14 11.1075 13.8049 11.4256 13.486 11.6022L9.24043 13.9536C9.07328 14.0461 8.85649 13.9961 8.7562 13.8418C8.72329 13.7912 8.7059 13.7333 8.7059 13.6742V8.93882C8.7059 8.59551 8.90104 8.27738 9.21997 8.10075L13.4655 5.74942C13.6326 5.65685 13.8494 5.70688 13.9497 5.86116C13.9826 5.91179 14 5.96973 14 6.02878ZM6.5145 8.31192L2.50483 6.04476C2.45303 6.01547 2.39375 6 2.33333 6C2.14924 6 2 6.14064 2 6.31412V10.88C2 11.211 2.1843 11.5178 2.4855 11.6881L6.49517 13.9552C6.54697 13.9845 6.60625 14 6.66667 14C6.85076 14 7 13.8594 7 13.6859V9.12C7 8.78898 6.8157 8.48223 6.5145 8.31192Z\", fill: \"white\" })));\n};\nexports.QuizIcon = QuizIcon;\n//# sourceMappingURL=quiz.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Related = void 0;\nvar preact_1 = require(\"preact\");\nvar Related = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8 7H12C13.1046 7 14 7.89543 14 9V13C14 14.1046 13.1046 15 12 15H8C6.89543 15 6 14.1046 6 13V9C6 7.89543 6.89543 7 8 7ZM8 13H12V9H8V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8 18H12C13.1046 18 14 18.8954 14 20V24C14 25.1046 13.1046 26 12 26H8C6.89543 26 6 25.1046 6 24V20C6 18.8954 6.89543 18 8 18ZM8 24H12V20H8V24Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M24 7H20C18.8954 7 18 7.89543 18 9V13C18 14.1046 18.8954 15 20 15H24C25.1046 15 26 14.1046 26 13V9C26 7.89543 25.1046 7 24 7ZM24 13H20V9H24V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M20 18H24C25.1046 18 26 18.8954 26 20V24C26 25.1046 25.1046 26 24 26H20C18.8954 26 18 25.1046 18 24V20C18 18.8954 18.8954 18 20 18ZM20 24H24V20H20V24Z\", fill: \"white\" }))); };\nexports.Related = Related;\n//# sourceMappingURL=related.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReplayIcon = void 0;\nvar preact_1 = require(\"preact\");\nvar ReplayIcon = function () {\n return ((0, preact_1.h)(\"svg\", { width: \"33\", height: \"32\", viewBox: \"0 0 33 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"g\", { opacity: \"0.8\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M11.5 7.50049C8.73858 7.50049 6.5 9.73906 6.5 12.5005V16.5005C6.5 19.2619 8.73858 21.5005 11.5 21.5005H13.0858L11.7929 22.7934C11.4024 23.1839 11.4024 23.8171 11.7929 24.2076C12.1834 24.5981 12.8166 24.5981 13.2071 24.2076L16.2071 21.2076C16.5976 20.8171 16.5976 20.1839 16.2071 19.7934L13.2071 16.7934C12.8166 16.4029 12.1834 16.4029 11.7929 16.7934C11.4024 17.1839 11.4024 17.8171 11.7929 18.2076L13.0858 19.5005H11.5C9.84315 19.5005 8.5 18.1573 8.5 16.5005V12.5005C8.5 10.8436 9.84315 9.50049 11.5 9.50049H21.5C23.1569 9.50049 24.5 10.8436 24.5 12.5005V16.5005C24.5 18.1573 23.1569 19.5005 21.5 19.5005H20C19.4477 19.5005 19 19.9482 19 20.5005C19 21.0528 19.4477 21.5005 20 21.5005H21.5C24.2614 21.5005 26.5 19.2619 26.5 16.5005V12.5005C26.5 9.73906 24.2614 7.50049 21.5 7.50049H11.5Z\", fill: \"white\" }))));\n};\nexports.ReplayIcon = ReplayIcon;\n//# sourceMappingURL=replay.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScreenRotation = void 0;\nvar preact_1 = require(\"preact\");\nvar ScreenRotation = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M12 3C12 2.44772 12.4477 2 13 2C17.9706 2 22 6.02944 22 11C22 11.5523 21.5523 12 21 12C20.4477 12 20 11.5523 20 11C20 7.13401 16.866 4 13 4C12.4477 4 12 3.55228 12 3ZM10.6569 7.82843L7.82843 10.6569L13.4853 16.3137L16.3137 13.4853L10.6569 7.82843ZM12.0711 6.41421C11.29 5.63317 10.0237 5.63317 9.24265 6.41421L6.41422 9.24264C5.63317 10.0237 5.63317 11.29 6.41422 12.0711L12.0711 17.7279C12.8521 18.509 14.1185 18.509 14.8995 17.7279L17.7279 14.8995C18.509 14.1184 18.509 12.8521 17.7279 12.0711L12.0711 6.41421ZM11 22C11.5523 22 12 21.5523 12 21C12 20.4477 11.5523 20 11 20C7.13401 20 4 16.866 4 13C4 12.4477 3.55228 12 3 12C2.44771 12 2 12.4477 2 13C2 17.9706 6.02944 22 11 22Z\", fill: \"white\" }))); };\nexports.ScreenRotation = ScreenRotation;\n//# sourceMappingURL=screenRotation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Share = void 0;\nvar preact_1 = require(\"preact\");\nvar Share = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M22.6667 12.6667C24.5076 12.6667 26 11.1743 26 9.33333C26 7.49238 24.5076 6 22.6667 6C20.8257 6 19.3333 7.49238 19.3333 9.33333C19.3333 9.38882 19.3347 9.44399 19.3374 9.49881L11.9575 13.9443C11.3473 13.1665 10.3987 12.6667 9.33333 12.6667C7.49238 12.6667 6 14.1591 6 16C6 17.8409 7.49238 19.3333 9.33333 19.3333C10.3981 19.3333 11.3462 18.8341 11.9564 18.057L19.3374 22.5013C19.3347 22.5561 19.3333 22.6112 19.3333 22.6667C19.3333 24.5076 20.8257 26 22.6667 26C24.5076 26 26 24.5076 26 22.6667C26 20.8257 24.5076 19.3333 22.6667 19.3333C21.6074 19.3333 20.6636 19.8274 20.053 20.5976L12.864 16.2689L12.8651 15.7324L20.0531 11.4025C20.6637 12.1727 21.6075 12.6667 22.6667 12.6667ZM22.6667 10.6667C21.9303 10.6667 21.3333 10.0697 21.3333 9.33333C21.3333 8.59695 21.9303 8 22.6667 8C23.403 8 24 8.59695 24 9.33333C24 10.0697 23.403 10.6667 22.6667 10.6667ZM9.33333 17.3333C8.59695 17.3333 8 16.7364 8 16C8 15.2636 8.59695 14.6667 9.33333 14.6667C10.0697 14.6667 10.6667 15.2636 10.6667 16C10.6667 16.7364 10.0697 17.3333 9.33333 17.3333ZM21.3333 22.6667C21.3333 23.403 21.9303 24 22.6667 24C23.403 24 24 23.403 24 22.6667C24 21.9303 23.403 21.3333 22.6667 21.3333C21.9303 21.3333 21.3333 21.9303 21.3333 22.6667Z\", fill: \"white\" }))); };\nexports.Share = Share;\n//# sourceMappingURL=share.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Spinner = void 0;\nvar preact_1 = require(\"preact\");\nvar styles = require(\"./spinner.scss\");\nvar Spinner = function () { return ((0, preact_1.h)(\"svg\", { width: \"25\", height: \"24\", viewBox: \"0 0 25 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", className: styles.spinner },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M12.5 18C15.8137 18 18.5 15.3137 18.5 12C18.5 8.68629 15.8137 6 12.5 6C9.18629 6 6.5 8.68629 6.5 12C6.5 15.3137 9.18629 18 12.5 18ZM12.5 22C18.0228 22 22.5 17.5228 22.5 12C22.5 6.47715 18.0228 2 12.5 2C6.97715 2 2.5 6.47715 2.5 12C2.5 17.5228 6.97715 22 12.5 22Z\", fill: \"white\", \"fill-opacity\": \"0.2\" }),\n (0, preact_1.h)(\"path\", { d: \"M18.5 12H22.5C22.5 6.47715 18.0228 2 12.5 2V6C15.8137 6 18.5 8.68629 18.5 12Z\", fill: \"white\" }))); };\nexports.Spinner = Spinner;\n//# sourceMappingURL=spinner.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Switch = void 0;\nvar preact_1 = require(\"preact\");\nvar Switch = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M17.6744 9.27934L21.7563 13.3632L21.8282 13.4537L21.887 13.5492L21.9333 13.6489L21.9684 13.7556L21.9824 13.8172L21.9974 13.929L22 14L21.9897 14.1405L21.9824 14.1828L21.9535 14.2949L21.9231 14.3759L21.887 14.4508L21.8281 14.5463L21.7763 14.6137L21.7207 14.6744L17.6744 18.7207C17.3019 19.0931 16.6981 19.0931 16.3256 18.7207C15.9818 18.3769 15.9554 17.8359 16.2463 17.4617L16.3256 17.3719L18.7439 14.9536L12.9537 14.9537C12.4675 14.9537 12.0663 14.5899 12.0074 14.1196L12 14C12 13.5109 12.3682 13.1078 12.8425 13.0527L12.9537 13.0463L18.7426 13.0451L16.3256 10.6281C15.9798 10.2823 15.9551 9.73687 16.2515 9.36252L16.3256 9.27934C16.6981 8.90689 17.3019 8.90689 17.6744 9.27934ZM6.32562 5.27934C6.69807 4.90689 7.30193 4.90689 7.67438 5.27934L7.74849 5.36252C8.04493 5.73687 8.02023 6.28225 7.67438 6.6281L5.2574 9.04508L11.0463 9.04628L11.1575 9.0527C11.6318 9.10779 12 9.5109 12 10L11.9926 10.1196C11.9337 10.5899 11.5325 10.9537 11.0463 10.9537L5.25605 10.9536L7.67438 13.3719L7.75372 13.4617C8.04463 13.8359 8.01818 14.3769 7.67438 14.7207C7.30193 15.0931 6.69807 15.0931 6.32562 14.7207L2.25793 10.6523L2.18664 10.5668L2.12413 10.4708L2.07695 10.3759L2.03697 10.2639L2.01028 10.1405L2 10C2 9.95226 2.00351 9.90534 2.01036 9.85937L2.01758 9.81716L2.04651 9.70514L2.08932 9.59642L2.12415 9.52899L2.18631 9.43351L2.24369 9.36325L6.32562 5.27934Z\", fill: \"white\" }))); };\nexports.Switch = Switch;\n//# sourceMappingURL=switch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VolumeMute = void 0;\nvar preact_1 = require(\"preact\");\nvar VolumeMute = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M7 11L14.2433 6.97588C15.2135 6.43689 16 6.89817 16 7.99076V24.0092C16 25.1087 15.2171 25.565 14.2433 25.024L7 21H3.00293C2.44903 21 2 20.5443 2 20.0046V11.9954C2 11.4456 2.43788 11 3.00293 11H7ZM9 12.1768V19.8232L14 22.6009V9.39899L9 12.1768ZM7 13H4V19H7V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { d: \"M20.4645 12.4644C20.0739 12.855 20.0739 13.4881 20.4645 13.8786L22.5858 16L20.4645 18.1213C20.0739 18.5118 20.0739 19.145 20.4645 19.5355C20.855 19.926 21.4882 19.926 21.8787 19.5355L24 17.4142L26.1213 19.5355C26.5118 19.926 27.145 19.926 27.5355 19.5355C27.9261 19.145 27.9261 18.5118 27.5355 18.1213L25.4142 16L27.5355 13.8786C27.9261 13.4881 27.9261 12.855 27.5355 12.4644C27.145 12.0739 26.5118 12.0739 26.1213 12.4644L24 14.5857L21.8787 12.4644C21.4882 12.0739 20.855 12.0739 20.4645 12.4644Z\", fill: \"white\" }))); };\nexports.VolumeMute = VolumeMute;\n//# sourceMappingURL=volumeMute.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VolumeOn = void 0;\nvar preact_1 = require(\"preact\");\nvar VolumeOn = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M25.063 26.1618C27.6367 23.4547 29.1 19.8564 29.1 16.0287C29.1 12.1544 27.6007 8.51592 24.971 5.79967C24.5869 5.40288 23.9538 5.39263 23.557 5.77678C23.1602 6.16093 23.15 6.79402 23.5341 7.19081C25.8057 9.53719 27.1 12.6782 27.1 16.0287C27.1 19.339 25.8368 22.4453 23.6136 24.7838C23.233 25.184 23.249 25.817 23.6493 26.1975C24.0495 26.5781 24.6825 26.5621 25.063 26.1618Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M7 11L14.2433 6.97595C15.2135 6.43696 16 6.89824 16 7.99082V24.0092C16 25.1087 15.2171 25.5651 14.2433 25.0241L7 21H3.00293C2.44903 21 2 20.5444 2 20.0046V11.9954C2 11.4457 2.43788 11 3.00293 11H7ZM9 12.1768V19.8232L14 22.601V9.39906L9 12.1768ZM7 13H4V19H7V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { d: \"M24.2097 15.6872C24.2097 18.6042 22.9749 21.3231 20.8574 23.2257C20.4466 23.5948 19.8143 23.561 19.4452 23.1502C19.076 22.7394 19.1098 22.1071 19.5207 21.738C21.2197 20.2114 22.2097 18.0316 22.2097 15.6872C22.2097 13.4938 21.344 11.4424 19.8323 9.93166C19.4417 9.54127 19.4414 8.9081 19.8318 8.51745C20.2222 8.12679 20.8554 8.12657 21.246 8.51697C23.1299 10.3996 24.2097 12.9585 24.2097 15.6872Z\", fill: \"white\" }))); };\nexports.VolumeOn = VolumeOn;\n//# sourceMappingURL=volumeOn.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Zip = void 0;\nvar preact_1 = require(\"preact\");\nvar Zip = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6 2C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V7.82843C20 7.29799 19.7893 6.78929 19.4142 6.41421L15.5858 2.58579C15.2107 2.21071 14.702 2 14.1716 2H6ZM14.3657 4.36569C13.8617 3.86171 13 4.21865 13 4.93137V8.2C13 8.64183 13.3582 9 13.8 9H17.0686C17.7814 9 18.1383 8.13829 17.6343 7.63431L14.3657 4.36569ZM7 5H9V7H7V5ZM9 9H7V11H9V9ZM7 13H9V15H7V13ZM10 17H6V19H10V17Z\", fill: \"white\" }))); };\nexports.Zip = Zip;\n//# sourceMappingURL=zip.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Icon = exports.IconSize = void 0;\nvar preact_1 = require(\"preact\");\nvar classnames = require(\"classnames\");\nvar icons_1 = require(\"./icons\");\nvar styles = require(\"./icon.scss\");\nvar IconSize;\n(function (IconSize) {\n IconSize[\"small\"] = \"small\";\n IconSize[\"medium\"] = \"medium\";\n IconSize[\"large\"] = \"large\";\n})(IconSize = exports.IconSize || (exports.IconSize = {}));\nvar Icon = function (props) {\n var Icon = icons_1.Icons[props.name];\n if (!Icon) {\n return null;\n }\n return ((0, preact_1.h)(\"div\", { className: classnames(styles.iconWrapper, styles[props.size]) },\n (0, preact_1.h)(Icon, null)));\n};\nexports.Icon = Icon;\nexports.Icon.defaultProps = {\n size: IconSize.medium\n};\n//# sourceMappingURL=index.js.map","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".Button__button___NM3Vl{display:flex;justify-content:center;align-items:center;flex-wrap:nowrap;font-weight:700;border:1px solid rgba(0,0,0,0);border-radius:4px;cursor:pointer}.Button__button___NM3Vl.Button__primary___vkWyL{background-color:var(--playkit-primary-color);color:var(--playkit-primary-text-contrast-color)}.Button__button___NM3Vl.Button__primary___vkWyL:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-primary-darker-color)}.Button__button___NM3Vl.Button__primary___vkWyL:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-primary-brighter-color)}.Button__button___NM3Vl.Button__danger___lCKPq{background-color:var(--playkit-danger-color);color:var(--playkit-danger-text-contrast-color)}.Button__button___NM3Vl.Button__danger___lCKPq:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-danger-darker-color)}.Button__button___NM3Vl.Button__danger___lCKPq:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-danger-brighter-color)}.Button__button___NM3Vl.Button__translucent___nSc5h{background-color:rgba(0,0,0,.6);color:var(--playkit-primary-text-contrast-color)}.Button__button___NM3Vl.Button__borderless___sov7o{background-color:rgba(0,0,0,0);color:var(--playkit-tone-1-color)}.Button__button___NM3Vl.Button__borderless___sov7o:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-tone-4-color)}.Button__button___NM3Vl.Button__borderless___sov7o:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-tone-6-color)}.Button__button___NM3Vl.Button__borderlessTranslucent___L8tFt{background-color:rgba(0,0,0,0);color:var(--playkit-tone-1-color)}.Button__button___NM3Vl.Button__borderlessTranslucent___L8tFt:not(.Button__disabled___j4KjS):hover{background-color:rgba(0,0,0,.7)}.Button__button___NM3Vl.Button__borderlessTranslucent___L8tFt:not(.Button__disabled___j4KjS):focus{background-color:rgba(0,0,0,.4)}.Button__button___NM3Vl.Button__secondary___ChhYF{background-color:var(--playkit-tone-6-color);color:var(--playkit-primary-text-contrast-color)}.Button__button___NM3Vl.Button__secondary___ChhYF:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-tone-5-color)}.Button__button___NM3Vl.Button__secondary___ChhYF:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-tone-5-color)}.Button__button___NM3Vl.Button__small____SSTu{height:24px;font-size:13px;line-height:16px;padding:0 4px}.Button__button___NM3Vl.Button__small____SSTu.Button__withIcon___c3vxV{padding-right:8px}.Button__button___NM3Vl.Button__small____SSTu.Button__withIcon___c3vxV>span{margin-left:2px}.Button__button___NM3Vl.Button__small____SSTu.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__medium___psqY1{height:32px;font-size:14px;line-height:17px;padding:0 8px}.Button__button___NM3Vl.Button__medium___psqY1.Button__withIcon___c3vxV{padding-right:12px}.Button__button___NM3Vl.Button__medium___psqY1.Button__withIcon___c3vxV>span{margin-left:4px}.Button__button___NM3Vl.Button__medium___psqY1.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__large___ftsNW{height:40px;font-size:16px;line-height:19px;padding:0 16px}.Button__button___NM3Vl.Button__large___ftsNW.Button__withIcon___c3vxV{padding-left:12px}.Button__button___NM3Vl.Button__large___ftsNW.Button__withIcon___c3vxV>span{margin-left:4px}.Button__button___NM3Vl.Button__large___ftsNW.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__disabled___j4KjS{background-color:rgba(0,0,0,0);color:var(--playkit-tone-4-color);border-color:var(--playkit-tone-4-color);cursor:default}.Button__button___NM3Vl.Button__loading___Q2l_S{cursor:default;pointer-events:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/components/button/Button.scss\",\"webpack://./../node_modules/@playkit-js/common/dist/components/variables.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAGA,wBACE,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,gBAAA,CACA,eAAA,CACA,8BAAA,CACA,iBCPY,CDQZ,cAAA,CACA,gDACE,6CEVY,CFWZ,gDER0B,CFUxB,qFACE,oDEbe,CFejB,qFACE,sDEfiB,CFmBvB,+CACE,4CENW,CFOX,+CEJyB,CFMvB,oFACE,mDETc,CFWhB,oFACE,qDEXgB,CFetB,oDACE,+BAAA,CACA,gDEhC0B,CFkC5B,mDACE,8BAAA,CACA,iCEZW,CFcT,wFACE,4CEZO,CFcT,wFACE,4CEbO,CFiBb,8DACE,8BAAA,CACA,iCExBW,CF0BT,mGACE,+BAAA,CAEF,mGACE,+BAAA,CAIN,kDACE,4CE9BW,CF+BX,gDE5D0B,CF8DxB,uFACE,4CEnCO,CFqCT,uFACE,4CEtCO,CF0Cb,8CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,aAAA,CACA,uEACE,iBAAA,CACA,4EACE,eAAA,CAGJ,uEACE,aAAA,CAGJ,+CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,aAAA,CACA,wEACE,kBAAA,CACA,6EACE,eAAA,CAGJ,wEACE,aAAA,CAGJ,8CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,cAAA,CACA,uEACE,iBAAA,CACA,4EACE,eAAA,CAGJ,uEACE,aAAA,CAGJ,iDACE,8BAAA,CACA,iCE1FW,CF2FX,wCE3FW,CF4FX,cAAA,CAEF,gDACE,cAAA,CACA,mBAAA\",\"sourcesContent\":[\"@import '../variables.scss';\\n\\n// https://www.figma.com/file/GYMv1jsthckOnKmCrdQJY3/%E2%8F%AF-Player-v7-(Guidelines)?node-id=21%3A1943&t=ywdMo875C6kzd7pN-0\\n.button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-wrap: nowrap;\\n font-weight: 700;\\n border: 1px solid transparent;\\n border-radius: $roundness-1;\\n cursor: pointer;\\n &.primary {\\n background-color: $primary-color;\\n color: $primary-text-contrast-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $primary-darker-color;\\n }\\n &:focus {\\n background-color: $primary-brighter-color;\\n }\\n }\\n }\\n &.danger {\\n background-color: $danger-color;\\n color: $danger-text-contrast-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $danger-darker-color;\\n }\\n &:focus {\\n background-color: $danger-brighter-color;\\n }\\n }\\n }\\n &.translucent {\\n background-color: rgba(0, 0, 0, 0.6);\\n color: $primary-text-contrast-color;\\n }\\n &.borderless {\\n background-color: transparent;\\n color: $tone-1-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $tone-4-color;\\n }\\n &:focus {\\n background-color: $tone-6-color;\\n }\\n }\\n }\\n &.borderlessTranslucent {\\n background-color: transparent;\\n color: $tone-1-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: rgba(0, 0, 0, 0.7);\\n }\\n &:focus {\\n background-color: rgba(0, 0, 0, 0.4);\\n }\\n }\\n }\\n &.secondary {\\n background-color: $tone-6-color;\\n color: $primary-text-contrast-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $tone-5-color;\\n }\\n &:focus {\\n background-color: $tone-5-color;\\n }\\n }\\n }\\n &.small {\\n height: 24px;\\n font-size: 13px;\\n line-height: 16px;\\n padding: 0 4px;\\n &.withIcon {\\n padding-right: 8px;\\n > span {\\n margin-left: 2px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.medium {\\n height: 32px;\\n font-size: 14px;\\n line-height: 17px;\\n padding: 0 8px;\\n &.withIcon {\\n padding-right: 12px;\\n > span {\\n margin-left: 4px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.large {\\n height: 40px;\\n font-size: 16px;\\n line-height: 19px;\\n padding: 0 16px;\\n &.withIcon {\\n padding-left: 12px;\\n > span {\\n margin-left: 4px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.disabled {\\n background-color: transparent;\\n color: $tone-4-color;\\n border-color: $tone-4-color;\\n cursor: default;\\n }\\n &.loading {\\n cursor: default;\\n pointer-events: none;\\n }\\n}\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\\n// colors\\n$white: #ffffff;\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"button\": \"Button__button___NM3Vl\",\n\t\"primary\": \"Button__primary___vkWyL\",\n\t\"disabled\": \"Button__disabled___j4KjS\",\n\t\"danger\": \"Button__danger___lCKPq\",\n\t\"translucent\": \"Button__translucent___nSc5h\",\n\t\"borderless\": \"Button__borderless___sov7o\",\n\t\"borderlessTranslucent\": \"Button__borderlessTranslucent___L8tFt\",\n\t\"secondary\": \"Button__secondary___ChhYF\",\n\t\"small\": \"Button__small____SSTu\",\n\t\"withIcon\": \"Button__withIcon___c3vxV\",\n\t\"iconOnly\": \"Button__iconOnly___dISNi\",\n\t\"medium\": \"Button__medium___psqY1\",\n\t\"large\": \"Button__large___ftsNW\",\n\t\"loading\": \"Button__loading___Q2l_S\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".InputField__input-field-wrapper___K1QeS{display:flex;align-items:center;flex-grow:1;width:100%;max-width:599px;padding-right:8px;height:32px;border:solid 1px rgba(255,255,255,.4);border-radius:4px}.InputField__input-field-wrapper___K1QeS ::-moz-placeholder{opacity:1}.InputField__input-field-wrapper___K1QeS .InputField__search-results___PBRGr{display:flex;justify-content:flex-end;align-items:center;flex-shrink:0;margin:0 8px 0 6px;font-size:12px;text-overflow:ellipsis}.InputField__input-field-wrapper___K1QeS .InputField__prev-next-wrapper___zAxBA{display:flex;flex-direction:column;justify-content:space-around;max-height:100%;height:100%;width:8px;flex:0 0 8px}.InputField__input-field-wrapper___K1QeS .InputField__prev-next-wrapper___zAxBA .InputField__prev-next-button___HP7Me{display:flex;align-items:center;height:50%;padding:0;background-color:rgba(0,0,0,0);border:none;cursor:pointer}.InputField__input-field-wrapper___K1QeS .InputField__prev-next-wrapper___zAxBA .InputField__prev-next-button___HP7Me.InputField__disabled___GVLcH{opacity:.4;cursor:default}.InputField__input-field-wrapper___K1QeS .InputField__input-element___BAphE{width:100%;flex-grow:1;flex-shrink:1;font-size:15px;padding:0 6px 1px 6px;color:var(--playkit-tone-1-color);background:rgba(0,0,0,0);border:none;overflow:hidden;text-overflow:ellipsis}.InputField__input-field-wrapper___K1QeS .InputField__input-element___BAphE::placeholder{color:var(--playkit-tone-2-color)}.InputField__input-field-wrapper___K1QeS .InputField__input-element___BAphE::selection{background-color:var(--playkit-primary-brighter-color)}.InputField__input-field-wrapper___K1QeS .InputField__clear-icon___eTi3X{padding:0;flex:0 0 12px;max-width:12px;max-height:12px;background-color:rgba(0,0,0,0);width:12px;height:12px;outline-offset:4px;border:none;cursor:pointer}.InputField__input-field-wrapper___K1QeS:hover{border-color:#fff}.InputField__input-field-wrapper___K1QeS.InputField__active____D1qS{color:var(--playkit-tone-2-color);background:var(--playkit-tone-8-color);border-color:#fff}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/components/input-field/InputField.scss\",\"webpack://./../node_modules/@playkit-js/common/dist/components/variables.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAEA,yCAKE,YAAA,CACA,kBAAA,CACA,WAAA,CACA,UAAA,CACA,eAAA,CACA,iBAAA,CACA,WAAA,CACA,qCAAA,CACA,iBCZY,CAAA,4DDCV,SAAA,CAYF,6EACE,YAAA,CACA,wBAAA,CACA,kBAAA,CACA,aAAA,CACA,kBAAA,CACA,cAAA,CACA,sBAAA,CAEF,gFACE,YAAA,CACA,qBAAA,CACA,4BAAA,CACA,eAAA,CACA,WAAA,CACA,SAAA,CACA,YAAA,CACA,sHACE,YAAA,CACA,kBAAA,CACA,UAAA,CACA,SAAA,CACA,8BAAA,CACA,WAAA,CACA,cAAA,CACA,mJACE,UAAA,CACA,cAAA,CAIN,4EACE,UAAA,CACA,WAAA,CACA,aAAA,CACA,cAAA,CACA,qBAAA,CACA,iCEvBW,CFwBX,wBAAA,CACA,WAAA,CACA,eAAA,CACA,sBAAA,CACA,yFACE,iCE5BS,CF8BX,uFACE,sDEzDmB,CF4DvB,yEACE,SAAA,CACA,aAAA,CACA,cAAA,CACA,eAAA,CACA,8BAAA,CACA,UAAA,CACA,WAAA,CACA,kBAAA,CACA,WAAA,CACA,cAAA,CAEF,+CACE,iBCvEI,CDyEN,oEACE,iCElDW,CFmDX,sCE7CW,CF8CX,iBC5EI\",\"sourcesContent\":[\"@import '../variables.scss';\\n\\n.input-field-wrapper {\\n ::-moz-placeholder {\\n opacity: 1;\\n }\\n\\n display: flex;\\n align-items: center;\\n flex-grow: 1;\\n width: 100%;\\n max-width: 599px;\\n padding-right: 8px;\\n height: 32px;\\n border: solid 1px rgba(255, 255, 255, 0.4);\\n border-radius: $roundness-1;\\n .search-results {\\n display: flex;\\n justify-content: flex-end;\\n align-items: center;\\n flex-shrink: 0;\\n margin: 0 8px 0 6px;\\n font-size: 12px;\\n text-overflow: ellipsis;\\n }\\n .prev-next-wrapper {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-around;\\n max-height: 100%;\\n height: 100%;\\n width: 8px;\\n flex: 0 0 8px;\\n .prev-next-button {\\n display: flex;\\n align-items: center;\\n height: 50%;\\n padding: 0;\\n background-color: transparent;\\n border: none;\\n cursor: pointer;\\n &.disabled {\\n opacity: 0.4;\\n cursor: default;\\n }\\n }\\n }\\n .input-element {\\n width: 100%;\\n flex-grow: 1;\\n flex-shrink: 1;\\n font-size: 15px;\\n padding: 0 6px 1px 6px;\\n color: $tone-1-color;\\n background: transparent;\\n border: none;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n &::placeholder {\\n color: $tone-2-color;\\n }\\n &::selection {\\n background-color: $primary-brighter-color;\\n }\\n }\\n .clear-icon {\\n padding: 0;\\n flex: 0 0 12px;\\n max-width: 12px;\\n max-height: 12px;\\n background-color: transparent;\\n width: 12px;\\n height: 12px;\\n outline-offset: 4px;\\n border: none;\\n cursor: pointer;\\n }\\n &:hover {\\n border-color: $white;\\n }\\n &.active {\\n color: $tone-2-color;\\n background: $tone-8-color;\\n border-color: $white;\\n }\\n}\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\\n// colors\\n$white: #ffffff;\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"input-field-wrapper\": \"InputField__input-field-wrapper___K1QeS\",\n\t\"inputFieldWrapper\": \"InputField__input-field-wrapper___K1QeS\",\n\t\"search-results\": \"InputField__search-results___PBRGr\",\n\t\"searchResults\": \"InputField__search-results___PBRGr\",\n\t\"prev-next-wrapper\": \"InputField__prev-next-wrapper___zAxBA\",\n\t\"prevNextWrapper\": \"InputField__prev-next-wrapper___zAxBA\",\n\t\"prev-next-button\": \"InputField__prev-next-button___HP7Me\",\n\t\"prevNextButton\": \"InputField__prev-next-button___HP7Me\",\n\t\"disabled\": \"InputField__disabled___GVLcH\",\n\t\"input-element\": \"InputField__input-element___BAphE\",\n\t\"inputElement\": \"InputField__input-element___BAphE\",\n\t\"clear-icon\": \"InputField__clear-icon___eTi3X\",\n\t\"clearIcon\": \"InputField__clear-icon___eTi3X\",\n\t\"active\": \"InputField__active____D1qS\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".icon__iconWrapper___O5uqn.icon__small___IddLg{width:16px;height:16px}.icon__iconWrapper___O5uqn.icon__medium___llFxB{width:24px;height:24px}.icon__iconWrapper___O5uqn.icon__large___Q96VN{width:32px;height:32px}.icon__iconWrapper___O5uqn>svg{width:100%;height:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/icon/icon.scss\"],\"names\":[],\"mappings\":\"AACE,+CACE,UAAA,CACA,WAAA,CAEF,gDACE,UAAA,CACA,WAAA,CAEF,+CACE,UAAA,CACA,WAAA,CAEF,+BACE,UAAA,CACA,WAAA\",\"sourcesContent\":[\".iconWrapper {\\n &.small {\\n width: 16px;\\n height: 16px;\\n }\\n &.medium {\\n width: 24px;\\n height: 24px;\\n }\\n &.large {\\n width: 32px;\\n height: 32px;\\n }\\n > svg {\\n width: 100%;\\n height: 100%;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"iconWrapper\": \"icon__iconWrapper___O5uqn\",\n\t\"small\": \"icon__small___IddLg\",\n\t\"medium\": \"icon__medium___llFxB\",\n\t\"large\": \"icon__large___Q96VN\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".spinner__spinner___NHbzR{animation:spinner__spinner-animation___FVrgH 1s linear infinite}@keyframes spinner__spinner-animation___FVrgH{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/icon/icons/spinner.scss\"],\"names\":[],\"mappings\":\"AAAA,0BACE,+DAAA,CAEF,8CACE,GACE,sBAAA,CAEF,KACE,wBAAA,CAAA\",\"sourcesContent\":[\".spinner {\\n animation: spinner-animation 1s linear infinite;\\n}\\n@keyframes spinner-animation {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"spinner\": \"spinner__spinner___NHbzR\",\n\t\"spinner-animation\": \"spinner__spinner-animation___FVrgH\",\n\t\"spinnerAnimation\": \"spinner__spinner-animation___FVrgH\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".autoscroll-button__autoscroll-root___DVqxM{position:absolute;right:12px;bottom:25px;width:auto;height:32px;padding:4px}.autoscroll-button__autoscroll-button___WBkBE{opacity:0;z-index:1}.autoscroll-button__autoscroll-button___WBkBE.autoscroll-button__autoscroll-button-visible___ZHUf1{opacity:1}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/autoscroll-button/autoscroll-button.scss\"],\"names\":[],\"mappings\":\"AAEA,4CACE,iBAAA,CACA,UAAA,CACA,WAAA,CACA,UAAA,CACA,WAAA,CACA,WAAA,CAGF,8CACE,SAAA,CACA,SAAA,CACA,mGACE,SAAA\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.autoscroll-root {\\n position: absolute;\\n right: 12px;\\n bottom: 25px;\\n width: auto;\\n height: 32px;\\n padding: 4px;\\n}\\n\\n.autoscroll-button {\\n opacity: 0;\\n z-index: 1;\\n &.autoscroll-button-visible {\\n opacity: 1;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"autoscroll-root\": \"autoscroll-button__autoscroll-root___DVqxM\",\n\t\"autoscrollRoot\": \"autoscroll-button__autoscroll-root___DVqxM\",\n\t\"autoscroll-button\": \"autoscroll-button__autoscroll-button___WBkBE\",\n\t\"autoscrollButton\": \"autoscroll-button__autoscroll-button___WBkBE\",\n\t\"autoscroll-button-visible\": \"autoscroll-button__autoscroll-button-visible___ZHUf1\",\n\t\"autoscrollButtonVisible\": \"autoscroll-button__autoscroll-button-visible___ZHUf1\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".captionList__transcript-wrapper___Omf8T{position:absolute;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-right:9px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/caption-list/captionList.scss\"],\"names\":[],\"mappings\":\"AAAA,yCACE,iBAAA,CACA,UAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,iBAAA\",\"sourcesContent\":[\".transcript-wrapper {\\n position: absolute;\\n width: 100%;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n padding-right: 9px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"transcript-wrapper\": \"captionList__transcript-wrapper___Omf8T\",\n\t\"transcriptWrapper\": \"captionList__transcript-wrapper___Omf8T\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".caption__caption___v5MZY{display:flex;justify-content:space-between;width:100%;margin-bottom:9px;margin-left:8px;color:var(--playkit-tone-1-color);cursor:pointer}.caption__caption___v5MZY .caption__caption-time___N5cw5{flex-shrink:1;min-width:48px;align-items:flex-start;margin-right:8px;padding-top:2px;text-align:right;font-size:12px;color:var(--playkit-tone-2-color)}.caption__caption___v5MZY .caption__caption-content___F1WTh{flex-grow:1;font-size:14px;line-height:18px;text-align:left;user-select:text}.caption__caption___v5MZY .caption__caption-content___F1WTh:hover .caption__caption-span___cTewu{background-color:var(--playkit-tone-6-color)}.caption__caption___v5MZY .caption__caption-content___F1WTh:hover.caption__highlighted___ikaKW .caption__caption-span___cTewu{background-color:var(--playkit-primary-darker-color);padding:0 2px}.caption__caption___v5MZY .caption__caption-content___F1WTh.caption__highlighted___ikaKW .caption__caption-span___cTewu{color:var(--playkit-primary-text-contrast-color);background-color:var(--playkit-primary-color);padding:0 2px}.caption__caption___v5MZY .caption__caption-content___F1WTh.caption__without-time___v7BWT{margin-left:16px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__caption-span___cTewu{user-select:text;-ms-user-select:text;border-radius:2px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__caption-span___cTewu::selection{background-color:var(--playkit-primary-brighter-color);padding:0 2px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__caption-span___cTewu>span::selection{background-color:var(--playkit-primary-brighter-color)}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__highlight-search___Rc4qg{color:var(--playkit-secondary-text-contrast-color);background-color:var(--playkit-secondary-color);border-radius:2px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__highlight-search___Rc4qg::selection{background-color:var(--playkit-primary-brighter-color)}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__active-search___yoZOD{color:var(--playkit-secondary-text-contrast-color);background-color:var(--playkit-primary-darker-color);border-radius:2px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__active-search___yoZOD::selection{background-color:var(--playkit-primary-brighter-color)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/caption/caption.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAEA,0BACE,YAAA,CACA,6BAAA,CACA,UAAA,CACA,iBAAA,CACA,eAAA,CACA,iCCsBa,CDrBb,cAAA,CACA,yDACE,aAAA,CACA,cAAA,CACA,sBAAA,CACA,gBAAA,CACA,eAAA,CACA,gBAAA,CACA,cAAA,CACA,iCCaW,CDXb,4DACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,eAAA,CACA,gBAAA,CAEE,iGACE,4CCOO,CDJP,8HACE,oDC5Ba,CD6Bb,aAAA,CAKJ,wHACE,gDCjCsB,CDkCtB,6CCrCQ,CDsCR,aAAA,CAGJ,0FACE,gBAAA,CAEF,2FACE,gBAAA,CACA,oBAAA,CACA,iBAAA,CACA,sGACE,sDC/CiB,CDgDjB,aAAA,CAEF,2GACE,sDCnDiB,CDsDrB,+FACE,kDCjD0B,CDkD1B,+CCrDY,CDsDZ,iBAAA,CACA,0GACE,sDC3DiB,CD8DrB,4FACE,kDCzD0B,CD0D1B,oDCjEiB,CDkEjB,iBAAA,CACA,uGACE,sDCnEiB\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.caption {\\n display: flex;\\n justify-content: space-between;\\n width: 100%;\\n margin-bottom: 9px;\\n margin-left: 8px;\\n color: $tone-1-color;\\n cursor: pointer;\\n .caption-time {\\n flex-shrink: 1;\\n min-width: 48px;\\n align-items: flex-start;\\n margin-right: 8px;\\n padding-top: 2px;\\n text-align: right;\\n font-size: 12px;\\n color: $tone-2-color;\\n }\\n .caption-content {\\n flex-grow: 1;\\n font-size: 14px;\\n line-height: 18px;\\n text-align: left;\\n user-select: text;\\n &:hover {\\n .caption-span {\\n background-color: $tone-6-color;\\n }\\n &.highlighted {\\n .caption-span {\\n background-color: $primary-darker-color;\\n padding: 0 2px;\\n }\\n }\\n }\\n &.highlighted {\\n .caption-span {\\n color: $primary-text-contrast-color;\\n background-color: $primary-color;\\n padding: 0 2px;\\n }\\n }\\n &.without-time {\\n margin-left: 16px;\\n }\\n .caption-span {\\n user-select: text;\\n -ms-user-select: text;\\n border-radius: 2px;\\n &::selection {\\n background-color: $primary-brighter-color;\\n padding: 0 2px;\\n }\\n & > span::selection {\\n background-color: $primary-brighter-color;\\n }\\n }\\n .highlight-search {\\n color: $secondary-text-contrast-color;\\n background-color: $secondary-color;\\n border-radius: 2px;\\n &::selection {\\n background-color: $primary-brighter-color;\\n }\\n }\\n .active-search {\\n color: $secondary-text-contrast-color;\\n background-color: $primary-darker-color;\\n border-radius: 2px;\\n &::selection {\\n background-color: $primary-brighter-color;\\n }\\n }\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"caption\": \"caption__caption___v5MZY\",\n\t\"caption-time\": \"caption__caption-time___N5cw5\",\n\t\"captionTime\": \"caption__caption-time___N5cw5\",\n\t\"caption-content\": \"caption__caption-content___F1WTh\",\n\t\"captionContent\": \"caption__caption-content___F1WTh\",\n\t\"caption-span\": \"caption__caption-span___cTewu\",\n\t\"captionSpan\": \"caption__caption-span___cTewu\",\n\t\"highlighted\": \"caption__highlighted___ikaKW\",\n\t\"without-time\": \"caption__without-time___v7BWT\",\n\t\"withoutTime\": \"caption__without-time___v7BWT\",\n\t\"highlight-search\": \"caption__highlight-search___Rc4qg\",\n\t\"highlightSearch\": \"caption__highlight-search___Rc4qg\",\n\t\"active-search\": \"caption__active-search___yoZOD\",\n\t\"activeSearch\": \"caption__active-search___yoZOD\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".plugin-button__pluginButton___hbzoA.plugin-button__active___pVKh2{background-color:var(--playkit-tone-6-color)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/plugin-button/plugin-button.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAGE,mEACE,4CC+BW\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.pluginButton {\\n &.active {\\n background-color: $tone-6-color;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"pluginButton\": \"plugin-button__pluginButton___hbzoA\",\n\t\"active\": \"plugin-button__active___pVKh2\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".popover-menu__popover-anchor-container___WFlS9{cursor:pointer;border-radius:4px}.popover-menu__popover-anchor-container___WFlS9:hover{background-color:var(--playkit-tone-4-color)}.popover-menu__popover-anchor-container___WFlS9.popover-menu__active___MtUlv{background-color:var(--playkit-tone-6-color)}.popover-menu__popover-anchor-container___WFlS9 .popover-menu__popover-anchor___sJyqi{pointer-events:none}.popover-menu__popover-container___jooX_{position:relative}.popover-menu__popover-container___jooX_ .popover-menu__popover-component___lcTrW{background-color:var(--playkit-tone-7-color);border-radius:4px;display:block;font-size:15px;margin-top:6px;position:absolute;right:0px;z-index:1}.popover-menu__popover-menu-item___I24pM{align-items:center;display:flex;font-size:15px;line-height:18px;min-height:30px;padding:9px 24px 9px 16px;white-space:nowrap;margin:4px}.popover-menu__popover-menu-item___I24pM.popover-menu__popover-menu-item-disabled___IpAvq{color:var(--playkit-tone-4-color)}.popover-menu__popover-menu-item___I24pM:hover:not(.popover-menu__popover-menu-item-disabled___IpAvq){background-color:var(--playkit-tone-6-color);border-radius:4px;cursor:pointer}.popover-menu__popover-menu-item___I24pM:focus{outline:1px solid #222}.popover-menu__popover-menu___GirVB{padding-top:6px;padding-bottom:6px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/popover-menu/popover-menu.scss\",\"webpack://./variables.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAEA,gDACE,cAAA,CACA,iBCDY,CDGZ,sDACE,4CE0BW,CFvBb,6EACE,4CEwBW,CFrBb,sFACE,mBAAA,CAIJ,yCACE,iBAAA,CAEA,kFACE,4CEaW,CFZX,iBCrBU,CDsBV,aAAA,CACA,cAAA,CACA,cAAA,CACA,iBAAA,CACA,SAAA,CACA,SAAA,CAGJ,yCACE,kBAAA,CACA,YAAA,CACA,cAAA,CACA,gBAAA,CACA,eAAA,CACA,yBAAA,CACA,kBAAA,CACA,UAAA,CAEA,0FACE,iCEXW,CFcb,sGACE,4CEbW,CFcX,iBC9CU,CD+CV,cAAA,CAGF,+CACE,sBAAA,CAIJ,oCACE,eAAA,CACA,kBAAA\",\"sourcesContent\":[\"@import './variables.scss';\\n\\n.popover-anchor-container {\\n cursor: pointer;\\n border-radius: $roundness-1;\\n \\n &:hover {\\n background-color: $tone-4-color;\\n }\\n \\n &.active {\\n background-color: $tone-6-color;\\n }\\n \\n .popover-anchor {\\n pointer-events: none;\\n }\\n}\\n\\n.popover-container {\\n position: relative;\\n \\n .popover-component {\\n background-color: $tone-7-color;\\n border-radius: $roundness-1;\\n display: block;\\n font-size: 15px;\\n margin-top: 6px;\\n position: absolute;\\n right: 0px;\\n z-index: 1;\\n }\\n}\\n.popover-menu-item {\\n align-items: center;\\n display: flex;\\n font-size: 15px;\\n line-height: 18px;\\n min-height: 30px;\\n padding: 9px 24px 9px 16px;\\n white-space: nowrap;\\n margin: 4px;\\n\\n &.popover-menu-item-disabled {\\n color: $tone-4-color;\\n }\\n \\n &:hover:not(.popover-menu-item-disabled) {\\n background-color: $tone-6-color;\\n border-radius: $roundness-1;\\n cursor: pointer;\\n }\\n \\n &:focus {\\n outline: 1px solid #222;\\n }\\n}\\n\\n.popover-menu {\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-3: 16px;\\n\\n@mixin plugin-scrollbar {\\n &::-webkit-scrollbar {\\n width: 4px;\\n }\\n &::-webkit-scrollbar-track {\\n background: rgba(33, 33, 33, 0.9);\\n }\\n &::-webkit-scrollbar-thumb {\\n border-radius: 3px;\\n background-color: rgba(255, 255, 255, 0.3);\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"popover-anchor-container\": \"popover-menu__popover-anchor-container___WFlS9\",\n\t\"popoverAnchorContainer\": \"popover-menu__popover-anchor-container___WFlS9\",\n\t\"active\": \"popover-menu__active___MtUlv\",\n\t\"popover-anchor\": \"popover-menu__popover-anchor___sJyqi\",\n\t\"popoverAnchor\": \"popover-menu__popover-anchor___sJyqi\",\n\t\"popover-container\": \"popover-menu__popover-container___jooX_\",\n\t\"popoverContainer\": \"popover-menu__popover-container___jooX_\",\n\t\"popover-component\": \"popover-menu__popover-component___lcTrW\",\n\t\"popoverComponent\": \"popover-menu__popover-component___lcTrW\",\n\t\"popover-menu-item\": \"popover-menu__popover-menu-item___I24pM\",\n\t\"popoverMenuItem\": \"popover-menu__popover-menu-item___I24pM\",\n\t\"popover-menu-item-disabled\": \"popover-menu__popover-menu-item-disabled___IpAvq\",\n\t\"popoverMenuItemDisabled\": \"popover-menu__popover-menu-item-disabled___IpAvq\",\n\t\"popover-menu\": \"popover-menu__popover-menu___GirVB\",\n\t\"popoverMenu\": \"popover-menu__popover-menu___GirVB\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".small-screen-slate__smallScreenWrapper___kIoD5{position:relative;width:100%;height:100%;margin-top:-8px;margin-right:-2px;display:flex;align-items:center}.small-screen-slate__smallScreenWrapper___kIoD5 .small-screen-slate__closeButton___trEe_{position:absolute;right:6px;top:0px}.small-screen-slate__smallScreenWrapper___kIoD5 .small-screen-slate__contentWrapper___m1K1A{display:flex;width:100%;flex-direction:column;justify-content:center;align-items:center}.small-screen-slate__smallScreenWrapper___kIoD5 .small-screen-slate__contentWrapper___m1K1A .small-screen-slate__textContent___IjRTd{margin-top:8px;font-size:18px;font-style:normal;font-weight:700;line-height:20px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/small-screen-slate/small-screen-slate.scss\"],\"names\":[],\"mappings\":\"AAAA,gDACE,iBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,yFACE,iBAAA,CACA,SAAA,CACA,OAAA,CAEF,4FACE,YAAA,CACA,UAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CACA,qIACE,cAAA,CACA,cAAA,CACA,iBAAA,CACA,eAAA,CACA,gBAAA\",\"sourcesContent\":[\".smallScreenWrapper {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n margin-top: -8px;\\n margin-right: -2px;\\n display: flex;\\n align-items: center;\\n .closeButton {\\n position: absolute;\\n right: 6px;\\n top: 0px;\\n }\\n .contentWrapper {\\n display: flex;\\n width: 100%;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n .textContent {\\n margin-top: 8px;\\n font-size: 18px;\\n font-style: normal;\\n font-weight: 700;\\n line-height: 20px;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"smallScreenWrapper\": \"small-screen-slate__smallScreenWrapper___kIoD5\",\n\t\"closeButton\": \"small-screen-slate__closeButton___trEe_\",\n\t\"contentWrapper\": \"small-screen-slate__contentWrapper___m1K1A\",\n\t\"textContent\": \"small-screen-slate__textContent___IjRTd\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".spinner__transcript-loader___SzsWJ{display:flex;flex-direction:column;height:100%;width:100%;color:var(--playkit-tone-3-color);margin:0;animation:spinner__frame-bounce___nmvI_ 2s infinite ease-in-out;overflow:hidden}.spinner__transcript-loader___SzsWJ svg{flex-shrink:0}@keyframes spinner__frame-bounce___nmvI_{0%,100%{opacity:.1}50%{opacity:.25}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/spinner/spinner.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAEA,oCACE,YAAA,CACA,qBAAA,CACA,WAAA,CACA,UAAA,CACA,iCCyBa,CDxBb,QAAA,CACA,+DAAA,CACA,eAAA,CACA,wCACE,aAAA,CAIJ,yCACE,QAEE,UAAA,CAEF,IACE,WAAA,CAAA\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.transcript-loader {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n width: 100%;\\n color: $tone-3-color;\\n margin: 0;\\n animation: frame-bounce 2s infinite ease-in-out;\\n overflow: hidden;\\n svg {\\n flex-shrink: 0;\\n }\\n}\\n\\n@keyframes frame-bounce {\\n 0%,\\n 100% {\\n opacity: 0.1;\\n }\\n 50% {\\n opacity: 0.25;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"transcript-loader\": \"spinner__transcript-loader___SzsWJ\",\n\t\"transcriptLoader\": \"spinner__transcript-loader___SzsWJ\",\n\t\"frame-bounce\": \"spinner__frame-bounce___nmvI_\",\n\t\"frameBounce\": \"spinner__frame-bounce___nmvI_\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".transcript__hidden___uGO_Y{visibility:hidden}.transcript__root___SEZlz{display:flex;justify-content:center;padding:16px 4px 0px 0px;color:var(--playkit-tone-1-color);height:100%;width:100%;position:absolute;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1}.transcript__root___SEZlz .transcript__skip-transcript-button___fQwQC{position:absolute;top:-1000px;z-index:1;display:flex;align-items:center;justify-content:center;width:120px;height:32px;border-radius:16px;box-shadow:0 2px 8px 0 rgba(0,0,0,.3);border:solid 1px var(--playkit-primary-color);background-color:var(--playkit-tone-7-color);font-size:15px;line-height:1.27;color:var(--playkit-tone-1-color)}.transcript__root___SEZlz .transcript__skip-transcript-button___fQwQC:focus{top:56px;right:12px;outline:none !important}.transcript__root___SEZlz *{font-family:sans-serif;font-style:normal}.transcript__global-container___Sn7v8{height:100%;display:flex;flex-direction:column;max-width:599px;width:100%}.transcript__header___AgZkl{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:8px;padding-left:16px;font-size:16px;padding-right:16px;gap:8px;z-index:2}.transcript__body___jTlBG{position:relative;padding-top:1px;flex:1;width:100%;overflow-y:auto;text-align:center;overflow-x:hidden}.transcript__body___jTlBG::-webkit-scrollbar{width:4px}.transcript__body___jTlBG::-webkit-scrollbar-track{background:rgba(33,33,33,.9)}.transcript__body___jTlBG::-webkit-scrollbar-thumb{border-radius:3px;background-color:rgba(255,255,255,.3)}.transcript__error-wrapper___Qe39U{height:100%;width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--playkit-tone-3-color)}.transcript__error-wrapper___Qe39U .transcript__error-icon___no0DO{width:100%;height:100%;max-width:184px;max-height:184px;background-size:contain;background-repeat:no-repeat;background-position:center}.transcript__error-wrapper___Qe39U .transcript__error-main-text___VIVvd{font-size:1.3em;margin-top:8px;margin-bottom:2px}.transcript__error-wrapper___Qe39U .transcript__error-description-text___gg6yo{margin:0}.transcript__error-wrapper___Qe39U .transcript__retry-button___wCycN{width:36px;display:block;padding:0;margin:4px auto 0 auto;border:none;background:inherit;color:#fff;cursor:pointer}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/transcript/transcript.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\",\"webpack://./variables.scss\"],\"names\":[],\"mappings\":\"AAEA,4BACE,iBAAA,CAGF,0BACE,YAAA,CACA,sBAAA,CACA,wBAAA,CACA,iCCoBa,CDnBb,WAAA,CACA,UAAA,CACA,iBAAA,CACA,yBAAA,CACA,yBAAA,CACA,iCAAA,CACA,SAAA,CACA,sEACE,iBAAA,CACA,WAAA,CACA,SAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,WAAA,CACA,kBEvBU,CFwBV,qCAAA,CACA,6CAAA,CACA,4CCMW,CDLX,cAAA,CACA,gBAAA,CACA,iCCHW,CDIX,4EACE,QAAA,CACA,UAAA,CACA,uBAAA,CAIJ,4BACE,sBAAA,CACA,iBAAA,CAIJ,sCACE,WAAA,CACA,YAAA,CACA,qBAAA,CACA,eAAA,CACA,UAAA,CAGF,4BACE,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,UAAA,CACA,iBAAA,CACA,iBAAA,CACA,cAAA,CACA,kBAAA,CACA,OAAA,CACA,SAAA,CAGF,0BACE,iBAAA,CACA,eAAA,CACA,MAAA,CACA,UAAA,CACA,eAAA,CACA,iBAAA,CACA,iBAAA,CEpEA,6CACE,SAAA,CAEF,mDACE,4BAAA,CAEF,mDACE,iBAAA,CACA,qCAAA,CFgEJ,mCACE,WAAA,CACA,UAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,iCCtDa,CDuDb,mEACE,UAAA,CACA,WAAA,CACA,eAAA,CACA,gBAAA,CACA,uBAAA,CACA,2BAAA,CACA,0BAAA,CAEF,wEACE,eAAA,CACA,cAAA,CACA,iBAAA,CAEF,+EACE,QAAA,CAEF,qEACE,UAAA,CACA,aAAA,CACA,SAAA,CACA,sBAAA,CACA,WAAA,CACA,kBAAA,CACA,UAAA,CACA,cAAA\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.hidden {\\n visibility: hidden;\\n}\\n\\n.root {\\n display: flex;\\n justify-content: center;\\n padding: 16px 4px 0px 0px;\\n color: $tone-1-color;\\n height: 100%;\\n width: 100%;\\n position: absolute;\\n background: rgba(0, 0, 0, 0.6);\\n backdrop-filter: blur(8px);\\n -webkit-backdrop-filter: blur(8px);\\n z-index: 1;\\n .skip-transcript-button {\\n position: absolute;\\n top: -1000px;\\n z-index: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 120px;\\n height: 32px;\\n border-radius: $roundness-3;\\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.3);\\n border: solid 1px $primary-color;\\n background-color: $tone-7-color;\\n font-size: 15px;\\n line-height: 1.27;\\n color: $tone-1-color;\\n &:focus {\\n top: 56px;\\n right: 12px;\\n outline: none !important; // prevent focus styles inherited from playkit-player.playkit-nav\\n }\\n }\\n\\n * {\\n font-family: sans-serif;\\n font-style: normal;\\n }\\n}\\n\\n.global-container {\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n max-width: 599px;\\n width: 100%;\\n}\\n\\n.header {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n width: 100%;\\n margin-bottom: 8px;\\n padding-left: 16px;\\n font-size: 16px;\\n padding-right: 16px;\\n gap: 8px;\\n z-index: 2;\\n}\\n\\n.body {\\n position: relative;\\n padding-top: 1px;\\n flex: 1;\\n width: 100%;\\n overflow-y: auto;\\n text-align: center;\\n overflow-x: hidden;\\n @include plugin-scrollbar();\\n}\\n\\n.error-wrapper {\\n height: 100%;\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-direction: column;\\n color: $tone-3-color;\\n .error-icon {\\n width: 100%;\\n height: 100%;\\n max-width: 184px;\\n max-height: 184px;\\n background-size: contain;\\n background-repeat: no-repeat;\\n background-position: center;\\n }\\n .error-main-text {\\n font-size: 1.3em;\\n margin-top: 8px;\\n margin-bottom: 2px;\\n }\\n .error-description-text {\\n margin: 0;\\n }\\n .retry-button {\\n width: 36px;\\n display: block;\\n padding: 0;\\n margin: 4px auto 0 auto;\\n border: none;\\n background: inherit;\\n color: white;\\n cursor: pointer;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-3: 16px;\\n\\n@mixin plugin-scrollbar {\\n &::-webkit-scrollbar {\\n width: 4px;\\n }\\n &::-webkit-scrollbar-track {\\n background: rgba(33, 33, 33, 0.9);\\n }\\n &::-webkit-scrollbar-thumb {\\n border-radius: 3px;\\n background-color: rgba(255, 255, 255, 0.3);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"hidden\": \"transcript__hidden___uGO_Y\",\n\t\"root\": \"transcript__root___SEZlz\",\n\t\"skip-transcript-button\": \"transcript__skip-transcript-button___fQwQC\",\n\t\"skipTranscriptButton\": \"transcript__skip-transcript-button___fQwQC\",\n\t\"global-container\": \"transcript__global-container___Sn7v8\",\n\t\"globalContainer\": \"transcript__global-container___Sn7v8\",\n\t\"header\": \"transcript__header___AgZkl\",\n\t\"body\": \"transcript__body___jTlBG\",\n\t\"error-wrapper\": \"transcript__error-wrapper___Qe39U\",\n\t\"errorWrapper\": \"transcript__error-wrapper___Qe39U\",\n\t\"error-icon\": \"transcript__error-icon___no0DO\",\n\t\"errorIcon\": \"transcript__error-icon___no0DO\",\n\t\"error-main-text\": \"transcript__error-main-text___VIVvd\",\n\t\"errorMainText\": \"transcript__error-main-text___VIVvd\",\n\t\"error-description-text\": \"transcript__error-description-text___gg6yo\",\n\t\"errorDescriptionText\": \"transcript__error-description-text___gg6yo\",\n\t\"retry-button\": \"transcript__retry-button___wCycN\",\n\t\"retryButton\": \"transcript__retry-button___wCycN\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\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 \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children) || fetch(\"dc:date\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.DocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\nexports.removeSubsets = removeSubsets;\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition = exports.DocumentPosition || (exports.DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\nexports.compareDocumentPosition = compareDocumentPosition;\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\nexports.uniqueSort = uniqueSort;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\n/**\n * A map of functions to check nodes against.\n */\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * Returns a function to check whether a node has an attribute with a particular\n * value.\n *\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * Returns a function that returns `true` if either of the input functions\n * returns `true` for a node.\n *\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * Returns a function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n *\n * @param options An object describing nodes to look for.\n * @returns A function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * Checks whether a node matches the description in `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\n/**\n * Returns all nodes that match `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\n/**\n * Returns the node with the supplied ID.\n *\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\n/**\n * Returns all nodes with the supplied `tagName`.\n *\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\n/**\n * Returns all nodes with the supplied `type`.\n *\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n var childsIndex = childs.lastIndexOf(elem);\n if (childsIndex >= 0) {\n childs.splice(childsIndex, 1);\n }\n }\n elem.next = null;\n elem.prev = null;\n elem.parent = null;\n}\nexports.removeElement = removeElement;\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\nexports.replaceElement = replaceElement;\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param parent The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(parent, child) {\n removeElement(child);\n child.next = null;\n child.parent = parent;\n if (parent.children.push(child) > 1) {\n var sibling = parent.children[parent.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param parent The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(parent, child) {\n removeElement(child);\n child.parent = parent;\n child.prev = null;\n if (parent.children.unshift(child) !== 1) {\n var sibling = parent.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\nexports.prepend = prepend;\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function. If `node` is not an array, it will be wrapped in one.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return find(test, Array.isArray(node) ? node : [node], recurse, limit);\n}\nexports.filter = filter;\n/**\n * Search an array of nodes and their children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n /** Stack of the arrays we are looking at. */\n var nodeStack = [nodes];\n /** Stack of the indices within the arrays. */\n var indexStack = [0];\n for (;;) {\n // First, check if the current array has any more elements to look at.\n if (indexStack[0] >= nodeStack[0].length) {\n // If we have no more arrays to look at, we are done.\n if (indexStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n /*\n * Add the children to the stack. We are depth-first, so this is\n * the next array we look at.\n */\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\nexports.find = find;\n/**\n * Finds the first element inside of an array that matches a test function. This is an alias for `Array.prototype.find`.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Node or array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var node = nodes[i];\n if (!(0, domhandler_1.isTag)(node)) {\n continue;\n }\n else if (test(node)) {\n elem = node;\n }\n else if (recurse && node.children.length > 0) {\n elem = findOne(test, node.children, true);\n }\n }\n return elem;\n}\nexports.findOne = findOne;\n/**\n * Checks if a tree of nodes contains at least one node passing a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) || existsOne(test, checked.children));\n });\n}\nexports.existsOne = existsOne;\n/**\n * Search an array of nodes and their children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var result = [];\n var nodeStack = [nodes];\n var indexStack = [0];\n for (;;) {\n if (indexStack[0] >= nodeStack[0].length) {\n if (nodeStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if (!(0, domhandler_1.isTag)(elem))\n continue;\n if (test(elem))\n result.push(elem);\n if (elem.children.length > 0) {\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\nexports.findAll = findAll;\n//# sourceMappingURL=querying.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `<br>` tags. Ignores comments.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\n/**\n * Get a node's text content. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\n/**\n * Get a node's inner text, ignoring `<script>` and `<style>` tags. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\nexports.getChildren = getChildren;\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node, or `null` if `elem` is a root node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings, including `elem`.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag, or `null` if there is no next\n * sibling.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag, or `null` if there is no\n * previous sibling.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n };\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n };\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n };\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n };\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n };\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n };\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n };\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.end = function () {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n };\n return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \"	\"], [0, \"
\"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n var mode = typeof options === \"object\" ? options.mode : undefined;\n return (0, decode_js_1.decodeHTML)(data, mode);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n var _a;\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_js_1 = __importStar(require(\"./Tokenizer.js\"));\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar tableSectionTags = new Set([\"thead\", \"tbody\"]);\nvar ddtTags = new Set([\"dd\", \"dt\"]);\nvar rtpTags = new Set([\"rt\", \"rp\"]);\nvar openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nvar voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n function Parser(cbs, options) {\n if (options === void 0) { options = {}; }\n var _a, _b, _c, _d, _e;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n // Tokenizer event handlers\n /** @internal */\n Parser.prototype.ontext = function (start, endIndex) {\n var _a, _b;\n var data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n };\n /** @internal */\n Parser.prototype.ontextentity = function (cp) {\n var _a, _b;\n /*\n * Entities can be emitted on the character, or directly after.\n * We use the section start here to get accurate indices.\n */\n var index = this.tokenizer.getSectionStart();\n this.endIndex = index - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp));\n this.startIndex = index;\n };\n Parser.prototype.isVoidElement = function (name) {\n return !this.options.xmlMode && voidElements.has(name);\n };\n /** @internal */\n Parser.prototype.onopentagname = function (start, endIndex) {\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n };\n Parser.prototype.emitOpenTag = function (name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n var impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 &&\n impliesClose.has(this.stack[this.stack.length - 1])) {\n var element = this.stack.pop();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n };\n Parser.prototype.endOpenTag = function (isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n };\n /** @internal */\n Parser.prototype.onopentagend = function (endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onclosetag = function (start, endIndex) {\n var _a, _b, _c, _d, _e, _f;\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (!this.isVoidElement(name)) {\n var pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n var count = this.stack.length - pos;\n while (count--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop(), count !== 0);\n }\n }\n else\n this.stack.length = pos;\n }\n else if (!this.options.xmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (!this.options.xmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onselfclosingtag = function (endIndex) {\n this.endIndex = endIndex;\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n };\n Parser.prototype.closeCurrentTag = function (isOpenImplied) {\n var _a, _b;\n var name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[this.stack.length - 1] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.pop();\n }\n };\n /** @internal */\n Parser.prototype.onattribname = function (start, endIndex) {\n this.startIndex = start;\n var name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n };\n /** @internal */\n Parser.prototype.onattribdata = function (start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n };\n /** @internal */\n Parser.prototype.onattribentity = function (cp) {\n this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);\n };\n /** @internal */\n Parser.prototype.onattribend = function (quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double\n ? '\"'\n : quote === Tokenizer_js_1.QuoteType.Single\n ? \"'\"\n : quote === Tokenizer_js_1.QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n };\n Parser.prototype.getInstructionName = function (value) {\n var index = value.search(reNameEnd);\n var name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n };\n /** @internal */\n Parser.prototype.ondeclaration = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"!\".concat(name), \"!\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onprocessinginstruction = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"?\".concat(name), \"?\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncomment = function (start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncdata = function (start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex - offset);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, \"[CDATA[\".concat(value, \"]]\"));\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onend = function () {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (var index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n Parser.prototype.reset = function () {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n };\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n Parser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n };\n Parser.prototype.getSlice = function (start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n };\n Parser.prototype.shiftBuffer = function () {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n };\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n Parser.prototype.write = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n };\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n Parser.prototype.end = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n };\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n Parser.prototype.pause = function () {\n this.tokenizer.pause();\n };\n /**\n * Resumes parsing after `pause` was called.\n */\n Parser.prototype.resume = function () {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n };\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n Parser.prototype.parseChunk = function (chunk) {\n this.write(chunk);\n };\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n Parser.prototype.done = function (chunk) {\n this.end(chunk);\n };\n return Parser;\n}());\nexports.Parser = Parser;\n//# sourceMappingURL=Parser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuoteType = void 0;\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nvar QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType = exports.QuoteType || (exports.QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nvar Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n};\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(_a, cbs) {\n var _b = _a.xmlMode, xmlMode = _b === void 0 ? false : _b, _c = _a.decodeEntities, decodeEntities = _c === void 0 ? true : _c;\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.trieIndex = 0;\n this.trieCurrent = 0;\n /** For named entities, the index of the value. For numeric entities, the code point. */\n this.entityResult = 0;\n this.entityExcess = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityTrie = xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree;\n }\n Tokenizer.prototype.reset = function () {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined;\n this.running = true;\n this.offset = 0;\n };\n Tokenizer.prototype.write = function (chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n };\n Tokenizer.prototype.end = function () {\n if (this.running)\n this.finish();\n };\n Tokenizer.prototype.pause = function () {\n this.running = false;\n };\n Tokenizer.prototype.resume = function () {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n };\n /**\n * The current index within all of the written data.\n */\n Tokenizer.prototype.getIndex = function () {\n return this.index;\n };\n /**\n * The start of the current section.\n */\n Tokenizer.prototype.getSectionStart = function () {\n return this.sectionStart;\n };\n Tokenizer.prototype.stateText = function (c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateSpecialStartSequence = function (c) {\n var isEnd = this.sequenceIndex === this.currentSequence.length;\n var isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n };\n /** Look for an end tag. For <title> tags, also decode entities. */\n Tokenizer.prototype.stateInSpecialTag = function (c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n var endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n var actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Number) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n break;\n }\n case 2: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n }\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this.index < this.buffer.length + this.offset && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InNamedEntity: {\n this.stateInNamedEntity(c);\n break;\n }\n case State.BeforeEntity: {\n this.stateBeforeEntity(c);\n break;\n }\n case State.InHexEntity: {\n this.stateInHexEntity(c);\n break;\n }\n case State.InNumericEntity: {\n this.stateInNumericEntity(c);\n break;\n }\n default: {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n }\n this.index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n };\n Tokenizer.prototype.emitPartial = function (start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n };\n Tokenizer.prototype.emitCodePoint = function (cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(callback, options, elementCallback) {\n var handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nvar domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nvar parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = parseFeedDefaultOptions; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","/**\n * Srcset Parser\n *\n * By Alex Bell | MIT License\n *\n * JS Parser for the string value that appears in markup <img srcset=\"here\">\n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","const htmlparser = require('htmlparser2');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst { isPlainObject } = require('is-plain-object');\nconst deepmerge = require('deepmerge');\nconst parseSrcset = require('parse-srcset');\nconst { parse: postcssParse } = require('postcss');\n// Tags that can conceivably represent stand-alone media.\nconst mediaTags = [\n 'img', 'audio', 'video', 'picture', 'svg',\n 'object', 'map', 'iframe', 'embed'\n];\n// Tags that are inherently vulnerable to being used in XSS attacks.\nconst vulnerableTags = [ 'script', 'style' ];\n\nfunction each(obj, cb) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n cb(obj[key], key);\n });\n }\n}\n\n// Avoid false positives with .__proto__, .hasOwnProperty, etc.\nfunction has(obj, key) {\n return ({}).hasOwnProperty.call(obj, key);\n}\n\n// Returns those elements of `a` for which `cb(a)` returns truthy\nfunction filter(a, cb) {\n const n = [];\n each(a, function(v) {\n if (cb(v)) {\n n.push(v);\n }\n });\n return n;\n}\n\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n if (has(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction stringifySrcset(parsedSrcset) {\n return parsedSrcset.map(function(part) {\n if (!part.url) {\n throw new Error('URL missing');\n }\n\n return (\n part.url +\n (part.w ? ` ${part.w}w` : '') +\n (part.h ? ` ${part.h}h` : '') +\n (part.d ? ` ${part.d}x` : '')\n );\n }).join(', ');\n}\n\nmodule.exports = sanitizeHtml;\n\n// A valid attribute name.\n// We use a tolerant definition based on the set of strings defined by\n// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state\n// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state .\n// The characters accepted are ones which can be appended to the attribute\n// name buffer without triggering a parse error:\n// * unexpected-equals-sign-before-attribute-name\n// * unexpected-null-character\n// * unexpected-character-in-attribute-name\n// We exclude the empty string because it's impossible to get to the after\n// attribute name state with an empty attribute name buffer.\nconst VALID_HTML_ATTRIBUTE_NAME = /^[^\\0\\t\\n\\f\\r /<=>]+$/;\n\n// Ignore the _recursing flag; it's there for recursive\n// invocation as a guard against this exploit:\n// https://github.com/fb55/htmlparser2/issues/105\n\nfunction sanitizeHtml(html, options, _recursing) {\n if (html == null) {\n return '';\n }\n if (typeof html === 'number') {\n html = html.toString();\n }\n\n let result = '';\n // Used for hot swapping the result variable with an empty string in order to \"capture\" the text written to it.\n let tempResult = '';\n\n function Frame(tag, attribs) {\n const that = this;\n this.tag = tag;\n this.attribs = attribs || {};\n this.tagPosition = result.length;\n this.text = ''; // Node inner text\n this.mediaChildren = [];\n\n this.updateParentNodeText = function() {\n if (stack.length) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.text += that.text;\n }\n };\n\n this.updateParentNodeMediaChildren = function() {\n if (stack.length && mediaTags.includes(this.tag)) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.mediaChildren.push(this.tag);\n }\n };\n }\n\n options = Object.assign({}, sanitizeHtml.defaults, options);\n options.parser = Object.assign({}, htmlParserDefaults, options.parser);\n\n const tagAllowed = function (name) {\n return options.allowedTags === false || (options.allowedTags || []).indexOf(name) > -1;\n };\n\n // vulnerableTags\n vulnerableTags.forEach(function (tag) {\n if (tagAllowed(tag) && !options.allowVulnerableTags) {\n console.warn(`\\n\\n⚠️ Your \\`allowedTags\\` option includes, \\`${tag}\\`, which is inherently\\nvulnerable to XSS attacks. Please remove it from \\`allowedTags\\`.\\nOr, to disable this warning, add the \\`allowVulnerableTags\\` option\\nand ensure you are accounting for this risk.\\n\\n`);\n }\n });\n\n // Tags that contain something other than HTML, or where discarding\n // the text when the tag is disallowed makes sense for other reasons.\n // If we are not allowing these tags, we should drop their content too.\n // For other tags you would drop the tag but keep its content.\n const nonTextTagsArray = options.nonTextTags || [\n 'script',\n 'style',\n 'textarea',\n 'option'\n ];\n let allowedAttributesMap;\n let allowedAttributesGlobMap;\n if (options.allowedAttributes) {\n allowedAttributesMap = {};\n allowedAttributesGlobMap = {};\n each(options.allowedAttributes, function(attributes, tag) {\n allowedAttributesMap[tag] = [];\n const globRegex = [];\n attributes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else {\n allowedAttributesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n }\n const allowedClassesMap = {};\n const allowedClassesGlobMap = {};\n const allowedClassesRegexMap = {};\n each(options.allowedClasses, function(classes, tag) {\n // Implicitly allows the class attribute\n if (allowedAttributesMap) {\n if (!has(allowedAttributesMap, tag)) {\n allowedAttributesMap[tag] = [];\n }\n allowedAttributesMap[tag].push('class');\n }\n\n allowedClassesMap[tag] = classes;\n\n if (Array.isArray(classes)) {\n const globRegex = [];\n allowedClassesMap[tag] = [];\n allowedClassesRegexMap[tag] = [];\n classes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else if (obj instanceof RegExp) {\n allowedClassesRegexMap[tag].push(obj);\n } else {\n allowedClassesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedClassesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n }\n });\n\n const transformTagsMap = {};\n let transformTagsAll;\n each(options.transformTags, function(transform, tag) {\n let transFun;\n if (typeof transform === 'function') {\n transFun = transform;\n } else if (typeof transform === 'string') {\n transFun = sanitizeHtml.simpleTransform(transform);\n }\n if (tag === '*') {\n transformTagsAll = transFun;\n } else {\n transformTagsMap[tag] = transFun;\n }\n });\n\n let depth;\n let stack;\n let skipMap;\n let transformMap;\n let skipText;\n let skipTextDepth;\n let addedText = false;\n\n initializeState();\n\n const parser = new htmlparser.Parser({\n onopentag: function(name, attribs) {\n // If `enforceHtmlBoundary` is `true` and this has found the opening\n // `html` tag, reset the state.\n if (options.enforceHtmlBoundary && name === 'html') {\n initializeState();\n }\n\n if (skipText) {\n skipTextDepth++;\n return;\n }\n const frame = new Frame(name, attribs);\n stack.push(frame);\n\n let skip = false;\n const hasText = !!frame.text;\n let transformedTag;\n if (has(transformTagsMap, name)) {\n transformedTag = transformTagsMap[name](name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n\n if (transformedTag.text !== undefined) {\n frame.innerText = transformedTag.text;\n }\n\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n if (transformTagsAll) {\n transformedTag = transformTagsAll(name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n\n if (!tagAllowed(name) || (options.disallowedTagsMode === 'recursiveEscape' && !isEmptyObject(skipMap)) || (options.nestingLimit != null && depth >= options.nestingLimit)) {\n skip = true;\n skipMap[depth] = true;\n if (options.disallowedTagsMode === 'discard') {\n if (nonTextTagsArray.indexOf(name) !== -1) {\n skipText = true;\n skipTextDepth = 1;\n }\n }\n skipMap[depth] = true;\n }\n depth++;\n if (skip) {\n if (options.disallowedTagsMode === 'discard') {\n // We want the contents but not this tag\n return;\n }\n tempResult = result;\n result = '';\n }\n result += '<' + name;\n\n if (name === 'script') {\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n frame.innerText = '';\n }\n }\n\n if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) {\n each(attribs, function(value, a) {\n if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {\n // This prevents part of an attribute name in the output from being\n // interpreted as the end of an attribute, or end of a tag.\n delete frame.attribs[a];\n return;\n }\n // If the value is empty, and this is a known non-boolean attribute, delete it\n // List taken from https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n if (value === '' && (options.nonBooleanAttributes.includes(a) || options.nonBooleanAttributes.includes('*'))) {\n delete frame.attribs[a];\n return;\n }\n // check allowedAttributesMap for the element and attribute and modify the value\n // as necessary if there are specific values defined.\n let passedAllowedAttributesMapCheck = false;\n if (!allowedAttributesMap ||\n (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||\n (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||\n (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||\n (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {\n passedAllowedAttributesMapCheck = true;\n } else if (allowedAttributesMap && allowedAttributesMap[name]) {\n for (const o of allowedAttributesMap[name]) {\n if (isPlainObject(o) && o.name && (o.name === a)) {\n passedAllowedAttributesMapCheck = true;\n let newValue = '';\n if (o.multiple === true) {\n // verify the values that are allowed\n const splitStrArray = value.split(' ');\n for (const s of splitStrArray) {\n if (o.values.indexOf(s) !== -1) {\n if (newValue === '') {\n newValue = s;\n } else {\n newValue += ' ' + s;\n }\n }\n }\n } else if (o.values.indexOf(value) >= 0) {\n // verified an allowed value matches the entire attribute value\n newValue = value;\n }\n value = newValue;\n }\n }\n }\n if (passedAllowedAttributesMapCheck) {\n if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {\n if (naughtyHref(name, value)) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'script' && a === 'src') {\n\n let allowed = true;\n\n try {\n const parsed = parseUrl(value);\n\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n allowed = false;\n }\n\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'iframe' && a === 'src') {\n let allowed = true;\n try {\n const parsed = parseUrl(value);\n\n if (parsed.isRelativeUrl) {\n // default value of allowIframeRelativeUrls is true\n // unless allowedIframeHostnames or allowedIframeDomains specified\n allowed = has(options, 'allowIframeRelativeUrls')\n ? options.allowIframeRelativeUrls\n : (!options.allowedIframeHostnames && !options.allowedIframeDomains);\n } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {\n const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n // Unparseable iframe src\n allowed = false;\n }\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'srcset') {\n try {\n let parsed = parseSrcset(value);\n parsed.forEach(function(value) {\n if (naughtyHref('srcset', value.url)) {\n value.evil = true;\n }\n });\n parsed = filter(parsed, function(v) {\n return !v.evil;\n });\n if (!parsed.length) {\n delete frame.attribs[a];\n return;\n } else {\n value = stringifySrcset(filter(parsed, function(v) {\n return !v.evil;\n }));\n frame.attribs[a] = value;\n }\n } catch (e) {\n // Unparseable srcset\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'class') {\n const allowedSpecificClasses = allowedClassesMap[name];\n const allowedWildcardClasses = allowedClassesMap['*'];\n const allowedSpecificClassesGlob = allowedClassesGlobMap[name];\n const allowedSpecificClassesRegex = allowedClassesRegexMap[name];\n const allowedWildcardClassesGlob = allowedClassesGlobMap['*'];\n const allowedClassesGlobs = [\n allowedSpecificClassesGlob,\n allowedWildcardClassesGlob\n ]\n .concat(allowedSpecificClassesRegex)\n .filter(function (t) {\n return t;\n });\n if (allowedSpecificClasses && allowedWildcardClasses) {\n value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);\n } else {\n value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);\n }\n if (!value.length) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'style') {\n if (options.parseStyleAttributes) {\n try {\n const abstractSyntaxTree = postcssParse(name + ' {' + value + '}');\n const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);\n\n value = stringifyStyleAttributes(filteredAST);\n\n if (value.length === 0) {\n delete frame.attribs[a];\n return;\n }\n } catch (e) {\n if (typeof window !== 'undefined') {\n console.warn('Failed to parse \"' + name + ' {' + value + '}' + '\", If you\\'re running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547');\n }\n delete frame.attribs[a];\n return;\n }\n } else if (options.allowedStyles) {\n throw new Error('allowedStyles option cannot be used together with parseStyleAttributes: false.');\n }\n }\n result += ' ' + a;\n if (value && value.length) {\n result += '=\"' + escapeHtml(value, true) + '\"';\n }\n } else {\n delete frame.attribs[a];\n }\n });\n }\n if (options.selfClosing.indexOf(name) !== -1) {\n result += ' />';\n } else {\n result += '>';\n if (frame.innerText && !hasText && !options.textFilter) {\n result += escapeHtml(frame.innerText);\n addedText = true;\n }\n }\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n },\n ontext: function(text) {\n if (skipText) {\n return;\n }\n const lastFrame = stack[stack.length - 1];\n let tag;\n\n if (lastFrame) {\n tag = lastFrame.tag;\n // If inner text was set by transform function then let's use it\n text = lastFrame.innerText !== undefined ? lastFrame.innerText : text;\n }\n\n if (options.disallowedTagsMode === 'discard' && ((tag === 'script') || (tag === 'style'))) {\n // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing\n // script tags is, by definition, game over for XSS protection, so if that's\n // your concern, don't allow them. The same is essentially true for style tags\n // which have their own collection of XSS vectors.\n result += text;\n } else {\n const escaped = escapeHtml(text, false);\n if (options.textFilter && !addedText) {\n result += options.textFilter(escaped, tag);\n } else if (!addedText) {\n result += escaped;\n }\n }\n if (stack.length) {\n const frame = stack[stack.length - 1];\n frame.text += text;\n }\n },\n onclosetag: function(name, isImplied) {\n\n if (skipText) {\n skipTextDepth--;\n if (!skipTextDepth) {\n skipText = false;\n } else {\n return;\n }\n }\n\n const frame = stack.pop();\n if (!frame) {\n // Do not crash on bad markup\n return;\n }\n\n if (frame.tag !== name) {\n // Another case of bad markup.\n // Push to stack, so that it will be used in future closing tags.\n stack.push(frame);\n return;\n }\n\n skipText = options.enforceHtmlBoundary ? name === 'html' : false;\n depth--;\n const skip = skipMap[depth];\n if (skip) {\n delete skipMap[depth];\n if (options.disallowedTagsMode === 'discard') {\n frame.updateParentNodeText();\n return;\n }\n tempResult = result;\n result = '';\n }\n\n if (transformMap[depth]) {\n name = transformMap[depth];\n delete transformMap[depth];\n }\n\n if (options.exclusiveFilter && options.exclusiveFilter(frame)) {\n result = result.substr(0, frame.tagPosition);\n return;\n }\n\n frame.updateParentNodeMediaChildren();\n frame.updateParentNodeText();\n\n if (\n // Already output />\n options.selfClosing.indexOf(name) !== -1 ||\n // Escaped tag, closing tag is implied\n (isImplied && !tagAllowed(name) && [ 'escape', 'recursiveEscape' ].indexOf(options.disallowedTagsMode) >= 0)\n ) {\n if (skip) {\n result = tempResult;\n tempResult = '';\n }\n return;\n }\n\n result += '</' + name + '>';\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n addedText = false;\n }\n }, options.parser);\n parser.write(html);\n parser.end();\n\n return result;\n\n function initializeState() {\n result = '';\n depth = 0;\n stack = [];\n skipMap = {};\n transformMap = {};\n skipText = false;\n skipTextDepth = 0;\n }\n\n function escapeHtml(s, quote) {\n if (typeof (s) !== 'string') {\n s = s + '';\n }\n if (options.parser.decodeEntities) {\n s = s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n }\n // TODO: this is inadequate because it will pass `&0;`. This approach\n // will not work, each & must be considered with regard to whether it\n // is followed by a 100% syntactically valid entity or not, and escaped\n // if it is not. If this bothers you, don't set parser.decodeEntities\n // to false. (The default is true.)\n s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, '&') // Match ampersands not part of existing HTML entity\n .replace(/</g, '<')\n .replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n return s;\n }\n\n function naughtyHref(name, href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n // eslint-disable-next-line no-control-regex\n href = href.replace(/[\\x00-\\x20]+/g, '');\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n while (true) {\n const firstIndex = href.indexOf('<!--');\n if (firstIndex === -1) {\n break;\n }\n const lastIndex = href.indexOf('-->', firstIndex + 4);\n if (lastIndex === -1) {\n break;\n }\n href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);\n }\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n // Allow more characters after the first so we don't get faked\n // out by certain schemes browsers accept\n const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\\-+]*):/);\n if (!matches) {\n // Protocol-relative URL starting with any combination of '/' and '\\'\n if (href.match(/^[/\\\\]{2}/)) {\n return !options.allowProtocolRelative;\n }\n\n // No scheme\n return false;\n }\n const scheme = matches[1].toLowerCase();\n\n if (has(options.allowedSchemesByTag, name)) {\n return options.allowedSchemesByTag[name].indexOf(scheme) === -1;\n }\n\n return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;\n }\n\n function parseUrl(value) {\n value = value.replace(/^(\\w+:)?\\s*[\\\\/]\\s*[\\\\/]/, '$1//');\n if (value.startsWith('relative:')) {\n // An attempt to exploit our workaround for base URLs being\n // mandatory for relative URL validation in the WHATWG\n // URL parser, reject it\n throw new Error('relative: exploit attempt');\n }\n // naughtyHref is in charge of whether protocol relative URLs\n // are cool. Here we are concerned just with allowed hostnames and\n // whether to allow relative URLs.\n //\n // Build a placeholder \"base URL\" against which any reasonable\n // relative URL may be parsed successfully\n let base = 'relative://relative-site';\n for (let i = 0; (i < 100); i++) {\n base += `/${i}`;\n }\n\n const parsed = new URL(value, base);\n\n const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';\n return {\n isRelativeUrl,\n url: parsed\n };\n }\n /**\n * Filters user input css properties by allowlisted regex attributes.\n * Modifies the abstractSyntaxTree object.\n *\n * @param {object} abstractSyntaxTree - Object representation of CSS attributes.\n * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.\n * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).\n * @return {object} - The modified tree.\n */\n function filterCss(abstractSyntaxTree, allowedStyles) {\n if (!allowedStyles) {\n return abstractSyntaxTree;\n }\n\n const astRules = abstractSyntaxTree.nodes[0];\n let selectedRule;\n\n // Merge global and tag-specific styles into new AST.\n if (allowedStyles[astRules.selector] && allowedStyles['*']) {\n selectedRule = deepmerge(\n allowedStyles[astRules.selector],\n allowedStyles['*']\n );\n } else {\n selectedRule = allowedStyles[astRules.selector] || allowedStyles['*'];\n }\n\n if (selectedRule) {\n abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);\n }\n\n return abstractSyntaxTree;\n }\n\n /**\n * Extracts the style attributes from an AbstractSyntaxTree and formats those\n * values in the inline style attribute format.\n *\n * @param {AbstractSyntaxTree} filteredAST\n * @return {string} - Example: \"color:yellow;text-align:center !important;font-family:helvetica;\"\n */\n function stringifyStyleAttributes(filteredAST) {\n return filteredAST.nodes[0].nodes\n .reduce(function(extractedAttributes, attrObject) {\n extractedAttributes.push(\n `${attrObject.prop}:${attrObject.value}${attrObject.important ? ' !important' : ''}`\n );\n return extractedAttributes;\n }, [])\n .join(';');\n }\n\n /**\n * Filters the existing attributes for the given property. Discards any attributes\n * which don't match the allowlist.\n *\n * @param {object} selectedRule - Example: { color: red, font-family: helvetica }\n * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.\n * @param {object} attributeObject - Object representing the current css property.\n * @property {string} attributeObject.type - Typically 'declaration'.\n * @property {string} attributeObject.prop - The CSS property, i.e 'color'.\n * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.\n * @return {function} - When used in Array.reduce, will return an array of Declaration objects\n */\n function filterDeclarations(selectedRule) {\n return function (allowedDeclarationsList, attributeObject) {\n // If this property is allowlisted...\n if (has(selectedRule, attributeObject.prop)) {\n const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {\n return regularExpression.test(attributeObject.value);\n });\n\n if (matchesRegex) {\n allowedDeclarationsList.push(attributeObject);\n }\n }\n return allowedDeclarationsList;\n };\n }\n\n function filterClasses(classes, allowed, allowedGlobs) {\n if (!allowed) {\n // The class attribute is allowed without filtering on this tag\n return classes;\n }\n classes = classes.split(/\\s+/);\n return classes.filter(function(clss) {\n return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) {\n return glob.test(clss);\n });\n }).join(' ');\n }\n}\n\n// Defaults are accessible to you so that you can use them as a starting point\n// programmatically if you wish\n\nconst htmlParserDefaults = {\n decodeEntities: true\n};\nsanitizeHtml.defaults = {\n allowedTags: [\n // Sections derived from MDN element categories and limited to the more\n // benign categories.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n // Content sectioning\n 'address', 'article', 'aside', 'footer', 'header',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup',\n 'main', 'nav', 'section',\n // Text content\n 'blockquote', 'dd', 'div', 'dl', 'dt', 'figcaption', 'figure',\n 'hr', 'li', 'main', 'ol', 'p', 'pre', 'ul',\n // Inline text semantics\n 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn',\n 'em', 'i', 'kbd', 'mark', 'q',\n 'rb', 'rp', 'rt', 'rtc', 'ruby',\n 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',\n // Table content\n 'caption', 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'\n ],\n // Tags that cannot be boolean\n nonBooleanAttributes: [\n 'abbr', 'accept', 'accept-charset', 'accesskey', 'action',\n 'allow', 'alt', 'as', 'autocapitalize', 'autocomplete',\n 'blocking', 'charset', 'cite', 'class', 'color', 'cols',\n 'colspan', 'content', 'contenteditable', 'coords', 'crossorigin',\n 'data', 'datetime', 'decoding', 'dir', 'dirname', 'download',\n 'draggable', 'enctype', 'enterkeyhint', 'fetchpriority', 'for',\n 'form', 'formaction', 'formenctype', 'formmethod', 'formtarget',\n 'headers', 'height', 'hidden', 'high', 'href', 'hreflang',\n 'http-equiv', 'id', 'imagesizes', 'imagesrcset', 'inputmode',\n 'integrity', 'is', 'itemid', 'itemprop', 'itemref', 'itemtype',\n 'kind', 'label', 'lang', 'list', 'loading', 'low', 'max',\n 'maxlength', 'media', 'method', 'min', 'minlength', 'name',\n 'nonce', 'optimum', 'pattern', 'ping', 'placeholder', 'popover',\n 'popovertarget', 'popovertargetaction', 'poster', 'preload',\n 'referrerpolicy', 'rel', 'rows', 'rowspan', 'sandbox', 'scope',\n 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src',\n 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'style',\n 'tabindex', 'target', 'title', 'translate', 'type', 'usemap',\n 'value', 'width', 'wrap',\n // Event handlers\n 'onauxclick', 'onafterprint', 'onbeforematch', 'onbeforeprint',\n 'onbeforeunload', 'onbeforetoggle', 'onblur', 'oncancel',\n 'oncanplay', 'oncanplaythrough', 'onchange', 'onclick', 'onclose',\n 'oncontextlost', 'oncontextmenu', 'oncontextrestored', 'oncopy',\n 'oncuechange', 'oncut', 'ondblclick', 'ondrag', 'ondragend',\n 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart',\n 'ondrop', 'ondurationchange', 'onemptied', 'onended',\n 'onerror', 'onfocus', 'onformdata', 'onhashchange', 'oninput',\n 'oninvalid', 'onkeydown', 'onkeypress', 'onkeyup',\n 'onlanguagechange', 'onload', 'onloadeddata', 'onloadedmetadata',\n 'onloadstart', 'onmessage', 'onmessageerror', 'onmousedown',\n 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout',\n 'onmouseover', 'onmouseup', 'onoffline', 'ononline', 'onpagehide',\n 'onpageshow', 'onpaste', 'onpause', 'onplay', 'onplaying',\n 'onpopstate', 'onprogress', 'onratechange', 'onreset', 'onresize',\n 'onrejectionhandled', 'onscroll', 'onscrollend',\n 'onsecuritypolicyviolation', 'onseeked', 'onseeking', 'onselect',\n 'onslotchange', 'onstalled', 'onstorage', 'onsubmit', 'onsuspend',\n 'ontimeupdate', 'ontoggle', 'onunhandledrejection', 'onunload',\n 'onvolumechange', 'onwaiting', 'onwheel'\n ],\n disallowedTagsMode: 'discard',\n allowedAttributes: {\n a: [ 'href', 'name', 'target' ],\n // We don't currently allow img itself by default, but\n // these attributes would make sense if we did.\n img: [ 'src', 'srcset', 'alt', 'title', 'width', 'height', 'loading' ]\n },\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ],\n // URL schemes we permit\n allowedSchemes: [ 'http', 'https', 'ftp', 'mailto', 'tel' ],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false,\n parseStyleAttributes: true\n};\n\nsanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {\n merge = (merge === undefined) ? true : merge;\n newAttribs = newAttribs || {};\n\n return function(tagName, attribs) {\n let attrib;\n if (merge) {\n for (attrib in newAttribs) {\n attribs[attrib] = newAttribs[attrib];\n }\n } else {\n attribs = newAttribs;\n }\n\n return {\n tagName: newTagName,\n attribs: attribs\n };\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","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(i)\n }\n }\n}\n\nclass Container extends Node {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markDirtyUp(i)\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : '<css input>'\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + line\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { isAbsolute, resolve } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { column: origin.column, line: origin.line },\n origin.endLine === undefined\n ? origin.column\n : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { column, line },\n endLine === undefined ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { column, endColumn, endLine, line, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n }\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ column, line })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n\n get from() {\n return this.file || this.id\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n atrule: 'AtRule',\n comment: 'Comment',\n decl: 'Declaration',\n document: 'Document',\n root: 'Root',\n rule: 'Rule'\n}\n\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n}\n\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node,\n visitorIndex: 0,\n visitors: []\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, postcss, result: this.result }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this.css\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n get content() {\n return this.stringify().content\n }\n\n get css() {\n return this.stringify().css\n }\n\n get map() {\n return this.stringify().map\n }\n\n get messages() {\n return this.sync().messages\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n return this.sync().root\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet list = {\n comma(string) {\n return list.split(string, [','], true)\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, relative, resolve, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n this.memoizedFileURLs = new Map()\n this.memoizedPaths = new Map()\n this.memoizedURLs = new Map()\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = map.sourcesContent.map(() => null)\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/(\\n)?\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev)\n } else {\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n path(file) {\n if (this.mapOpts.absolute) return file\n if (file.charCodeAt(0) === 60 /* `<` */) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n let cached = this.memoizedPaths.get(file)\n if (cached) return cached\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n let path = relative(from, file)\n this.memoizedPaths.set(file, path)\n\n return path\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.css, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path)\n if (cached) return cached\n\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString()\n this.memoizedFileURLs.set(path, fileURL)\n\n return fileURL\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n toUrl(path) {\n let cached = this.memoizedURLs.get(path)\n if (cached) return cached\n\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n this.memoizedURLs.set(path, url)\n\n return url\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n }\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this._css\n }\n\n warnings() {\n return []\n }\n\n get content() {\n return this.result.css\n }\n\n get css() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get messages() {\n return []\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation)\n } else if (opts.word) {\n stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index, stringRepresentation)\n }\n return pos\n }\n\n positionInside(index, stringRepresentation) {\n let string = stringRepresentation || this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { column, line }\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n }\n let end = this.source.end\n ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n }\n : {\n column: start.column + 1,\n line: start.line\n }\n\n if (opts.word) {\n let stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index, stringRepresentation)\n end = this.positionInside(index + opts.word.length, stringRepresentation)\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n }\n } else if (opts.endIndex) {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { column: start.column + 1, line: start.line }\n }\n\n return { end, start }\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n this.customProperty = false\n\n this.createTokenizer()\n this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n node.source.end.offset++\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n node.source.end.offset++\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n\n colon(tokens) {\n let brackets = 0\n let token, type, prev\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n node.source.end.offset++\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current.source.end.offset++\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.root.source.end = this.getPosition(this.tokenizer.position())\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n column: pos.col,\n line: pos.line,\n offset\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n input: this.input,\n start: this.getPosition(offset)\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { raw, value }\n }\n node[prop] = value\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n // Errors\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.31'\n this.plugins = this.normalize(plugins)\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n\n process(css, opts = {}) {\n if (\n this.plugins.length === 0 &&\n typeof opts.parser === 'undefined' &&\n typeof opts.stringifier === 'undefined' &&\n typeof opts.syntax === 'undefined'\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nconst DEFAULT_RAW = {\n after: '\\n',\n beforeClose: '\\n',\n beforeComment: '\\n',\n beforeDecl: '\\n',\n beforeOpen: ' ',\n beforeRule: '\\n',\n colon: ': ',\n commentLeft: ' ',\n commentRight: ' ',\n emptyBody: '',\n indent: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n document(node) {\n this.body(node)\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n endOfFile,\n nextToken,\n position\n }\n}\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","var api = require(\"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../../sass-loader/dist/cjs.js!./Button.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../../sass-loader/dist/cjs.js!./InputField.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../sass-loader/dist/cjs.js!./icon.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../../sass-loader/dist/cjs.js!./spinner.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./autoscroll-button.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./captionList.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./caption.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./plugin-button.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./popover-menu.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./small-screen-slate.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./spinner.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./transcript.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","import {h} from 'preact';\nimport * as styles from './autoscroll-button.scss';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {Button, ButtonType} from '@playkit-js/common/dist/components/button';\n\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\ninterface AutoscrollButtonProps {\n onClick: OnClick;\n isAutoScrollEnabled: boolean;\n setAutoscrollButtonRef: (node: HTMLButtonElement | null) => void;\n autoScrollLabel?: string;\n}\n\nconst translates = {\n autoScrollLabel: <Text id=\"transcript.auto_scroll\">Resume AutoScroll</Text>\n};\n\nexport const AutoscrollButton = withText(translates)(\n ({onClick, isAutoScrollEnabled, setAutoscrollButtonRef, autoScrollLabel}: AutoscrollButtonProps) => {\n return (\n <div className={styles.autoscrollRoot} tabIndex={isAutoScrollEnabled ? -1 : 1}>\n <Button\n onClick={onClick}\n setRef={setAutoscrollButtonRef}\n className={`${styles.autoscrollButton} ${isAutoScrollEnabled ? '' : styles.autoscrollButtonVisible}`}\n type={ButtonType.primary}\n icon=\"autoScroll\"\n tooltip={{label: autoScrollLabel!, type: 'left'}}\n ariaLabel={autoScrollLabel}\n />\n </div>\n );\n }\n);\n","export * from './autoscroll-button';\n","import {h, Component} from 'preact';\nimport {HOUR} from '../../utils';\nimport {Caption} from '../caption';\nimport * as styles from './captionList.scss';\nimport {HighlightedMap, CuePointData} from '../../types';\n\nconst {END, HOME} = KalturaPlayer.ui.utils.KeyMap;\n\nexport interface CaptionProps {\n showTime: boolean;\n searchLength: number;\n scrollTo(el: HTMLElement): void;\n scrollToSearchMatch(el: HTMLElement): void;\n videoDuration: number;\n}\n\nexport interface Props {\n data: Array<CuePointData>;\n onSeek: (n: CuePointData) => void;\n autoScroll?: boolean;\n onScroll: (n: number) => void;\n widgetWidth: number;\n highlightedMap: HighlightedMap;\n showItemsIcons: boolean;\n listDataContainCaptions?: boolean;\n searchActive: boolean;\n isAutoScrollEnabled: boolean;\n activeSearchIndex: number;\n searchMap: Record<string, Record<string, number>>;\n captionProps: CaptionProps;\n}\nexport class CaptionList extends Component<Props> {\n private _currentCaptionRef: any = null;\n private _firstCaptionRef: any = null;\n private _lastCaptionRef: any = null;\n shouldComponentUpdate(nextProps: Readonly<Props>) {\n const {highlightedMap, data, searchMap, activeSearchIndex, isAutoScrollEnabled, captionProps} = this.props;\n if (\n highlightedMap !== nextProps.highlightedMap ||\n data !== nextProps.data ||\n searchMap !== nextProps.searchMap ||\n activeSearchIndex !== nextProps.activeSearchIndex ||\n isAutoScrollEnabled !== nextProps.isAutoScrollEnabled ||\n captionProps.videoDuration !== nextProps.captionProps.videoDuration\n ) {\n return true;\n }\n return false;\n }\n\n private _handleClick = (caption: CuePointData) => () => {\n const {onSeek} = this.props;\n onSeek(caption);\n };\n\n private _getShouldScroll = (captionId: string) => {\n const {isAutoScrollEnabled, highlightedMap} = this.props;\n return isAutoScrollEnabled && highlightedMap[captionId];\n };\n\n private _getShouldScrollToSearchMatch = (captionId: string) => {\n const {isAutoScrollEnabled, searchMap, activeSearchIndex} = this.props;\n return !isAutoScrollEnabled && searchMap[captionId] && searchMap[captionId][activeSearchIndex] !== undefined;\n };\n\n private _getSearchProps = (captionId: string) => {\n const {searchMap, activeSearchIndex, captionProps} = this.props;\n const searchProps: any = {};\n if (searchMap[captionId]) {\n searchProps.indexMap = searchMap[captionId];\n searchProps.activeSearchIndex = activeSearchIndex;\n searchProps.searchLength = captionProps.searchLength;\n }\n return searchProps;\n };\n\n private _getCaptionProps = (captionData: CuePointData) => {\n const {highlightedMap, captionProps, isAutoScrollEnabled} = this.props;\n const {id}: {id: string} = captionData;\n const newCaptionProps = {\n showTime: captionProps.showTime,\n scrollTo: captionProps.scrollTo,\n scrollToSearchMatch: captionProps.scrollToSearchMatch,\n key: id,\n onClick: this._handleClick(captionData),\n caption: captionData,\n highlighted: highlightedMap,\n longerThanHour: captionProps.videoDuration >= HOUR,\n shouldScroll: this._getShouldScroll(id),\n shouldScrollToSearchMatch: this._getShouldScrollToSearchMatch(id),\n isAutoScrollEnabled,\n searchCaption: this.props.searchMap[captionData.id],\n ...this._getSearchProps(id)\n };\n return newCaptionProps;\n };\n\n private _handleKeyUp = (event: KeyboardEvent) => {\n if (event.keyCode === END) {\n this._lastCaptionRef?._hotspotRef?.focus();\n } else if (event.keyCode === HOME) {\n this._firstCaptionRef?._hotspotRef?.focus();\n }\n };\n\n render() {\n const {data} = this.props;\n let isSearchCaption = false;\n return (\n <div className={styles.transcriptWrapper} onKeyUp={this._handleKeyUp}>\n {data.map((captionData, index) => {\n const captionProps = this._getCaptionProps(captionData);\n return (\n <Caption\n ref={node => {\n if (index === 0) {\n this._firstCaptionRef = node;\n } else if (index === data.length - 1) {\n this._lastCaptionRef = node;\n }\n if (captionProps.searchCaption){\n Object.keys(captionProps.searchCaption).forEach(key => {\n if (parseInt(key) === this.props.activeSearchIndex) {\n this._currentCaptionRef = node\n isSearchCaption = true;\n }\n });\n }\n if (!isSearchCaption && captionProps.highlighted[captionData.id]) {\n this._currentCaptionRef = node;\n }\n }}\n {...captionProps}\n />\n );\n })}\n </div>\n );\n }\n}\n","export * from './captionList';\n","import {Component, h} from 'preact';\nimport {A11yWrapper} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {secondsToTime} from '../../utils';\nimport {CuePointData} from '../../types';\nimport * as styles from './caption.scss';\n\nexport interface CaptionProps {\n showTime: boolean;\n searchLength: number;\n scrollTo(el: HTMLElement): void;\n scrollToSearchMatch(el: HTMLElement): void;\n videoDuration: number;\n}\n\ninterface ExtendedCaptionProps extends CaptionProps {\n caption: CuePointData;\n onClick: () => void;\n highlighted: boolean;\n shouldScroll: boolean;\n shouldScrollToSearchMatch: boolean;\n indexMap: Record<string, number> | undefined;\n activeSearchIndex: number;\n longerThanHour: boolean;\n isAutoScrollEnabled: boolean;\n}\n\nexport class Caption extends Component<ExtendedCaptionProps> {\n private _hotspotRef: HTMLElement | null = null;\n\n componentDidUpdate() {\n if (this._hotspotRef && this.props.shouldScroll) {\n this.props.scrollTo(this._hotspotRef);\n } else if (this._hotspotRef && this.props.shouldScrollToSearchMatch) {\n this.props.scrollToSearchMatch(this._hotspotRef);\n }\n }\n\n shouldComponentUpdate(nextProps: ExtendedCaptionProps) {\n const {indexMap, highlighted, isAutoScrollEnabled, activeSearchIndex, longerThanHour} = this.props;\n if (longerThanHour !== nextProps.longerThanHour) {\n return true;\n }\n if (highlighted !== nextProps.highlighted) {\n return true;\n }\n if (highlighted && isAutoScrollEnabled !== nextProps.isAutoScrollEnabled) {\n return true;\n }\n if (indexMap !== nextProps.indexMap) {\n return true;\n }\n if (indexMap && nextProps.indexMap && indexMap[activeSearchIndex] !== nextProps.indexMap[nextProps.activeSearchIndex]) {\n return true;\n }\n return false;\n }\n\n private _handleClick = () => {\n this._gotoCurrentTime();\n };\n\n private _gotoCurrentTime = () => {\n const {caption, onClick} = this.props;\n if (caption.text.length) {\n onClick();\n }\n };\n\n private _renderText = (text: string) => {\n const {activeSearchIndex, searchLength, indexMap} = this.props;\n let indexArray: string[] = [];\n if (indexMap) {\n indexArray = Object.keys(indexMap).sort((a, b) => Number(a) - Number(b));\n }\n if (text?.length === 0) {\n return null;\n }\n return (\n <span className={styles.captionSpan}>\n {indexMap\n ? indexArray.map((el: string, index: number) => {\n const preSelected = index === 0 ? text.substring(0, indexMap[el]) : '';\n const selected = text.substring(indexMap[el], indexMap[el] + searchLength);\n const postSelected = text.substring(\n indexMap[el] + searchLength,\n index - 1 === indexArray.length ? text.length : indexMap[indexArray[index + 1]]\n );\n return (\n <span>\n {preSelected}\n <span className={Number(el) === activeSearchIndex ? styles.activeSearch : styles.highlightSearch}>{selected}</span>\n {postSelected}\n </span>\n );\n })\n : text}\n </span>\n );\n };\n\n render() {\n const {caption, highlighted, showTime, longerThanHour} = this.props;\n const {startTime, id} = caption;\n const isHighlighted = Object.keys(highlighted)[0] === id;\n const time = showTime ? secondsToTime(startTime, longerThanHour) : '';\n\n const captionA11yProps: Record<string, any> = {\n ariaCurrent: isHighlighted,\n tabIndex: 0,\n ariaLabel: `${time}${showTime ? ' ' : ''}${caption.text}`,\n role: 'button'\n };\n\n return (\n <A11yWrapper onClick={this._handleClick}>\n <div\n className={styles.caption}\n ref={node => {\n this._hotspotRef = node;\n }}\n {...captionA11yProps}>\n {showTime && (\n <div className={styles.captionTime} aria-hidden=\"true\">\n {time}\n </div>\n )}\n <div\n aria-hidden=\"true\"\n className={`${styles.captionContent} ${isHighlighted ? styles.highlighted : ''} ${showTime ? '' : styles.withoutTime}`}>\n {this._renderText(caption.text)}\n </div>\n </div>\n </A11yWrapper>\n );\n }\n}\n","export * from './caption';\n","export namespace icons {\n export const PLUGIN_ICON =\n 'M23.1111111,19 C23.6020309,19 24,19.4477153 24,20 C24,20.5522847 23.6020309,21 23.1111111,21 L8.88888889,21 C8.39796911,21 8,20.5522847 8,20 C8,19.4477153 8.39796911,19 8.88888889,19 L23.1111111,19 Z M24.8695652,3 C26.5984566,3 28,4.24720677 28,5.78571429 L28,26.2142857 C28,27.7527932 26.5984566,29 24.8695652,29 L7.13043478,29 C5.40154339,29 4,27.7527932 4,26.2142857 L4,5.78571429 C4,4.24720677 5.40154339,3 7.13043478,3 L24.8695652,3 Z M26,17 L6,17 L6,26.0833333 C6,26.5895944 6.47127921,27 7.05263158,27 L24.9473684,27 C25.5287208,27 26,26.5895944 26,26.0833333 L26,17 Z M8.88888889,23 L23.1111111,23 C23.6020309,23 24,23.4477153 24,24 C24,24.5128358 23.6568532,24.9355072 23.2147743,24.9932723 L23.1111111,25 L8.88888889,25 C8.39796911,25 8,24.5522847 8,24 C8,23.4871642 8.34314684,23.0644928 8.78522567,23.0067277 L8.88888889,23 L23.1111111,23 L8.88888889,23 Z M24.9473684,5 L7.05263158,5 C6.47127921,5 6,5.41040565 6,5.91666667 L6,15 L26,15 L26,5.91666667 C26,5.41040565 25.5287208,5 24.9473684,5 Z';\n export const BigSize = 32;\n export const MediumSize = 24;\n export const SmallSize = 16;\n}\n","import {h} from 'preact';\nimport * as styles from './plugin-button.scss';\nimport {ui} from '@playkit-js/kaltura-player-js';\nimport {icons} from '../icons';\nimport {A11yWrapper, OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\n\nconst {Tooltip, Icon} = KalturaPlayer.ui.components;\n\ninterface PluginButtonProps {\n isActive: boolean;\n setRef?: (ref: HTMLButtonElement | null) => void;\n id: string;\n icon: string;\n label?: string;\n dataTestId?: string;\n}\n\nexport const PluginButton = ({isActive, label, id, icon, dataTestId, setRef}: PluginButtonProps) => {\n return (\n <Tooltip label={label} type=\"bottom\">\n <button\n ref={node => {\n if (setRef) {\n setRef(node);\n }\n }}\n type=\"button\"\n aria-label={label}\n className={[ui.style.upperBarIcon, styles.pluginButton, isActive ? styles.active : ''].join(' ')}\n data-testid={dataTestId}>\n <Icon id={id} height={icons.BigSize} width={icons.BigSize} viewBox={`0 0 ${icons.BigSize} ${icons.BigSize}`} path={icon} hidden=\"true\"/>\n </button>\n </Tooltip>\n );\n};\n\nPluginButton.defaultProps = {\n dataTestId: 'transcript_pluginButton'\n};\n","import {PopoverMenu, PopoverMenuItemData} from './popover-menu';\nexport {PopoverMenu, PopoverMenuItemData};\n","import {A11yWrapper} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {h, Component, VNode} from 'preact';\n\nconst {Tooltip} = KalturaPlayer.ui.components;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\nconst {withEventManager} = KalturaPlayer.ui.Event;\nconst {TAB} = KalturaPlayer.ui.utils.KeyMap;\n\nimport * as styles from './popover-menu.scss';\n\ninterface PopoverMenuItemData {\n testId: string;\n label: string;\n onClick: () => void;\n isDisabled?: boolean;\n}\n\ninterface PopoverMenuProps {\n moreOptionsLabel?: string;\n eventManager?: any;\n children?: VNode;\n items: Array<PopoverMenuItemData>;\n}\n\ninterface PopoverMenuState {\n isOpen: boolean;\n}\nconst translates = {\n moreOptionsLabel: <Text id=\"transcript.more_options\">More transcript options</Text>\n};\n\n@withText(translates)\n@withEventManager\nclass PopoverMenu extends Component<PopoverMenuProps, PopoverMenuState> {\n private _controlElementRef: HTMLDivElement | null = null;\n private _popoverElementRef: HTMLDivElement | null = null;\n private _itemsRefMap: Map<number, HTMLDivElement | null> = new Map();\n\n eventManager: any;\n\n constructor(props: PopoverMenuProps) {\n super(props);\n this.state = {isOpen: false};\n\n this.props.eventManager?.listen(document, 'click', this.handleMouseEvent);\n this.props.eventManager?.listen(document, 'keydown', this.handleKeydownEvent);\n }\n\n componentWillUnmount() {\n this._itemsRefMap = new Map();\n }\n\n private handleMouseEvent = (event: MouseEvent) => {\n if (!this._controlElementRef?.contains(event.target as Node | null)) {\n this.closePopover();\n }\n };\n\n private handleKeydownEvent = (event: KeyboardEvent) => {\n const eventTarget = event.target as Node | null;\n if (\n this.state.isOpen &&\n event.keyCode === TAB &&\n !this._controlElementRef?.contains(eventTarget) &&\n !this._popoverElementRef?.contains(eventTarget)\n ) {\n this.closePopover();\n }\n };\n\n private _handleUpKeyPressed = (currentIndex: number) => () => {\n this._getItemRef(currentIndex - 1)?.focus();\n };\n\n private _handleDownKeyPressed = (currentIndex: number) => () => {\n this._getItemRef(currentIndex + 1)?.focus();\n };\n\n private closePopover() {\n this.setState({isOpen: false});\n }\n\n private togglePopover = (focusFirstItem: boolean) => {\n const isOpen = !this.state.isOpen;\n\n this.setState({isOpen}, () => {\n if (isOpen && focusFirstItem) {\n const firstNonDisabledItem = this.props.items.findIndex((item: PopoverMenuItemData) => !item.isDisabled);\n if (firstNonDisabledItem !== -1) {\n this._getItemRef(firstNonDisabledItem)?.focus();\n }\n }\n });\n };\n\n private _getItemRef = (index: number) => {\n return this._itemsRefMap.get(index);\n };\n\n private _setItemRef = (index: number, ref: HTMLDivElement | null) => {\n return this._itemsRefMap.set(index, ref);\n };\n\n render() {\n const {children, items} = this.props;\n\n const popoverMenuContent = (\n <div className={styles.popoverContainer}>\n <A11yWrapper onClick={(e) => {\n e.stopPropagation();\n this.togglePopover(true);\n }}>\n <div\n aria-label={this.props.moreOptionsLabel!}\n tabIndex={0}\n data-testid=\"popover-anchor-container\"\n className={`${styles.popoverAnchorContainer} ${this.state.isOpen ? styles.active : ''}`}\n aria-expanded={this.state.isOpen}\n aria-controls=\"popoverContent\"\n ref={node => {\n this._controlElementRef = node;\n }}>\n <div className={styles.popoverAnchor}>{children}</div>\n </div>\n </A11yWrapper>\n\n <div\n className={styles.popoverComponent}\n role=\"menu\"\n aria-expanded={this.state.isOpen}\n id=\"popoverContent\"\n ref={node => {\n this._popoverElementRef = node;\n }}>\n {this.state.isOpen\n ? items.map(({label, onClick, testId, isDisabled}, index) => {\n return (\n <A11yWrapper\n role=\"menuitem\"\n onClick={() => {\n if (!isDisabled) {\n this.closePopover();\n onClick();\n }\n }}\n onDownKeyPressed={() => {\n if (!isDisabled) {\n this._handleDownKeyPressed(index);\n }\n }}\n onUpKeyPressed={() => {\n if (!isDisabled) {\n this._handleUpKeyPressed(index);\n }\n }}>\n {\n <div\n tabIndex={isDisabled ? -1 : 0}\n role=\"menuitem\"\n className={`${styles.popoverMenuItem} ${isDisabled ? styles.popoverMenuItemDisabled : ''}`}\n data-testid={testId}\n ref={node => {\n this._setItemRef(index, node);\n }}>\n {label}\n </div>\n }\n </A11yWrapper>\n );\n })\n : null}\n </div>\n </div>\n );\n\n return this.state.isOpen ? (\n popoverMenuContent\n ) : (\n <div>\n <Tooltip label={this.props.moreOptionsLabel!}>{popoverMenuContent}</Tooltip>\n </div>\n );\n }\n}\n\nexport {PopoverMenu, PopoverMenuItemData};\n","export * from './search';\n","import {h, Component} from 'preact';\nimport {InputField} from '@playkit-js/common/dist/components/input-field';\n\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\nconst translates = ({activeSearchIndex, totalSearchResults}: SearchProps) => ({\n searchLabel: <Text id=\"transcript.search\">Search in Transcript</Text>,\n clearSearchLabel: <Text id=\"transcript.clear_search\">Clear search</Text>,\n nextMatchLabel: <Text id=\"transcript.next_search_match\">Next search result</Text>,\n prevMatchLabel: <Text id=\"transcript.prev_search_match\">Previous search result</Text>,\n searchResultsLabel: (\n <Text\n id=\"transcript.search_results\"\n fields={{\n current: totalSearchResults > 0 ? activeSearchIndex : 0,\n total: totalSearchResults\n }}>\n {`Search result ${totalSearchResults > 0 ? activeSearchIndex : 0} out of ${totalSearchResults}`}\n </Text>\n )\n});\n\nexport interface SearchProps {\n onChange(value: string): void;\n value: string;\n kitchenSinkActive: boolean;\n toggledWithEnter: boolean;\n\n onSearchIndexChange: (index: number) => void;\n activeSearchIndex: number;\n totalSearchResults: number;\n\n searchLabel?: string;\n clearSearchLabel?: string;\n nextMatchLabel?: string;\n prevMatchLabel?: string;\n searchResultsLabel?: string;\n}\n\nclass SearchComponent extends Component<SearchProps> {\n private _inputField: InputField | null = null;\n\n shouldComponentUpdate(nextProps: Readonly<SearchProps>) {\n const {value, activeSearchIndex, totalSearchResults, kitchenSinkActive} = this.props;\n if (\n value !== nextProps.value ||\n activeSearchIndex !== nextProps.activeSearchIndex ||\n totalSearchResults !== nextProps.totalSearchResults ||\n kitchenSinkActive !== nextProps.kitchenSinkActive\n ) {\n return true;\n }\n return false;\n }\n componentDidUpdate(previousProps: Readonly<SearchProps>): void {\n const {kitchenSinkActive, toggledWithEnter} = this.props;\n if (!previousProps.kitchenSinkActive && kitchenSinkActive && toggledWithEnter) {\n this._inputField?.setFocus({preventScroll: true});\n }\n }\n\n render() {\n const {value, totalSearchResults, activeSearchIndex, onChange, onSearchIndexChange} = this.props;\n return (\n <InputField\n ref={node => {\n this._inputField = node;\n }}\n value={value}\n onChange={onChange}\n placeholder={this.props.searchLabel}\n clearSearchLabel={this.props.clearSearchLabel}\n searchResults={{\n activeSearchIndex,\n totalSearchResults,\n onSearchIndexChange,\n nextMatchLabel: this.props.nextMatchLabel as string,\n prevMatchLabel: this.props.prevMatchLabel as string,\n searchResultsLabel: this.props.searchResultsLabel as string\n }}\n />\n );\n }\n}\n\nexport const Search = withText(translates)(SearchComponent);\n","export * from \"./small-screen-slate\";","import {h, Component} from 'preact';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {Button, ButtonType, ButtonSize} from '@playkit-js/common/dist/components/button';\nimport {Icon, IconSize} from '@playkit-js/common/dist/icon';\nimport {ui} from '@playkit-js/kaltura-player-js';\n// @ts-ignore\nconst {withPlayer} = ui.Components;\nconst {connect} = ui.redux;\nconst {withText, Text} = ui.preacti18n;\nimport * as styles from './small-screen-slate.scss';\n\nconst mapStateToProps = (state: any) => ({\n isMobile: state.shell.isMobile\n});\n\ninterface SmallScreenSlateProps {\n isMobile?: boolean;\n toggledWithEnter?: boolean;\n smallScreenText?: string;\n smallScreenMobileText?: string;\n hideTranscript?: string;\n player?: any;\n onClose: OnClick;\n}\n\nconst translates = {\n smallScreenText: <Text id=\"transcript.small_screen\">To see the transcript, go to full screen</Text>,\n smallScreenMobileText: <Text id=\"transcript.small_screen_mobile\">To see the transcript, rotate the phone</Text>,\n hideTranscript: <Text id=\"transcript.hide_plugin\">Hide Transcript</Text>\n};\n\n@withText(translates)\n@withPlayer\n// @ts-ignore\n@connect(mapStateToProps)\nexport class SmallScreenSlate extends Component<SmallScreenSlateProps> {\n render() {\n const {isMobile, smallScreenMobileText, smallScreenText, onClose, toggledWithEnter, player, hideTranscript} = this.props;\n return (\n <div className={styles.smallScreenWrapper} data-testid=\"transcript_smallScreenWrapper\">\n <Button\n icon={'close'}\n onClick={onClose}\n type={ButtonType.borderless}\n focusOnMount={toggledWithEnter}\n className={styles.closeButton}\n ariaLabel={hideTranscript}\n testId=\"transcript_smallScreenClose\"\n />\n <div className={styles.contentWrapper}>\n {isMobile ? (\n <Icon name={'screenRotation'} size={IconSize.large} />\n ) : (\n <Button\n icon={'expand'}\n onClick={() => player?.enterFullscreen()}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n ariaLabel={smallScreenText}\n testId=\"transcript_smallScreenFullscreen\"\n />\n )}\n <div className={styles.textContent} data-testid=\"transcript_smallScreenTextContent\">\n {isMobile ? smallScreenMobileText : smallScreenText}\n </div>\n </div>\n </div>\n );\n }\n}\n","export * from './spinner';\n","import {h, Component} from 'preact';\nimport * as styles from './spinner.scss';\n\nconst DEFAULT_LINES = 20;\n\nexport class Spinner extends Component {\n render() {\n return (\n <div className={styles.transcriptLoader}>\n {Array.apply(null, Array(DEFAULT_LINES)).map((el, index) => (\n <svg key={index} width=\"100%\" height=\"50\" viewBox=\"0 0 100% 50\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"16\" y=\"8\" width=\"90%\" height=\"12\" rx=\"4\" fill=\"white\" />\n <rect x=\"16\" y=\"30\" width=\"60%\" height=\"12\" rx=\"4\" fill=\"white\" />\n </svg>\n ))}\n </div>\n );\n }\n}\n","import {TranscriptMenu} from './transcript-menu';\nexport {TranscriptMenu};\n","import {Component, h} from 'preact';\nimport {PopoverMenu} from '../popover-menu';\nimport {PopoverMenuItemData} from '../popover-menu';\n\nimport {Button, ButtonType} from '@playkit-js/common/dist/components/button';\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\ninterface TranscriptMenuProps {\n printTranscript?: string;\n downloadTranscript?: string;\n onDownload: () => void;\n onPrint: () => void;\n downloadDisabled?: boolean;\n printDisabled?: boolean;\n isLoading?: boolean;\n}\n\ninterface TranscriptMenuState {\n items: Array<PopoverMenuItemData>;\n}\n\nconst translates = {\n printTranscript: <Text id=\"transcript.print_transcript\">Print current transcript</Text>,\n downloadTranscript: <Text id=\"transcript.download_transcript\">Download current transcript</Text>\n};\n\n@withText(translates)\nclass TranscriptMenu extends Component<TranscriptMenuProps, TranscriptMenuState> {\n constructor(props: TranscriptMenuProps) {\n super();\n\n const {downloadDisabled, onDownload, printDisabled, onPrint, printTranscript, downloadTranscript, isLoading} = props;\n const items = [];\n if (!downloadDisabled) {\n items.push({\n testId: 'download-menu-item',\n label: downloadTranscript!,\n onClick: onDownload,\n isDisabled: isLoading\n });\n }\n\n if (!printDisabled) {\n items.push({\n testId: 'print-menu-item',\n label: printTranscript!,\n onClick: onPrint,\n isDisabled: isLoading\n });\n }\n\n this.state = {items};\n }\n\n render() {\n return this.state.items.length ? (\n <PopoverMenu items={this.state.items}>\n <Button type={ButtonType.borderless} icon={'more'} tabIndex={-1} />\n </PopoverMenu>\n ) : null;\n }\n}\n\nexport {TranscriptMenu};\n","import {h} from 'preact';\n\nexport const ErrorIcon = () => (\n <svg width=\"184px\" height=\"184px\" viewBox=\"0 0 184 184\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlnsXlink=\"http://www.w3.org/1999/xlink\">\n <g id=\"IL/-Error\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <circle id=\"Oval\" fill=\"#333333\" cx=\"92\" cy=\"92\" r=\"92\"></circle>\n <path\n d=\"M86.8445942,41 C98.1281098,41 107.894768,46.3707345 112.610486,54.1896075 L112.772795,54.4651697 C121.905986,54.9935965 129.089492,60.510023 129.089492,67.2372881 C129.089492,67.4828605 129.07992,67.7268193 129.06103,67.9689809 C143.527428,69.1244669 154.803778,78.4637688 154.803778,89.8135593 C154.803778,101.945102 141.920543,111.779661 126.028268,111.779661 C122.218304,111.779661 118.581281,111.214432 115.253251,110.187831 C110.482744,111.936312 104.172429,113 97.2527575,113 C90.6076765,113 84.5245506,112.019057 79.8270144,110.392971 C76.2815407,111.290993 72.4601472,111.779661 68.4772473,111.779661 C49.8799037,111.779661 34.8037779,101.125556 34.8037779,87.9830508 C34.8037779,77.4055553 44.569383,68.439928 58.0766538,65.3432099 C58.0715743,65.1615713 58.069084,64.9793312 58.069084,64.7966102 C58.069084,51.6541053 70.9523188,41 86.8445942,41 Z\"\n id=\"Combined-Shape\"\n fill=\"#1A7080\"></path>\n <path\n d=\"M83.1492849,135.070223 C82.1325765,138.189187 86.1421275,140.443183 88.278329,137.95355 L112.039401,110.261242 C113.708897,108.315531 112.326427,105.307692 109.76264,105.307692 L102.55417,105.307692 L108.530391,92.2483573 C109.439682,90.2613598 107.987631,88 105.802461,88 L90.6745782,88 C89.4360625,88 88.3248534,88.7610908 87.8773011,89.9159147 L79.0065008,112.805338 C78.2445332,114.771451 79.6951774,116.889423 81.8037779,116.889423 L89.0757959,116.889423 L83.1492849,135.070223 Z\"\n id=\"Path-8\"\n fill=\"#333333\"\n fill-rule=\"nonzero\"></path>\n <polygon\n id=\"Path-8\"\n fill=\"#999999\"\n points=\"90.6745782 91 81.8037779 113.889423 93.2090926 113.889423 86.0015674 136 109.76264 108.307692 97.8821035 108.307692 105.802461 91\"></polygon>\n <polygon\n id=\"Path-8\"\n fill=\"#01ACCD\"\n opacity=\"0.5\"\n points=\"90.6745782 91 81.8037779 113.889423 93.2090926 113.889423 86.0015674 136 109.76264 108.307692 97.8821035 108.307692 105.802461 91\"></polygon>\n <path\n d=\"M86.9135883,41 C90.3885178,41 93.7197752,41.5049061 96.8044095,42.4302153 C80.0521708,44.2102049 67.0736479,56.714855 67.0736479,71.8761372 C67.0736479,72.1038764 67.0765763,72.331016 67.0824019,72.557529 C51.5088979,76.3414085 40.1641521,87.1546035 39.7216459,99.9991784 C36.6015945,96.4151247 34.8037779,92.202078 34.8037779,87.6945045 C34.8037779,77.1820037 44.5822685,68.2714617 58.1073807,65.1937351 C58.1024214,65.013137 58.0999284,64.8320391 58.0999284,64.6504633 C58.0999284,51.5886731 71.0002433,41 86.9135883,41 Z\"\n id=\"Combined-Shape\"\n fill=\"#222222\"\n opacity=\"0.3\"></path>\n <path\n d=\"M90.8028945,22 L90.8028945,29.0476864 C90.8028945,29.5999712 91.2506097,30.0476864 91.8028945,30.0476864 C92.3551792,30.0476864 92.8028945,29.5999712 92.8028945,29.0476864 L92.8028945,22 C92.8028945,21.4477153 92.3551792,21 91.8028945,21 C91.2506097,21 90.8028945,21.4477153 90.8028945,22 Z M126.112197,30.8515352 L121.582032,36.2503762 C121.22703,36.6734508 121.282214,37.3042064 121.705288,37.6592082 C122.128363,38.01421 122.759119,37.9590261 123.114121,37.5359514 L127.644286,32.1371104 C127.999288,31.7140357 127.944104,31.0832801 127.521029,30.7282783 C127.097955,30.3732765 126.467199,30.4284605 126.112197,30.8515352 Z M152.431974,58.6783398 L145.491357,59.9021577 C144.947463,59.9980609 144.584295,60.5167193 144.680198,61.0606136 C144.776101,61.6045079 145.294759,61.9676764 145.838654,61.8717732 L152.77927,60.6479553 C153.323164,60.552052 153.686333,60.0333936 153.59043,59.4894993 C153.494526,58.945605 152.975868,58.5824365 152.431974,58.6783398 Z M30.826519,60.6479553 L37.7671352,61.8717732 C38.3110295,61.9676764 38.8296879,61.6045079 38.9255912,61.0606136 C39.0214944,60.5167193 38.6583259,59.9980609 38.1144316,59.9021577 L31.1738154,58.6783398 C30.6299211,58.5824365 30.1112627,58.945605 30.0153594,59.4894993 C29.9194562,60.0333936 30.2826247,60.552052 30.826519,60.6479553 Z M55.9615029,32.1371104 L60.4916684,37.5359514 C60.8466702,37.9590261 61.4774258,38.01421 61.9005005,37.6592082 C62.3235751,37.3042064 62.3787591,36.6734508 62.0237573,36.2503762 L57.4935918,30.8515352 C57.13859,30.4284605 56.5078344,30.3732765 56.0847597,30.7282783 C55.6616851,31.0832801 55.6065011,31.7140357 55.9615029,32.1371104 Z\"\n id=\"Path-9\"\n fill=\"#01ACCD\"\n fill-rule=\"nonzero\"\n opacity=\"0.5\"></path>\n <g id=\"Oval-Copy-5\" opacity=\"0.3\" transform=\"translate(80.000000, 166.000000)\" fill=\"#01ACCD\">\n <path\n d=\"M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,-5.32907052e-15 3.3015873,-5.32907052e-15 C1.47817098,-5.32907052e-15 1.07647224e-12,1.4883507 1.07647224e-12,3.32432432 C1.07647224e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z\"\n id=\"Oval-Copy-3\"></path>\n </g>\n <g id=\"Path-Copy-4\" opacity=\"0.9\" transform=\"translate(100.000000, 146.000000)\" fill=\"#01ACCD\">\n <polygon id=\"Path-Copy-2\" points=\"5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0\"></polygon>\n </g>\n <g id=\"Oval-2\" opacity=\"0.5\" transform=\"translate(39.000000, 115.000000)\" fill=\"#01ACCD\">\n <path\n d=\"M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,0 3.3015873,0 C1.47817098,0 1.08002496e-12,1.4883507 1.08002496e-12,3.32432432 C1.08002496e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z\"\n id=\"Oval\"></path>\n </g>\n <g id=\"Oval-Copy-4\" opacity=\"0.8\" transform=\"translate(60.000000, 139.000000)\" fill=\"#01ACCD\">\n <path\n d=\"M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,1.42108547e-14 3.3015873,1.42108547e-14 C1.47817098,1.42108547e-14 1.08002496e-12,1.4883507 1.08002496e-12,3.32432432 C1.08002496e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z\"\n id=\"Oval-Copy\"></path>\n </g>\n <g id=\"Path-Copy-3\" opacity=\"0.3\" transform=\"translate(31.000000, 142.000000)\" fill=\"#01ACCD\">\n <polygon id=\"Path-Copy\" points=\"5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0\"></polygon>\n </g>\n <g id=\"Oval-Copy-6\" opacity=\"0.6\" transform=\"translate(139.000000, 139.000000)\" fill=\"#01ACCD\">\n <path\n d=\"M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,0 3.3015873,0 C1.47817098,0 1.08713039e-12,1.4883507 1.08713039e-12,3.32432432 C1.08713039e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z\"\n id=\"Oval-Copy-2\"></path>\n </g>\n <g id=\"Path-2\" opacity=\"0.4\" transform=\"translate(122.000000, 122.000000)\" fill=\"#01ACCD\">\n <polygon id=\"Path\" points=\"5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0\"></polygon>\n </g>\n </g>\n </svg>\n);\n","export * from './transcript';\n","import {h, Component} from 'preact';\nimport {ui} from '@playkit-js/kaltura-player-js';\nimport {debounce} from '../../utils';\nimport * as styles from './transcript.scss';\nimport {Spinner} from '../spinner';\nimport {Search} from '../search';\nimport {CaptionList} from '../caption-list';\nimport {HighlightedMap, CuePointData} from '../../types';\nimport {ErrorIcon} from './error-icon';\nimport {AutoscrollButton} from '../autoscroll-button';\nimport {TranscriptMenu} from '../transcript-menu';\nimport {SmallScreenSlate} from '../small-screen-slate';\nimport {Button, ButtonType, ButtonSize} from '@playkit-js/common/dist/components/button';\nimport {OnClickEvent, OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {TranscriptEvents} from '../../events/events';\n\nconst {ENTER, SPACE, TAB} = ui.utils.KeyMap;\nconst {withText, Text} = ui.preacti18n;\n\nconst {SidePanelModes} = ui;\nconst {PLAYER_BREAK_POINTS} = ui.Components;\nconst {connect} = ui.redux;\n\nconst SEARCH_EVENT_DISPATCH_TIMEOUT = 2000;\n\nconst translates = {\n skipTranscript: <Text id=\"transcript.skip_transcript\">Skip transcript</Text>,\n errorTitle: <Text id=\"transcript.whoops\">Whoops!</Text>,\n errorDescripton: <Text id=\"transcript.load_failed\">Failed to load transcript</Text>\n};\n\nexport interface TranscriptProps {\n onSeek(time: number): void;\n onClose: OnClick;\n onRetryLoad: () => void;\n isLoading: boolean;\n hasError: boolean;\n captions: Array<CuePointData>;\n showTime: boolean;\n currentTime: number;\n scrollOffset: number;\n searchDebounceTimeout: number;\n searchNextPrevDebounceTimeout: number;\n videoDuration: number;\n kitchenSinkActive: boolean;\n toggledWithEnter: boolean;\n highlightedMap: HighlightedMap;\n onItemClicked: (n: number) => void;\n skipTranscript?: string;\n errorTitle?: string;\n errorDescripton?: string;\n downloadDisabled: boolean;\n onDownload: () => void;\n printDisabled: boolean;\n onPrint: () => void;\n smallScreen?: boolean;\n expandMode?: string;\n dispatcher: (name: string, payload?: any) => void;\n}\n\ninterface TranscriptState {\n isAutoScrollEnabled: boolean;\n search: string;\n activeSearchIndex: number;\n searchMap: Record<string, Record<string, number>>;\n totalSearchResults: number;\n searchLength: number;\n widgetWidth: number;\n}\n\nconst initialSearch = {\n search: '',\n activeSearchIndex: 1,\n searchMap: {},\n totalSearchResults: 0,\n searchLength: 0\n};\n\nconst SEARCHBAR_HEIGHT = 38; // height of search bar with margins\nconst smallScreen = PLAYER_BREAK_POINTS?.SMALL || 480;\n\nconst mapStateToProps = (state: any, ownProps: Pick<TranscriptProps, 'expandMode'>) => ({\n smallScreen: ownProps.expandMode === SidePanelModes.ALONGSIDE && state.shell.playerClientRect?.width < smallScreen\n});\n\n// @ts-ignore\n@connect(mapStateToProps)\n@withText(translates)\nexport class Transcript extends Component<TranscriptProps, TranscriptState> {\n private _transcriptListRef: HTMLElement | null = null;\n private _captionListRef: any = null;\n private _skipTranscriptButtonRef: HTMLDivElement | null = null;\n private _autoscrollButtonRef: HTMLDivElement | null = null;\n private _preventScrollEvent: boolean = false;\n private _scrollToSearchMatchEnabled: boolean = false;\n private _widgetRootRef: HTMLElement | null = null;\n\n private _widgetHeight: number = 0;\n private _topAutoscrollEdge: number = 0;\n private _bottomAutoscrollEdge: number = 0;\n private _thirdOfWidgetHeight: number = 0;\n\n state: TranscriptState = {\n isAutoScrollEnabled: true,\n widgetWidth: 0,\n ...initialSearch\n };\n\n componentDidUpdate(previousProps: Readonly<TranscriptProps>, previousState: Readonly<TranscriptState>): void {\n const {captions} = this.props;\n const {search} = this.state;\n if (previousProps.captions !== captions) {\n this.setState({search: '', isAutoScrollEnabled: true});\n }\n\n if (previousState.search !== search) {\n this._debounced.findSearchMatches();\n }\n\n this._setWidgetSize();\n }\n\n private _enableAutoScroll = (event: OnClickEvent, byKeyboard?: boolean) => {\n event.preventDefault();\n if (this.state.isAutoScrollEnabled) {\n return;\n }\n this._preventScrollEvent = true;\n this.setState({\n isAutoScrollEnabled: true\n });\n if (byKeyboard) {\n this._skipTranscriptButtonRef?.focus();\n }\n };\n\n private _renderScrollToButton = () => {\n const {isAutoScrollEnabled} = this.state;\n return (\n <AutoscrollButton\n setAutoscrollButtonRef={(node: HTMLDivElement) => {\n this._autoscrollButtonRef = node;\n }}\n isAutoScrollEnabled={isAutoScrollEnabled}\n onClick={this._enableAutoScroll}\n />\n );\n };\n\n private _onSearch = (search: string) => {\n this.setState({search});\n };\n\n private _findSearchMatches = () => {\n this.setState((state: TranscriptState) => {\n if (!state.search) {\n return {...initialSearch};\n }\n let index = 0;\n const loSearch = state.search.toLowerCase();\n const searchMap: Record<string, Record<string, number>> = {};\n this.props.captions.forEach((caption: CuePointData) => {\n const text = caption?.text?.toLowerCase() || '';\n const regex = new RegExp(loSearch, 'gi');\n let result;\n const indices = [];\n while ((result = regex.exec(text))) {\n indices.push(result.index);\n }\n indices.forEach((i: number) => {\n index++;\n searchMap[caption.id] = {...searchMap[caption.id], [index]: i};\n });\n });\n this._debounced.searchEventDispatcher(state);\n return {\n searchMap,\n totalSearchResults: index,\n activeSearchIndex: 1,\n searchLength: loSearch.length\n };\n });\n };\n\n private _dispatchSearchEvent = (state: TranscriptState) => {\n this.props.dispatcher(TranscriptEvents.TRANSCRIPT_SEARCH, {search: this.state.search});\n }\n\n private _setActiveSearchIndex = (index: number) => {\n this._scrollToSearchMatchEnabled = true;\n this.setState({\n activeSearchIndex: index,\n isAutoScrollEnabled: false\n });\n this.props.dispatcher(TranscriptEvents.TRANSCRIPT_NAVIGATE_RESULT, {index});\n };\n\n private _getHeaderStyles = (): string => {\n const {widgetWidth} = this.state;\n if (widgetWidth >= 692) {\n return '';\n }\n if (widgetWidth >= 649) {\n return styles.mediumWidth;\n }\n return styles.smallWidth;\n };\n\n private _renderHeader = () => {\n const {toggledWithEnter, kitchenSinkActive, downloadDisabled, onDownload, printDisabled, onPrint, isLoading} = this.props;\n const {search, activeSearchIndex, totalSearchResults} = this.state;\n return (\n <div className={[styles.header, this._getHeaderStyles()].join(' ')} data-testid=\"transcript_header\">\n <Search\n onChange={this._onSearch}\n onSearchIndexChange={this._debounced.onActiveSearchIndexChange}\n value={search}\n activeSearchIndex={activeSearchIndex}\n totalSearchResults={totalSearchResults}\n toggledWithEnter={toggledWithEnter}\n kitchenSinkActive={kitchenSinkActive}\n />\n <TranscriptMenu {...{downloadDisabled, onDownload, printDisabled, onPrint, isLoading}} />\n <div data-testid=\"transcriptCloseButton\">\n <Button\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n disabled={false}\n onClick={this.props.onClose}\n ariaLabel={'Hide Transcript'}\n tooltip={{label: 'Hide Transcript'}}\n icon={'close'}></Button>\n </div>\n </div>\n );\n };\n\n private _handleClick = (event: MouseEvent | KeyboardEvent) => {\n event.preventDefault();\n this._autoscrollButtonRef?.focus();\n };\n\n private _handleKeyDown = (event: KeyboardEvent) => {\n if (event.keyCode === TAB && !event.shiftKey) {\n this.setState({\n isAutoScrollEnabled: false\n });\n const captionRef = this._captionListRef?._currentCaptionRef?._hotspotRef;\n if (captionRef) {\n event.preventDefault();\n captionRef.focus();\n }\n } else if (event.keyCode === ENTER || event.keyCode === SPACE) {\n this._handleClick(event);\n }\n };\n\n private _renderSkipTranscriptButton = () => {\n return (\n <div\n role=\"button\"\n ref={node => {\n this._skipTranscriptButtonRef = node;\n }}\n data-testid=\"transcript_skipButton\"\n className={styles.skipTranscriptButton}\n onKeyDown={this._handleKeyDown}\n onClick={this._handleClick}\n tabIndex={0}>\n {this.props.skipTranscript}\n </div>\n );\n };\n\n private _renderTranscript = () => {\n const {captions, hasError, onRetryLoad, showTime, videoDuration, highlightedMap} = this.props;\n const {isAutoScrollEnabled, searchMap, activeSearchIndex, searchLength} = this.state;\n\n if (hasError) {\n return (\n <div className={styles.errorWrapper}>\n <div className={styles.errorIcon}>\n <ErrorIcon />\n </div>\n <p className={styles.errorMainText}>{this.props.errorTitle}</p>\n <p className={styles.errorDescriptionText}>{this.props.errorDescripton}</p>\n </div>\n );\n }\n\n if (!captions || !captions.length) {\n return null;\n }\n\n const captionProps = {\n showTime,\n searchLength,\n scrollTo: this._scrollTo,\n scrollToSearchMatch: this._scrollToSearchMatch,\n videoDuration\n };\n\n return (\n <CaptionList\n ref={node => {\n this._captionListRef = node;\n }}\n highlightedMap={highlightedMap}\n data={captions}\n onSeek={this._handleSeek}\n isAutoScrollEnabled={isAutoScrollEnabled}\n searchMap={searchMap}\n activeSearchIndex={activeSearchIndex}\n captionProps={captionProps}\n onScroll={this._onScroll}\n widgetWidth={this.state.widgetWidth}\n showItemsIcons={true}\n searchActive={false}\n />\n );\n };\n\n private _setWidgetSize = () => {\n if (this._widgetRootRef) {\n const {width, height, top} = this._widgetRootRef.getBoundingClientRect();\n if (this.state.widgetWidth !== width) {\n this.setState({\n widgetWidth: width\n });\n }\n if (this._widgetHeight !== height) {\n this._widgetHeight = height;\n this._thirdOfWidgetHeight = height / 3;\n this._topAutoscrollEdge = Math.floor(this._thirdOfWidgetHeight + SEARCHBAR_HEIGHT);\n this._bottomAutoscrollEdge = Math.ceil(this._thirdOfWidgetHeight * 2 + SEARCHBAR_HEIGHT);\n }\n }\n };\n\n private _renderLoading = () => {\n return <Spinner />;\n };\n\n private _scrollTo = (el: HTMLElement) => {\n if (this._transcriptListRef) {\n this._preventScrollEvent = true;\n const {top} = el.getBoundingClientRect();\n if (top >= this._topAutoscrollEdge || top <= this._bottomAutoscrollEdge) {\n this._transcriptListRef.scrollTop = el.offsetTop - (this._thirdOfWidgetHeight - SEARCHBAR_HEIGHT);\n }\n }\n };\n\n private _scrollToSearchMatch = (el: HTMLElement) => {\n if (this._transcriptListRef && this._scrollToSearchMatchEnabled) {\n this._scrollToSearchMatchEnabled = false;\n this._preventScrollEvent = true;\n this._transcriptListRef.scrollTop = el.offsetTop - SEARCHBAR_HEIGHT;\n }\n };\n\n private _onScroll = () => {\n if (this._preventScrollEvent) {\n this._preventScrollEvent = false;\n return;\n }\n this.setState({\n isAutoScrollEnabled: false\n });\n };\n\n private _handleSeek = (caption: CuePointData) => {\n const {onSeek} = this.props;\n const selection = window.getSelection();\n if (selection && selection.type !== 'Range') {\n onSeek(caption.startTime);\n }\n };\n\n private _debounced = {\n findSearchMatches: debounce(this._findSearchMatches, this.props.searchDebounceTimeout),\n onActiveSearchIndexChange: debounce(this._setActiveSearchIndex, this.props.searchNextPrevDebounceTimeout),\n searchEventDispatcher: debounce(this._dispatchSearchEvent, SEARCH_EVENT_DISPATCH_TIMEOUT)\n };\n\n render(props: TranscriptProps) {\n const {isLoading, kitchenSinkActive, hasError, smallScreen, toggledWithEnter} = props;\n const renderTranscriptButtons = !(isLoading || hasError);\n return (\n <div\n className={`${styles.root} ${kitchenSinkActive ? '' : styles.hidden}`}\n ref={node => {\n this._widgetRootRef = node;\n }}\n data-testid=\"transcript_root\">\n {smallScreen ? (\n <SmallScreenSlate onClose={this.props.onClose} toggledWithEnter={toggledWithEnter} />\n ) : (\n <div className={styles.globalContainer}>\n {this._renderHeader()}\n\n {renderTranscriptButtons && this._renderSkipTranscriptButton()}\n <div\n className={styles.body}\n onScroll={this._onScroll}\n ref={node => {\n this._transcriptListRef = node;\n }}\n data-testid=\"transcript_list\">\n {isLoading ? this._renderLoading() : this._renderTranscript()}\n </div>\n {renderTranscriptButtons && this._renderScrollToButton()}\n </div>\n )}\n </div>\n );\n }\n}\n","\nexport const TranscriptEvents = {\n TRANSCRIPT_OPEN: 'transcript_open',\n TRANSCRIPT_CLOSE: 'transcript_close',\n TRANSCRIPT_DOWNLOAD: 'transcript_download',\n TRANSCRIPT_PRINT: 'transcript_print',\n TRANSCRIPT_SEARCH: 'transcript_search',\n TRANSCRIPT_NAVIGATE_RESULT: 'transcript_navigate_result',\n};\n","import * as sanitizeHtml from 'sanitize-html';\nimport {h} from 'preact';\nimport {OnClickEvent} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {ui} from '@playkit-js/kaltura-player-js';\nimport {UpperBarManager, SidePanelsManager} from '@playkit-js/ui-managers';\nimport {ObjectUtils, downloadContent, printContent, decodeString} from './utils';\nimport {icons} from './components/icons';\nimport {PluginButton} from './components/plugin-button/plugin-button';\nimport {Transcript} from './components/transcript';\nimport {getConfigValue, isBoolean, makePlainText, prepareCuePoint} from './utils';\nimport {TranscriptConfig, PluginStates, HighlightedMap, CuePointData, ItemTypes, CuePoint} from './types';\nimport {TranscriptEvents} from './events/events';\n\nexport const pluginName: string = 'playkit-js-transcript';\n\nconst {SidePanelModes, SidePanelPositions, ReservedPresetNames, ReservedPresetAreas} = ui;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\nconst {get} = ObjectUtils;\n\nconst LOADING_TIMEOUT = 10000;\n\ninterface TimedMetadataEvent {\n payload: {\n cues: Array<CuePoint>;\n };\n}\n\nexport class TranscriptPlugin extends KalturaPlayer.core.BasePlugin {\n static defaultConfig: TranscriptConfig = {\n expandMode: SidePanelModes.ALONGSIDE,\n expandOnFirstPlay: true,\n showTime: true,\n position: SidePanelPositions.RIGHT,\n scrollOffset: 0,\n searchDebounceTimeout: 250,\n searchNextPrevDebounceTimeout: 100,\n downloadDisabled: false,\n printDisabled: false\n };\n private _activeCaptionMapId: string = '';\n private _activeCuePointsMap: HighlightedMap = {};\n private _captionMap: Map<string, Array<CuePointData>> = new Map();\n private _isLoading = false;\n private _loadingTimeoutId?: ReturnType<typeof setTimeout>;\n private _hasError = false;\n private _triggeredByKeyboard = false;\n\n private _transcriptPanel = -1;\n private _transcriptIcon = -1;\n private _pluginState: PluginStates | null = null;\n private _pluginButtonRef: HTMLButtonElement | null = null;\n\n constructor(name: string, player: KalturaPlayerTypes.Player, config: TranscriptConfig) {\n super(name, player, config);\n }\n\n get sidePanelsManager() {\n return this.player.getService('sidePanelsManager') as SidePanelsManager | undefined;\n }\n\n get upperBarManager() {\n return this.player.getService('upperBarManager') as UpperBarManager | undefined;\n }\n\n get cuePointManager() {\n return this.player.getService('kalturaCuepoints') as any;\n }\n\n private get _data() {\n return this._captionMap.get(this._activeCaptionMapId) || [];\n }\n\n loadMedia(): void {\n if (!this.cuePointManager || !this.sidePanelsManager || !this.upperBarManager) {\n this.logger.warn(\"kalturaCuepoints, sidePanelsManager or upperBarManager haven't registered\");\n return;\n }\n if (this.player.isLive()) {\n // transcript plugin is not supported for live entries\n return;\n }\n this._initListeners();\n this.cuePointManager.registerTypes([this.cuePointManager.CuepointType.CAPTION]);\n }\n\n private _initListeners(): void {\n this.eventManager.listenOnce(this.player, this.player.Event.TRACKS_CHANGED, () => {\n if (this._getTextTracks().length) {\n this.eventManager.listen(this.player, this.player.Event.TIMED_METADATA_CHANGE, this._onTimedMetadataChange);\n this.eventManager.listen(this.player, this.player.Event.TIMED_METADATA_ADDED, this._onTimedMetadataAdded);\n this.eventManager.listen(this.player, this.player.Event.TEXT_TRACK_CHANGED, this._handleLanguageChange);\n }\n });\n }\n\n private _initLoading = () => {\n clearTimeout(this._loadingTimeoutId);\n this._isLoading = false;\n this._hasError = false;\n if (!this._captionMap.has(this._activeCaptionMapId)) {\n // turn on loading animation till captions added to TextTrack\n this._isLoading = true;\n this._loadingTimeoutId = setTimeout(() => {\n // display error slate\n this._isLoading = false;\n this._hasError = true;\n this._updateTranscriptPanel();\n }, LOADING_TIMEOUT);\n }\n this._updateTranscriptPanel();\n };\n\n private _handleLanguageChange = () => {\n this._activeCaptionMapId = this._getCaptionMapId();\n this._initLoading();\n };\n\n private _updateTranscriptPanel() {\n if (this._transcriptPanel) {\n this.sidePanelsManager?.update(this._transcriptPanel);\n }\n }\n\n private _onTimedMetadataAdded = ({payload}: TimedMetadataEvent) => {\n const captionData: CuePointData[] = [];\n payload.cues.forEach((cue: CuePoint) => {\n if (cue.metadata.cuePointType === ItemTypes.Caption) {\n captionData.push(prepareCuePoint(cue));\n }\n });\n if (captionData.length) {\n // take metadata from the first caption, as all captions in captionData have the same language and label\n const captionMetadata = payload.cues[0].metadata;\n const captionKey = this._makeCaptionKey(captionMetadata.language, captionMetadata.label);\n this._addCaptionData(captionData, captionKey);\n this._addTranscriptItem();\n }\n };\n\n private _onTimedMetadataChange = ({payload}: TimedMetadataEvent) => {\n const transcriptCuePoints: Array<CuePoint> = payload.cues\n .filter((cue: CuePoint) => {\n return cue.metadata.cuePointType === ItemTypes.Caption;\n })\n .filter((cue, index, array) => {\n // filter out captions that has endTime eq to next caption startTime\n const nextCue = array[index + 1];\n return !nextCue || cue.endTime !== nextCue.startTime;\n });\n this._activeCuePointsMap = {};\n transcriptCuePoints.forEach(cue => {\n this._activeCuePointsMap[cue.id] = true;\n });\n this._updateTranscriptPanel();\n };\n\n private _addCaptionData = (newData: CuePointData[], captionKey: string) => {\n this._activeCaptionMapId = this._getCaptionMapId();\n const oldData = this._captionMap.get(captionKey);\n const newSanitizedData = this._sanitizeCaptions(newData);\n // set the captions data according to the captionKey param\n this._captionMap.set(captionKey, oldData ? [...oldData, ...newSanitizedData] : newSanitizedData);\n this._isLoading = false;\n clearTimeout(this._loadingTimeoutId);\n this._updateTranscriptPanel();\n };\n\n private _getTextTracks = () => {\n return this.player.getTracks(this.player.Track.TEXT) || [];\n };\n\n private _getCaptionMapId = (): string => {\n const allTextTracks = this._getTextTracks();\n const activeTextTrack = allTextTracks.find(track => track.active);\n if (activeTextTrack?.language === 'off') {\n // use 1st captions from text-track list\n return this._makeCaptionKey(allTextTracks[0]?.language, allTextTracks[0]?.label);\n }\n return this._makeCaptionKey(activeTextTrack?.language, activeTextTrack?.label);\n };\n\n private _makeCaptionKey = (language?: string, label?: string): string => {\n return `${language}-${label}`;\n };\n\n private _activatePlugin = (isFirstOpen = false) => {\n this.ready.then(() => {\n this.sidePanelsManager?.activateItem(this._transcriptPanel);\n this._pluginState = PluginStates.OPENED;\n this.upperBarManager?.update(this._transcriptIcon);\n this.dispatchEvent(TranscriptEvents.TRANSCRIPT_OPEN, {auto: isFirstOpen});\n });\n };\n\n private _deactivatePlugin = () => {\n this.ready.then(() => {\n this.sidePanelsManager?.deactivateItem(this._transcriptPanel);\n this.upperBarManager?.update(this._transcriptIcon);\n this.dispatchEvent(TranscriptEvents.TRANSCRIPT_CLOSE);\n });\n };\n\n private _isPluginActive = () => {\n return this.sidePanelsManager!.isItemActive(this._transcriptPanel);\n };\n\n private _handleClickOnPluginIcon = (e: OnClickEvent, byKeyboard?: boolean) => {\n if (this._isPluginActive()) {\n this._triggeredByKeyboard = false;\n this._deactivatePlugin();\n this._pluginState = PluginStates.CLOSED;\n } else {\n this._triggeredByKeyboard = Boolean(byKeyboard);\n this._activatePlugin();\n }\n };\n\n private _sanitizeCaptions = (data: CuePointData[]) => {\n return data.map(caption => ({\n ...caption,\n text: decodeString(\n sanitizeHtml(caption.text || '', {\n allowedAttributes: {},\n allowedTags: []\n })\n )\n }));\n };\n\n private _addTranscriptItem(): void {\n if (Math.max(this._transcriptPanel, this._transcriptIcon) > 0) {\n // transcript panel or icon already exist\n return;\n }\n\n const {\n expandMode,\n position,\n expandOnFirstPlay,\n showTime,\n scrollOffset,\n searchDebounceTimeout,\n searchNextPrevDebounceTimeout,\n downloadDisabled,\n printDisabled\n } = this.config;\n this._transcriptPanel = this.sidePanelsManager!.add({\n label: 'Transcript',\n panelComponent: () => {\n return (\n <Transcript\n showTime={getConfigValue(showTime, isBoolean, true)}\n scrollOffset={getConfigValue(scrollOffset, Number.isInteger, 0)}\n searchDebounceTimeout={getConfigValue(searchDebounceTimeout, Number.isInteger, 250)}\n searchNextPrevDebounceTimeout={getConfigValue(searchNextPrevDebounceTimeout, Number.isInteger, 100)}\n highlightedMap={this._activeCuePointsMap}\n onSeek={this._seekTo}\n onItemClicked={this._seekTo}\n expandMode={this.config.expandMode}\n captions={this._data}\n isLoading={this._isLoading}\n hasError={this._hasError}\n onRetryLoad={this._updateTranscriptPanel}\n currentTime={this.player.currentTime}\n videoDuration={this.player.duration}\n kitchenSinkActive={this._isPluginActive()}\n toggledWithEnter={this._triggeredByKeyboard}\n onClose={this._handleClose}\n downloadDisabled={getConfigValue(downloadDisabled, isBoolean, false)}\n onDownload={this._handleDownload}\n printDisabled={getConfigValue(printDisabled, isBoolean, false)}\n onPrint={this._handlePrint}\n dispatcher={(eventType, payload) => this.dispatchEvent(eventType, payload)}\n /> as any\n );\n },\n presets: [ReservedPresetNames.Playback, ReservedPresetNames.Live, ReservedPresetNames.Ads],\n position: position,\n expandMode: expandMode === SidePanelModes.ALONGSIDE ? SidePanelModes.ALONGSIDE : SidePanelModes.OVER,\n onDeactivate: this._deactivatePlugin\n }) as number;\n const translates = {\n showTranscript: <Text id=\"transcript.show_plugin\">Show Transcript</Text>,\n hideTranscript: <Text id=\"transcript.hide_plugin\">Hide Transcript</Text>\n };\n this._transcriptIcon = this.upperBarManager!.add({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n displayName: 'Transcript',\n ariaLabel: 'Transcript',\n order: 30,\n svgIcon: {path: icons.PLUGIN_ICON, viewBox: `0 0 ${icons.BigSize} ${icons.BigSize}`},\n onClick: this._handleClickOnPluginIcon as () => void,\n component: withText(translates)((props: {showTranscript: string; hideTranscript: string}) => {\n const isActive = this._isPluginActive();\n const label = isActive ? props.hideTranscript : props.showTranscript;\n return (\n <PluginButton\n isActive={isActive}\n id={pluginName}\n label={label}\n icon={icons.PLUGIN_ICON}\n dataTestId=\"transcript_pluginButton\"\n setRef={this._setPluginButtonRef}\n />\n );\n })\n }) as number;\n\n if ((expandOnFirstPlay && !this._pluginState) || this._pluginState === PluginStates.OPENED) {\n this._activatePlugin(true);\n }\n }\n\n private _setPluginButtonRef = (ref: HTMLButtonElement | null) => {\n this._pluginButtonRef = ref;\n };\n\n private _seekTo = (time: number) => {\n this.player.currentTime = time;\n };\n\n private _handleDownload = () => {\n const {config} = this.player;\n const captions = this._sanitizeCaptions(this._captionMap.get(this._activeCaptionMapId) || []);\n\n if (captions) {\n const entryMetadata = get(config, 'sources.metadata', {});\n const language = this._getCaptionMapId();\n\n downloadContent(makePlainText(captions), `${language}${entryMetadata.name ? `-${entryMetadata.name}` : ''}.txt`);\n }\n this.dispatchEvent(TranscriptEvents.TRANSCRIPT_DOWNLOAD, {videoPosition: this.player.currentTime});\n };\n\n private _handlePrint = () => {\n const captions = this._sanitizeCaptions(this._captionMap.get(this._activeCaptionMapId) || []);\n if (captions) {\n printContent(makePlainText(captions));\n }\n this.dispatchEvent(TranscriptEvents.TRANSCRIPT_PRINT, {videoPosition: this.player.currentTime});\n };\n\n private _handleClose = (e: OnClickEvent, byKeyboard: boolean) => {\n if (byKeyboard) {\n this._pluginButtonRef?.focus();\n }\n this._deactivatePlugin();\n this._pluginState = PluginStates.CLOSED;\n };\n\n static isValid(): boolean {\n return true;\n }\n\n reset(): void {\n this.eventManager.removeAll();\n if (Math.max(this._transcriptPanel, this._transcriptIcon) > 0) {\n this.sidePanelsManager?.remove(this._transcriptPanel);\n this.upperBarManager!.remove(this._transcriptIcon);\n this._transcriptPanel = -1;\n this._transcriptIcon = -1;\n this._pluginButtonRef = null;\n }\n this._captionMap = new Map();\n this._activeCaptionMapId = '';\n this._isLoading = false;\n clearTimeout(this._loadingTimeoutId);\n this._hasError = false;\n this._triggeredByKeyboard = false;\n }\n\n destroy(): void {\n this.reset();\n }\n}\n","export * from './types-ui';\nexport * from './transcript-config';\nexport * from './transcript-item-data';\n","export type HighlightedMap = Record<string, boolean>;\n\nexport interface RawItemData {\n content?: Array<{text: string}>;\n cuePointType?: string;\n label?: string;\n language?: string;\n text?: string;\n}\n\nexport interface CuePointData {\n id: string;\n startTime: number;\n displayTime?: number;\n text: string;\n}\n\nexport enum ItemTypes {\n Caption = 'kalturaCaption'\n}\n\nexport interface CuePoint {\n startTime: number;\n endTime?: number;\n id: string;\n type: string;\n metadata: RawItemData;\n text?: string;\n}\n","export enum PluginStates {\n OPENED = 'opened',\n CLOSED = 'closed'\n}\n","type Procedure = (...args: any[]) => void;\n\ntype Options = {\n isImmediate: boolean;\n};\n\nexport function debounce<F extends Procedure>(\n func: F,\n waitMilliseconds = 50,\n options: Options = {\n isImmediate: false\n }\n): F {\n let timeoutId: any;\n\n return function (this: any, ...args: any[]) {\n const doLater = () => {\n timeoutId = undefined;\n if (!options.isImmediate) {\n func.apply(this, args);\n }\n };\n\n const shouldCallNow = options.isImmediate && timeoutId === undefined;\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n\n timeoutId = setTimeout(doLater, waitMilliseconds);\n\n if (shouldCallNow) {\n func.apply(this, args);\n }\n } as any;\n}\n","export * from './utils';\nexport * from './object-utils';\nexport * from './debounce';\n","export class ObjectUtils {\n public static get(obj: Record<string, any>, path: string, defaultValue: any): any {\n function stringToPath(path: string) {\n const output: any = [];\n // Split to an array with dot notation\n path.split('.').forEach(item => {\n // Split to an array with bracket notation\n item.split(/\\[([^}]+)\\]/g).forEach(key => {\n // Push to the new array\n if (key.length > 0) {\n output.push(key);\n }\n });\n });\n return output;\n }\n\n // Get the path as an array\n const pathArray = stringToPath(path);\n\n let current = obj;\n\n // For each item in the path, dig into the object\n for (let i = 0; i < pathArray.length; i++) {\n // If the item isn't found, return the default (or null)\n if (!current[pathArray[i]]) return defaultValue;\n\n // Otherwise, update the current value\n current = current[pathArray[i]];\n }\n\n return current;\n }\n}\n","export const HOUR = 3600; // seconds in 1 hour\n\nexport const toSeconds = (val: any, vtt = false): number => {\n const regex = vtt ? /(\\d+):(\\d{2}):(\\d{2}).(\\d{2,3}|\\d{2})/ : /(\\d+):(\\d{2}):(\\d{2}),((\\d{2,3}|\\d{2}|\\d{1}))?/;\n const parts: any | null[] = regex.exec(val);\n if (parts === null) {\n return 0;\n }\n\n for (var i = 1; i < 5; i++) {\n parts[i] = parseInt(parts[i], 10);\n if (isNaN(parts[i])) {\n parts[i] = 0;\n }\n }\n // hours + minutes + seconds + ms\n return parts[1] * HOUR + parts[2] * 60 + parts[3] + parts[4] / 1000;\n};\n\nconst pad = (number: number) => {\n if (number < 10) {\n return `0${number}`;\n }\n return number;\n};\n\nconst makeHoursString = (seconds: number): string => {\n const hours = Math.floor(seconds / HOUR);\n if (hours >= 1) {\n return `${hours}:`;\n }\n return '';\n};\n\nexport const secondsToTime = (seconds: number, longerThanHour: boolean): string => {\n const date = new Date(0);\n date.setSeconds(seconds);\n return `${longerThanHour ? makeHoursString(seconds) : ''}${pad(date.getUTCMinutes())}:${pad(date.getUTCSeconds())}`;\n};\n\nexport function getConfigValue(value: any, condition: (value: any) => boolean, defaultValue: any) {\n let result = defaultValue;\n if (typeof condition === 'function' && condition(value)) {\n result = value;\n }\n return result;\n}\n\nexport function isBoolean(value: any) {\n return typeof value === 'boolean';\n}\n\nexport function makePlainText(captions: Array<CuePointData>): string {\n return captions.reduce((acc: string, next: CuePointData) => {\n return `${acc.trim()} ${next.text.trim()}`;\n }, '');\n}\n\nimport {CuePointData, CuePoint} from '../types';\n\nexport const decodeString = (content: any): string => {\n if (typeof content !== 'string') {\n return content;\n }\n return content\n .replace(/</gi, '<')\n .replace(/>/gi, '>')\n .replace(/ /gi, ' ')\n .replace(/ /gi, ' ')\n .replace(/&/gi, '&')\n .replace(/"/gi, '\"');\n};\n\nexport const prepareCuePoint = (cuePoint: CuePoint): CuePointData => {\n const {metadata} = cuePoint;\n const itemData: CuePointData = {\n id: cuePoint.id,\n startTime: cuePoint.startTime,\n displayTime: Math.floor(cuePoint.startTime),\n text: decodeString(metadata.text)\n };\n\n return itemData;\n};\n\nexport function downloadContent(content: string, name: string): void {\n const blob = new Blob([content], {type: 'text/plain;charset=utf-8;'});\n const anchor = document.createElement('a');\n const {navigator} = window as any;\n\n if (navigator.msSaveBlob) {\n // IE\n navigator.msSaveOrOpenBlob(blob, name);\n return;\n }\n if (navigator.userAgent.search('Firefox') !== -1) {\n // Firefox\n anchor.style.display = 'none';\n anchor.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(content));\n } else {\n // Chrome\n anchor.setAttribute('href', URL.createObjectURL(blob));\n }\n anchor.setAttribute('target', '_blank');\n anchor.setAttribute('download', name);\n anchor.click();\n anchor.remove();\n}\nexport function printContent(content: string): void {\n const printWindow = window.open('', '', 'width=400,height=600');\n if (printWindow) {\n printWindow.document.write(content);\n printWindow.document.close();\n printWindow.focus();\n printWindow.print();\n printWindow.close();\n }\n}\n","module.exports = KalturaPlayer;","module.exports = KalturaPlayer.ui.preact;","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","import {pluginName, TranscriptPlugin} from './transcript-plugin';\n\ndeclare var __VERSION__: string;\ndeclare var __NAME__: string;\n\nconst VERSION = __VERSION__;\nconst NAME = __NAME__;\n\nexport {TranscriptEvents} from './events/events';\nexport {TranscriptPlugin as Plugin};\nexport {VERSION, NAME};\n\nKalturaPlayer.core.registerPlugin(pluginName, TranscriptPlugin);\n"],"names":["extendStatics","__extends","this","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","defineProperty","exports","value","Button","ButtonType","ButtonSize","preact_1","classnames","kaltura_player_js_1","a11y_wrapper_1","icon_1","styles","Tooltip","ui","Components","_super","_this","buttonRef","createRef","renderChildren","props","loading","h","Icon","name","size","IconSize","children","renderButton","_a","classNames","button","type","className","disabled","withIcon","icon","iconOnly","buttonProps","ref","tabIndex","ariaLabel","testId","onFocus","onBlur","buttonContent","Fragment","onClick","A11yWrapper","componentDidMount","setRef","current","focusOnMount","focus","render","tooltip","tooltipProps","label","Component","defaultProps","medium","primary","InputField","state","active","_inputRef","setFocus","options","_handleOnChange","e","onChange","target","_onClear","_onFocus","setState","_onBlur","_goToNextSearchResult","searchResults","activeSearchIndex","totalSearchResults","onSearchIndexChange","_goToPrevSearchResult","_renderSearchResults","searchResultsLabel","concat","prevNextWrapper","prevNextButton","prevMatchLabel","width","height","viewBox","fill","xmlns","nextMatchLabel","_renderClearSearch","clearIcon","clearSearchLabel","inputProps","inputElement","onInput","node","placeholder","inputFieldWrapper","join","isKeyboardEvent","utils","KeyMap","ENTER","SPACE","UP","DOWN","LEFT","RIGHT","stopEvent","preventDefault","stopPropagation","KeyboardEvent","offsetX","offsetY","every","offset","onUpKeyPressed","onDownKeyPressed","onLeftKeyPressed","onRightKeyPressed","role","onKeyDown","keyCode","cloneElement","Add","AnswerOnAir","ArrowClose","ArrowOpen","AutoScroll","x","y","rx","Chapter","Close","ClosedCaptions","Document","Download","Excel","Expand","GenericFile","Hotspot","Image","Icons","close_1","print_1","download_1","related_1","message_1","share_1","more_1","quiz_1","switch_1","add_1","minimizedVideo_1","pictureInPicture_1","expand_1","arrowOpen_1","arrowClose_1","chapter_1","hotspot_1","answerOnAir_1","screenRotation_1","autoScroll_1","replay_1","closedCaptions_1","genericFile_1","presentation_1","image_1","document_1","excel_1","pdf_1","zip_1","volumeOn_1","volumeMute_1","spinner_1","close","print","Print","download","related","Related","message","Message","share","Share","more","More","quiz","QuizIcon","switch","Switch","add","minimizedVideo","MinimizedVideo","pictureInPicture","PictureInPicture","expand","arrowOpen","arrowClose","chapter","hotspot","answerOnAir","screenRotation","ScreenRotation","autoScroll","replay","ReplayIcon","closedCaptions","genericFile","presentation","Presentation","image","document","excel","pdf","PDF","zip","Zip","volumeOn","VolumeOn","volumeMute","VolumeMute","spinner","Spinner","opacity","icons_1","iconWrapper","hasOwn","classes","arg","argType","push","isArray","inner","toString","includes","key","module","default","___CSS_LOADER_EXPORT___","id","locals","cssWithMappingToString","list","map","item","content","needLayer","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","val","defaultArrayMerge","element","getKeys","keys","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","_","arrayMerge","sourceIsArray","destination","forEach","propertyIsUnsafe","customMerge","getMergeFunction","mergeObject","all","array","Error","reduce","prev","next","deepmerge_1","attributeNames","elementNames","Map","toLowerCase","__createBinding","o","m","k2","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","__setModuleDefault","v","__importStar","mod","result","ElementType","entities_1","foreignNames_js_1","unencodedElements","Set","replaceQuotes","replace","singleTag","nodes","output","renderNode","Root","Doctype","Directive","Comment","CDATA","elem","renderCdata","Script","Style","Tag","opts","xmlMode","parent","foreignModeIntegrationPoints","has","foreignElements","tag","attribs","attributes","encode","encodeEntities","decodeEntities","encodeXML","escapeAttribute","_b","emptyAttrs","formatAttributes","selfClosingTags","renderTag","Text","escapeText","renderText","isTag","__exportStar","DomHandler","domelementtype_1","node_js_1","defaultOpts","withStartIndices","withEndIndices","callback","elementCB","dom","root","done","tagStack","lastNode","parser","onparserinit","onreset","onend","handleCallback","onerror","error","onclosetag","pop","endIndex","onopentag","Element","addNode","ontext","oncomment","oncommentend","oncdatastart","text","oncdataend","onprocessinginstruction","ProcessingInstruction","previousSibling","startIndex","cloneNode","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","NodeWithChildren","DataNode","Node","set","recursive","namespace","prefix","cloneChildren","clone_1","child","clone_2","clone_3","instruction","sourceCodeLocation","childs","getFeed","stringify_js_1","legacy_js_1","doc","feedRoot","getOneElement","isValidFeed","feed","items","getElementsByTagName","entry","getMediaElements","addConditionally","href","link","description","fetch","pubDate","Date","updated","getAtomFeed","substr","getRssFeed","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","isDefault","_i","MEDIA_KEYS_STRING_1","attrib","MEDIA_KEYS_INT_1","parseInt","expression","tagName","recurse","textContent","trim","obj","prop","uniqueSort","compareDocumentPosition","DocumentPosition","removeSubsets","domhandler_1","nodeA","nodeB","aParents","bParents","unshift","maxIdx","Math","min","idx","DISCONNECTED","sharedParent","siblings","aSibling","bSibling","indexOf","FOLLOWING","CONTAINED_BY","PRECEDING","CONTAINS","lastIndexOf","splice","ancestor","arr","sort","a","relative","getElementsByTagType","getElementById","getElements","testElement","querying_js_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","combineFuncs","compileTest","funcs","test","limit","Infinity","findOne","removeElement","childsIndex","prepend","prependChild","append","appendChild","replaceElement","replacement","sibling","currNext","findAll","existsOne","findOneChild","find","nodeStack","indexStack","shift","some","checked","__importDefault","innerText","getText","getInnerHTML","getOuterHTML","dom_serializer_1","prevElementSibling","nextElementSibling","getName","hasAttrib","getAttributeValue","getSiblings","getParent","getChildren","decodeXML","decodeHTMLStrict","decodeHTMLAttribute","decodeHTML","determineBranch","EntityDecoder","DecodingMode","BinTrieFlags","fromCodePoint","replaceCodePoint","decodeCodePoint","xmlDecodeTree","htmlDecodeTree","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","CharCodes","EntityDecoderState","decode_codepoint_js_2","isNumber","code","ZERO","NINE","decodeTree","emitCodePoint","errors","EntityStart","consumed","treeIndex","excess","decodeMode","Strict","startEntity","write","str","charCodeAt","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","addToNumericResult","start","end","base","digitCount","pow","startIdx","char","UPPER_A","UPPER_F","LOWER_A","LOWER_F","emitNumericEntity","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","valueLength","VALUE_LENGTH","max","Attribute","EQUALS","UPPER_Z","LOWER_Z","isAsciiAlphaNumeric","emitNotTerminatedNamedEntity","emitNamedEntityData","getDecoder","ret","decoder","lastIndex","slice","len","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","mode","Legacy","decodeMap","codePoint","fromCharCode","encodeNonAsciiHTML","encodeHTML","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTMLTrieRe","regExp","match","lastIdx","exec","index","substring","nextChar","cp","getCodePoint","Number","xmlReplacer","escapeUTF8","escape","xmlCodeMap","getEscaper","regex","codePointAt","c","Uint16Array","split","restoreDiff","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","decode","EncodingMode","EntityLevel","decode_js_1","encode_js_1","XML","level","HTML","UTF8","ASCII","escape_js_2","encode_js_2","decode_js_2","Parser","Tokenizer_js_1","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","_c","_d","_e","openTagStart","tagname","attribname","attribvalue","stack","foreignContext","buffers","bufferOffset","writeIndex","ended","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","tokenizer","Tokenizer","getSlice","ontextentity","getSectionStart","isVoidElement","onopentagname","emitOpenTag","impliesClose","endOpenTag","isImplied","onopentagend","_f","pos","count","closeCurrentTag","onselfclosingtag","recognizeSelfClosing","isOpenImplied","onattribname","onattribdata","onattribentity","onattribend","quote","onattribute","QuoteType","Double","Single","NoValue","getInstructionName","search","ondeclaration","oncdata","_g","_h","_j","recognizeCDATA","reset","parseComplete","shiftBuffer","chunk","running","pause","resume","parseChunk","State","isWhitespace","Space","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Gt","Zero","Nine","Sequences","Cdata","Uint8Array","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","buffer","sectionStart","baseState","currentSequence","sequenceIndex","trieIndex","trieCurrent","entityResult","entityExcess","entityTrie","parse","finish","getIndex","stateText","Lt","fastForwardTo","BeforeTagName","Amp","BeforeEntity","stateSpecialStartSequence","isEnd","InTagName","stateInTagName","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","stateCDATASequence","InCommentLike","InDeclaration","stateInDeclaration","stateInCommentLike","isTagStartChar","LowerA","LowerZ","UpperA","UpperZ","isASCIIAlpha","startSpecial","sequence","SpecialStartSequence","stateBeforeTagName","ExclamationMark","BeforeDeclaration","Questionmark","InProcessingInstruction","lower","BeforeSpecialS","BeforeClosingTagName","BeforeAttributeName","stateBeforeAttributeName","stateBeforeClosingTagName","InClosingTagName","InSpecialComment","AfterClosingTagName","stateAfterClosingTagName","InSpecialTag","InSelfClosingTag","InAttributeName","stateInSelfClosingTag","stateInAttributeName","Eq","AfterAttributeName","stateAfterAttributeName","BeforeAttributeValue","stateBeforeAttributeValue","DoubleQuote","InAttributeValueDq","SingleQuote","InAttributeValueSq","InAttributeValueNq","stateInAttributeValueNoQuotes","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","Unquoted","stateBeforeDeclaration","OpeningSquareBracket","CDATASequence","Dash","BeforeComment","stateInProcessingInstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeEntity","BeforeNumericEntity","InNamedEntity","stateInNamedEntity","emitNamedEntity","masked","allowLegacyEntity","Semi","entityStart","emitPartial","stateBeforeNumericEntity","LowerX","InHexEntity","InNumericEntity","stateInNumericEntity","strict","stateInHexEntity","UpperF","LowerF","isHexDigit","cleanup","shouldContinue","handleTrailingData","DomUtils","parseFeed","createDomStream","parseDOM","parseDocument","DefaultHandler","Parser_js_1","Parser_js_2","domhandler_2","handler","elementCallback","domutils_1","domutils_2","parseFeedDefaultOptions","isObject","isPlainObject","ctor","prot","input","isSpace","collectCharacters","regEx","chars","url","descriptors","currentDescriptor","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","candidates","parseDescriptors","tokenize","charAt","w","lastChar","intVal","floatVal","pError","candidate","parseFloat","console","log","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","htmlparser","escapeStringRegexp","parseSrcset","postcssParse","mediaTags","vulnerableTags","each","cb","sanitizeHtml","VALID_HTML_ATTRIBUTE_NAME","html","_recursing","tempResult","Frame","that","tagPosition","mediaChildren","updateParentNodeText","updateParentNodeMediaChildren","defaults","htmlParserDefaults","tagAllowed","allowedTags","allowVulnerableTags","warn","nonTextTagsArray","nonTextTags","allowedAttributesMap","allowedAttributesGlobMap","allowedAttributes","globRegex","RegExp","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","allowedClasses","transformTagsMap","transformTagsAll","depth","skipMap","transformMap","skipText","skipTextDepth","transformTags","transform","transFun","simpleTransform","addedText","initializeState","enforceHtmlBoundary","frame","skip","hasText","transformedTag","disallowedTagsMode","isEmptyObject","nestingLimit","allowedScriptHostnames","allowedScriptDomains","nonBooleanAttributes","passedAllowedAttributesMapCheck","newValue","multiple","splitStrArray","values","allowedSchemesAppliedToAttributes","naughtyHref","allowed","parsed","parseUrl","allowedHostname","hostname","allowedDomain","domain","endsWith","isRelativeUrl","allowIframeRelativeUrls","allowedIframeHostnames","allowedIframeDomains","evil","part","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedClassesGlobs","allowedGlobs","clss","glob","parseStyleAttributes","filteredAST","extractedAttributes","attrObject","important","stringifyStyleAttributes","abstractSyntaxTree","allowedStyles","astRules","selectedRule","selector","allowedDeclarationsList","attributeObject","regularExpression","filterDeclarations","filterCss","window","escapeHtml","selfClosing","textFilter","lastFrame","escaped","exclusiveFilter","firstIndex","matches","allowProtocolRelative","scheme","allowedSchemesByTag","allowedSchemes","startsWith","URL","protocol","img","newTagName","newAttribs","merge","string","Container","AtRule","super","proxyOf","registerAtRule","Rule","isClean","my","Declaration","cleanSource","markDirtyUp","normalize","last","markDirty","cleanRaws","keepBetween","iterator","getIterator","indexes","condition","lastEach","getProxyProcessor","args","toProxy","other","insertAfter","exist","existIndex","reverse","insertBefore","sample","removeChild","rebuild","raws","before","first","removeAll","replaceValues","pattern","walkDecls","decl","fast","walk","addToError","walkAtRules","walkComments","walkRules","registerParse","dependant","registerRule","registerRoot","pico","terminalHighlight","CssSyntaxError","line","column","file","plugin","reason","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","maxWidth","number","gutter","spacing","variable","LazyResult","Processor","toResult","registerLazyResult","registerProcessor","PreviousMap","Input","fromJSON","json","inputs","ownInputs","inputHydrated","inputId","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","isAbsolute","resolve","nanoid","fromOffsetCache","sourceMapAvailable","Boolean","pathAvailable","hasBOM","from","consumer","mapResolve","fromOffset","col","origin","lastLine","lineToIndex","prevIndex","l","to","fromUrl","originalPositionFor","mapFile","sourceContentFor","toJSON","consumerCache","registerInput","MapGenerator","Result","TYPE_TO_CLASS_NAME","atrule","comment","rule","PLUGIN_PROPS","AtRuleExit","CommentExit","DeclarationExit","DocumentExit","Once","OnceExit","postcssPlugin","prepare","RootExit","RuleExit","NOT_VISITORS","isPromise","then","getEvents","toStack","events","eventIndex","visitorIndex","visitors","cleanMarks","postcss","processor","stringified","processed","inline","syntax","helpers","plugins","async","Promise","reject","processing","runAsync","catch","onRejected","finally","onFinally","getAsyncError","handleError","lastPlugin","postcssVersion","err","prepareVisitors","listeners","event","version","hasListener","promise","runOnRoot","visitTick","visitor","roots","subRoot","sync","stringifier","generate","walkSync","visitSync","onFulfilled","visit","warnings","messages","toStringTag","registerPostcss","comma","space","separators","func","inQuote","prevQuote","letter","dirname","sep","cssString","mapOpts","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","isInline","toBase64","annotation","outputFile","eol","applyPrevMaps","previous","toUrl","path","sourcesContent","applySourceMap","clearAnnotation","isMap","generateMap","generateString","fromSourceMap","addMapping","generated","original","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","semicolon","withContent","cached","previousMaps","already","toFileUrl","setSourceContent","Buffer","fileURL","encodeURI","NoWorkResult","_processor","_css","_opts","_map","self","generatedCSS","generatedMap","_root","Stringifier","cloned","j","postcssNode","after","overrides","between","cloneAfter","cloneBefore","rangeBy","positionBy","stringRepresentation","positionInside","word","raw","defaultType","remove","replaceWith","bookmark","foundSelf","fixed","emitInputs","inputsNextIndex","proxyCache","Proxy","SAFE_COMMENT_NEIGHBOR","empty","spaces","customProperty","createTokenizer","token","unnamedAtrule","init","open","params","brackets","endOfFile","nextToken","getPosition","spacesAndCommentsFromEnd","afterName","spacesAndCommentsFromStart","checkMissedSemicolon","tokens","colon","founded","entries","doubleColon","left","right","findLastWithPosition","unknownWord","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","cache","emptyRule","unexpectedClose","endFile","unclosedBlock","position","freeSemicolon","ownSemicolon","bracket","back","unclosedBracket","clean","lastTokenType","Warning","initializer","warningPrinted","creator","process","env","LANG","transformer","processOpts","pluginOpts","atRule","existsSync","readFileSync","loadAnnotation","startWith","loadMap","decodeInline","decodeURIComponent","lastMatch","atob","encoding","getAnnotationURL","sourceMapString","mappings","_mappings","sections","comments","loadFile","prevPath","normalized","use","warning","ignore","selectors","DEFAULT_RAW","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","commentLeft","commentRight","emptyBody","indent","builder","rawValue","block","beforeAfter","detect","buf","step","body","own","rawCache","method","toUpperCase","rawBeforeClose","rawBeforeComment","rawBeforeDecl","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","parts","rawSemicolon","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","escapePos","currentToken","valueOf","ignoreErrors","returned","unclosed","what","ignoreUnclosed","controlChar","printed","range","opt","api","memo","getTarget","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","stylesInDom","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","sourceMap","references","updater","addStyle","insertStyleElement","style","createElement","nonce","setAttribute","insert","textStore","replaceText","applyToSingletonTag","styleSheet","cssText","cssNode","createTextNode","childNodes","applyToTag","removeAttribute","firstChild","singleton","singletonCounter","update","styleIndex","bind","parentNode","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","KalturaPlayer","preacti18n","withText","translates","autoScrollLabel","AutoscrollButton","isAutoScrollEnabled","setAutoscrollButtonRef","autoscrollRoot","autoscrollButton","autoscrollButtonVisible","END","HOME","_currentCaptionRef","_firstCaptionRef","_lastCaptionRef","_handleClick","caption","onSeek","_getShouldScroll","captionId","highlightedMap","_getShouldScrollToSearchMatch","searchMap","_getSearchProps","captionProps","searchProps","indexMap","searchLength","_getCaptionProps","captionData","showTime","scrollTo","scrollToSearchMatch","highlighted","longerThanHour","videoDuration","HOUR","shouldScroll","shouldScrollToSearchMatch","searchCaption","_handleKeyUp","_hotspotRef","shouldComponentUpdate","nextProps","isSearchCaption","transcriptWrapper","onKeyUp","Caption","CaptionList","_gotoCurrentTime","_renderText","indexArray","captionSpan","el","preSelected","selected","postSelected","activeSearch","highlightSearch","componentDidUpdate","startTime","isHighlighted","time","secondsToTime","captionA11yProps","ariaCurrent","captionTime","captionContent","withoutTime","icons","PLUGIN_ICON","BigSize","MediumSize","SmallSize","components","PluginButton","isActive","dataTestId","upperBarIcon","pluginButton","PopoverMenu","withEventManager","Event","moreOptionsLabel","_controlElementRef","_popoverElementRef","_itemsRefMap","handleMouseEvent","contains","closePopover","handleKeydownEvent","eventTarget","isOpen","_handleUpKeyPressed","currentIndex","_getItemRef","_handleDownKeyPressed","togglePopover","focusFirstItem","firstNonDisabledItem","findIndex","isDisabled","_setItemRef","eventManager","listen","componentWillUnmount","popoverMenuContent","popoverContainer","popoverAnchorContainer","popoverAnchor","popoverComponent","popoverMenuItem","popoverMenuItemDisabled","_inputField","kitchenSinkActive","previousProps","toggledWithEnter","preventScroll","searchLabel","Search","fields","total","SearchComponent","withPlayer","connect","redux","mapStateToProps","isMobile","shell","smallScreenText","smallScreenMobileText","hideTranscript","onClose","player","smallScreenWrapper","borderless","closeButton","contentWrapper","large","enterFullscreen","SmallScreenSlate","transcriptLoader","TranscriptMenu","printTranscript","downloadTranscript","downloadDisabled","onDownload","printDisabled","onPrint","isLoading","ErrorIcon","xmlnsXlink","stroke","cx","cy","r","points","SidePanelModes","PLAYER_BREAK_POINTS","skipTranscript","errorTitle","errorDescripton","initialSearch","SEARCHBAR_HEIGHT","smallScreen","SMALL","ownProps","expandMode","ALONGSIDE","playerClientRect","_transcriptListRef","_captionListRef","_skipTranscriptButtonRef","_autoscrollButtonRef","_preventScrollEvent","_scrollToSearchMatchEnabled","_widgetRootRef","_widgetHeight","_topAutoscrollEdge","_bottomAutoscrollEdge","_thirdOfWidgetHeight","widgetWidth","_enableAutoScroll","byKeyboard","_renderScrollToButton","_onSearch","_findSearchMatches","loSearch","captions","indices","_debounced","searchEventDispatcher","_dispatchSearchEvent","dispatcher","TranscriptEvents","TRANSCRIPT_SEARCH","_setActiveSearchIndex","TRANSCRIPT_NAVIGATE_RESULT","_getHeaderStyles","mediumWidth","smallWidth","_renderHeader","header","onActiveSearchIndexChange","_handleKeyDown","shiftKey","captionRef","_renderSkipTranscriptButton","skipTranscriptButton","_renderTranscript","hasError","errorWrapper","errorIcon","errorMainText","errorDescriptionText","_scrollTo","_scrollToSearchMatch","_handleSeek","onScroll","_onScroll","showItemsIcons","searchActive","_setWidgetSize","getBoundingClientRect","floor","ceil","_renderLoading","scrollTop","offsetTop","selection","getSelection","findSearchMatches","debounce","searchDebounceTimeout","searchNextPrevDebounceTimeout","previousState","renderTranscriptButtons","globalContainer","Transcript","TRANSCRIPT_OPEN","TRANSCRIPT_CLOSE","TRANSCRIPT_DOWNLOAD","TRANSCRIPT_PRINT","pluginName","SidePanelPositions","ReservedPresetNames","ObjectUtils","config","_activeCaptionMapId","_activeCuePointsMap","_captionMap","_isLoading","_hasError","_triggeredByKeyboard","_transcriptPanel","_transcriptIcon","_pluginState","_pluginButtonRef","_initLoading","clearTimeout","_loadingTimeoutId","setTimeout","_updateTranscriptPanel","_handleLanguageChange","_getCaptionMapId","_onTimedMetadataAdded","payload","cues","cue","metadata","cuePointType","ItemTypes","prepareCuePoint","captionMetadata","captionKey","_makeCaptionKey","language","_addCaptionData","_addTranscriptItem","_onTimedMetadataChange","transcriptCuePoints","nextCue","endTime","newData","oldData","newSanitizedData","_sanitizeCaptions","_getTextTracks","getTracks","Track","TEXT","allTextTracks","activeTextTrack","track","_activatePlugin","isFirstOpen","ready","sidePanelsManager","activateItem","PluginStates","OPENED","upperBarManager","dispatchEvent","auto","_deactivatePlugin","deactivateItem","_isPluginActive","isItemActive","_handleClickOnPluginIcon","CLOSED","decodeString","_setPluginButtonRef","_seekTo","currentTime","_handleDownload","entryMetadata","downloadContent","makePlainText","videoPosition","_handlePrint","printContent","_handleClose","getService","loadMedia","cuePointManager","isLive","_initListeners","registerTypes","CuepointType","CAPTION","logger","listenOnce","TRACKS_CHANGED","TIMED_METADATA_CHANGE","TIMED_METADATA_ADDED","TEXT_TRACK_CHANGED","expandOnFirstPlay","scrollOffset","panelComponent","getConfigValue","isBoolean","isInteger","onItemClicked","_data","onRetryLoad","duration","eventType","presets","Playback","Live","Ads","OVER","onDeactivate","showTranscript","displayName","order","svgIcon","component","isValid","destroy","defaultConfig","core","BasePlugin","TranscriptPlugin","waitMilliseconds","timeoutId","isImmediate","doLater","shouldCallNow","defaultValue","pathArray","stringToPath","toSeconds","vtt","isNaN","pad","seconds","date","setSeconds","hours","makeHoursString","getUTCMinutes","getUTCSeconds","acc","cuePoint","displayTime","blob","Blob","anchor","navigator","msSaveBlob","msSaveOrOpenBlob","userAgent","display","createObjectURL","click","printWindow","preact","random","customAlphabet","alphabet","defaultSize","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","nc","VERSION","NAME","registerPlugin"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"playkit-transcript.js","mappings":"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,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,GAAI,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,cAAe,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,eAAgB,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,eAAgB,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EA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CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,YAAa,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,UAAW,CAAC,KAAM,UAAW,CAAC,EAAG,UAAW,CAAC,EAAG,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,WAAY,CAAC,EAAG,YAAa,CAAC,EAAG,eAAgB,CAAC,EAAG,YAAa,CAAC,EAAG,yBAA0B,CAAC,EAAG,UAAW,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,SAAU,CAAC,EAAG,UAAW,CAAC,EAAG,WAAY,CAAC,EAAG,WAAY,CAAC,EAAG,YA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","sources":["./transcript/../node_modules/@playkit-js/common/dist/components/button/index.js","./transcript/../node_modules/@playkit-js/common/dist/components/input-field/index.js","./transcript/../node_modules/@playkit-js/common/dist/hoc/a11y-wrapper/index.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/add.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/answerOnAir.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/arrowClose.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/arrowOpen.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/autoScroll.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/chapter.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/close.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/closedCaptions.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/document.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/download.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/excel.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/expand.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/genericFile.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/hotspot.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/image.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/index.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/message.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/minimizedVideo.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/more.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/pdf.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/pictureInPicture.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/presentation.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/print.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/quiz.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/related.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/replay.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/screenRotation.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/share.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/spinner.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/switch.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/volumeMute.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/volumeOn.js","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/zip.js","./transcript/../node_modules/@playkit-js/common/dist/icon/index.js","./transcript/../node_modules/classnames/index.js","./transcript/../node_modules/@playkit-js/common/dist/components/button/Button.scss","./transcript/../node_modules/@playkit-js/common/dist/components/input-field/InputField.scss","./transcript/../node_modules/@playkit-js/common/dist/icon/icon.scss","./transcript/../node_modules/@playkit-js/common/dist/icon/icons/spinner.scss","./transcript/./components/autoscroll-button/autoscroll-button.scss","./transcript/./components/caption-list/captionList.scss","./transcript/./components/caption/caption.scss","./transcript/./components/plugin-button/plugin-button.scss","./transcript/./components/popover-menu/popover-menu.scss","./transcript/./components/small-screen-slate/small-screen-slate.scss","./transcript/./components/spinner/spinner.scss","./transcript/./components/transcript/transcript.scss","./transcript/../node_modules/css-loader/dist/runtime/api.js","./transcript/../node_modules/css-loader/dist/runtime/sourceMaps.js","./transcript/../node_modules/deepmerge/dist/cjs.js","./transcript/../node_modules/dom-serializer/lib/foreignNames.js","./transcript/../node_modules/dom-serializer/lib/index.js","./transcript/../node_modules/domelementtype/lib/index.js","./transcript/../node_modules/domhandler/lib/index.js","./transcript/../node_modules/domhandler/lib/node.js","./transcript/../node_modules/domutils/lib/feeds.js","./transcript/../node_modules/domutils/lib/helpers.js","./transcript/../node_modules/domutils/lib/index.js","./transcript/../node_modules/domutils/lib/legacy.js","./transcript/../node_modules/domutils/lib/manipulation.js","./transcript/../node_modules/domutils/lib/querying.js","./transcript/../node_modules/domutils/lib/stringify.js","./transcript/../node_modules/domutils/lib/traversal.js","./transcript/../node_modules/entities/lib/decode.js","./transcript/../node_modules/entities/lib/decode_codepoint.js","./transcript/../node_modules/entities/lib/encode.js","./transcript/../node_modules/entities/lib/escape.js","./transcript/../node_modules/entities/lib/generated/decode-data-html.js","./transcript/../node_modules/entities/lib/generated/decode-data-xml.js","./transcript/../node_modules/entities/lib/generated/encode-html.js","./transcript/../node_modules/entities/lib/index.js","./transcript/../node_modules/htmlparser2/lib/Parser.js","./transcript/../node_modules/htmlparser2/lib/Tokenizer.js","./transcript/../node_modules/htmlparser2/lib/index.js","./transcript/../node_modules/is-plain-object/dist/is-plain-object.js","./transcript/../node_modules/parse-srcset/src/parse-srcset.js","./transcript/../node_modules/picocolors/picocolors.browser.js","./transcript/../node_modules/sanitize-html/index.js","./transcript/../node_modules/sanitize-html/node_modules/escape-string-regexp/index.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/at-rule.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/comment.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/container.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/css-syntax-error.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/declaration.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/document.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/fromJSON.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/input.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/lazy-result.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/list.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/map-generator.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/no-work-result.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/node.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/parse.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/parser.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/postcss.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/previous-map.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/processor.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/result.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/root.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/rule.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/stringifier.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/stringify.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/symbols.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/tokenize.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/warn-once.js","./transcript/../node_modules/sanitize-html/node_modules/postcss/lib/warning.js","webpack://KalturaPlayer.plugins.transcript/../node_modules/@playkit-js/common/dist/components/button/Button.scss?6bdc","webpack://KalturaPlayer.plugins.transcript/../node_modules/@playkit-js/common/dist/components/input-field/InputField.scss?1722","webpack://KalturaPlayer.plugins.transcript/../node_modules/@playkit-js/common/dist/icon/icon.scss?f778","webpack://KalturaPlayer.plugins.transcript/../node_modules/@playkit-js/common/dist/icon/icons/spinner.scss?8097","webpack://KalturaPlayer.plugins.transcript/./components/autoscroll-button/autoscroll-button.scss?0ba0","webpack://KalturaPlayer.plugins.transcript/./components/caption-list/captionList.scss?ed8b","webpack://KalturaPlayer.plugins.transcript/./components/caption/caption.scss?0818","webpack://KalturaPlayer.plugins.transcript/./components/plugin-button/plugin-button.scss?1671","webpack://KalturaPlayer.plugins.transcript/./components/popover-menu/popover-menu.scss?30d2","webpack://KalturaPlayer.plugins.transcript/./components/small-screen-slate/small-screen-slate.scss?eee1","webpack://KalturaPlayer.plugins.transcript/./components/spinner/spinner.scss?84e4","webpack://KalturaPlayer.plugins.transcript/./components/transcript/transcript.scss?5d08","./transcript/../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","./transcript/./components/autoscroll-button/autoscroll-button.tsx","./transcript/./components/autoscroll-button/index.ts","./transcript/./components/caption-list/captionList.tsx","./transcript/./components/caption-list/index.ts","./transcript/./components/caption/caption.tsx","./transcript/./components/caption/index.ts","./transcript/./components/icons/index.ts","./transcript/./components/plugin-button/plugin-button.tsx","./transcript/./components/popover-menu/index.ts","./transcript/./components/popover-menu/popover-menu.tsx","./transcript/./components/search/index.ts","./transcript/./components/search/search.tsx","./transcript/./components/small-screen-slate/index.ts","./transcript/./components/small-screen-slate/small-screen-slate.tsx","./transcript/./components/spinner/index.ts","./transcript/./components/spinner/spinner.tsx","./transcript/./components/transcript-menu/index.ts","./transcript/./components/transcript-menu/transcript-menu.tsx","./transcript/./components/transcript/error-icon.tsx","./transcript/./components/transcript/index.ts","./transcript/./components/transcript/transcript.tsx","./transcript/./events/events.ts","./transcript/./transcript-plugin.tsx","./transcript/./types/index.ts","./transcript/./types/transcript-item-data.ts","./transcript/./types/types-ui.ts","./transcript/./utils/debounce.ts","./transcript/./utils/index.ts","./transcript/./utils/object-utils.ts","./transcript/./utils/utils.ts","./transcript/external root \"KalturaPlayer\"","./transcript/external root \"KalturaPlayer.ui.preact\"","./transcript/../node_modules/sanitize-html/node_modules/nanoid/non-secure/index.cjs","./transcript/webpack/bootstrap","./transcript/webpack/runtime/compat get default export","./transcript/webpack/runtime/define property getters","./transcript/webpack/runtime/hasOwnProperty shorthand","./transcript/webpack/runtime/make namespace object","./transcript/webpack/runtime/nonce","./transcript/./index.ts"],"sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Button = exports.ButtonType = exports.ButtonSize = void 0;\nvar preact_1 = require(\"preact\");\nvar classnames = require(\"classnames\");\nvar kaltura_player_js_1 = require(\"@playkit-js/kaltura-player-js\");\nvar a11y_wrapper_1 = require(\"../../hoc/a11y-wrapper\");\nvar icon_1 = require(\"../../icon\");\nvar styles = require(\"./Button.scss\");\nvar Tooltip = kaltura_player_js_1.ui.Components.Tooltip;\nvar ButtonSize;\n(function (ButtonSize) {\n ButtonSize[\"small\"] = \"small\";\n ButtonSize[\"medium\"] = \"medium\";\n ButtonSize[\"large\"] = \"large\";\n})(ButtonSize = exports.ButtonSize || (exports.ButtonSize = {}));\nvar ButtonType;\n(function (ButtonType) {\n ButtonType[\"primary\"] = \"primary\";\n ButtonType[\"danger\"] = \"danger\";\n ButtonType[\"translucent\"] = \"translucent\";\n ButtonType[\"borderless\"] = \"borderless\";\n ButtonType[\"borderlessTranslucent\"] = \"borderlessTranslucent\";\n ButtonType[\"secondary\"] = \"secondary\";\n})(ButtonType = exports.ButtonType || (exports.ButtonType = {}));\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n function Button() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.buttonRef = (0, preact_1.createRef)();\n _this.renderChildren = function () {\n var props = _this.props;\n if (props.loading) {\n return ((0, preact_1.h)(\"span\", null,\n (0, preact_1.h)(icon_1.Icon, { name: 'spinner', size: icon_1.IconSize[props.size] })));\n }\n return props.children ? (0, preact_1.h)(\"span\", null, props.children) : null;\n };\n _this.renderButton = function () {\n var _a;\n var props = _this.props;\n var classNames = classnames(styles.button, styles[props.size], styles[props.type], props.className, (_a = {},\n _a[styles.disabled] = props.disabled,\n _a[styles.loading] = props.loading,\n _a[styles.withIcon] = props.children && props.icon,\n _a[styles.iconOnly] = !props.children && props.icon,\n _a));\n var buttonProps = __assign(__assign(__assign(__assign({ ref: _this.buttonRef, disabled: props.disabled, 'aria-disabled': props.disabled, 'aria-busy': props.loading, tabIndex: props.tabIndex, className: classNames }, (props.ariaLabel ? { 'aria-label': props.ariaLabel } : {})), (props.testId ? { 'data-testid': props.testId } : {})), (props.onFocus ? { onFocus: props.onFocus } : {})), (props.onBlur ? { onBlur: props.onBlur } : {}));\n var buttonContent = ((0, preact_1.h)(\"button\", __assign({}, buttonProps),\n (0, preact_1.h)(preact_1.Fragment, null,\n props.icon && (0, preact_1.h)(icon_1.Icon, { name: props.icon, size: icon_1.IconSize[props.size] }),\n _this.renderChildren())));\n return props.onClick ? (0, preact_1.h)(a11y_wrapper_1.A11yWrapper, { onClick: props.onClick }, buttonContent) : buttonContent;\n };\n return _this;\n }\n Button.prototype.componentDidMount = function () {\n var _a;\n if (this.props.setRef) {\n this.props.setRef(this.buttonRef.current);\n }\n if (this.props.focusOnMount) {\n (_a = this.buttonRef.current) === null || _a === void 0 ? void 0 : _a.focus();\n }\n };\n Button.prototype.render = function (props) {\n if (props.tooltip) {\n var tooltipProps = __assign(__assign({ label: props.tooltip.label }, (props.tooltip.type ? { type: props.tooltip.type } : {})), (props.tooltip.className ? { classNames: props.tooltip.className } : {}));\n return (0, preact_1.h)(Tooltip, __assign({}, tooltipProps), this.renderButton());\n }\n return this.renderButton();\n };\n return Button;\n}(preact_1.Component));\nexports.Button = Button;\nButton.defaultProps = {\n disabled: false,\n focusOnMount: false,\n tabIndex: 0,\n children: null,\n size: ButtonSize.medium,\n icon: null,\n type: ButtonType.primary\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InputField = void 0;\nvar preact_1 = require(\"preact\");\nvar a11y_wrapper_1 = require(\"../../hoc/a11y-wrapper\");\nvar styles = require(\"./InputField.scss\");\nvar InputField = /** @class */ (function (_super) {\n __extends(InputField, _super);\n function InputField(props) {\n var _this = _super.call(this, props) || this;\n _this.state = {\n active: false\n };\n _this._inputRef = null;\n _this.setFocus = function (options) {\n var _a;\n (_a = _this._inputRef) === null || _a === void 0 ? void 0 : _a.focus(options);\n };\n _this._handleOnChange = function (e) {\n _this.props.onChange(e.target.value);\n };\n _this._onClear = function () {\n var _a;\n (_a = _this._inputRef) === null || _a === void 0 ? void 0 : _a.focus();\n _this.props.onChange('');\n };\n _this._onFocus = function () {\n _this.setState({\n active: true\n });\n };\n _this._onBlur = function () {\n _this.setState({\n active: false\n });\n };\n _this._goToNextSearchResult = function () {\n var searchResults = _this.props.searchResults;\n var _a = searchResults, activeSearchIndex = _a.activeSearchIndex, totalSearchResults = _a.totalSearchResults, onSearchIndexChange = _a.onSearchIndexChange;\n if (totalSearchResults === 0) {\n return;\n }\n var index = 0;\n if (activeSearchIndex !== totalSearchResults) {\n index = activeSearchIndex + 1;\n }\n else {\n index = 1;\n }\n onSearchIndexChange(index);\n };\n _this._goToPrevSearchResult = function () {\n var searchResults = _this.props.searchResults;\n var _a = searchResults, activeSearchIndex = _a.activeSearchIndex, totalSearchResults = _a.totalSearchResults, onSearchIndexChange = _a.onSearchIndexChange;\n var index = 0;\n if (activeSearchIndex !== 1) {\n index = activeSearchIndex - 1;\n }\n else {\n index = totalSearchResults;\n }\n onSearchIndexChange(index);\n };\n _this._renderSearchResults = function () {\n return ((0, preact_1.h)(preact_1.Fragment, null,\n (0, preact_1.h)(\"div\", { className: styles.searchResults, \"aria-live\": \"polite\", \"aria-label\": _this.props.searchResults.searchResultsLabel }, \"\".concat(_this.props.searchResults.totalSearchResults > 0\n ? \"\".concat(_this.props.searchResults.activeSearchIndex, \"/\").concat(_this.props.searchResults.totalSearchResults)\n : '0/0')),\n (0, preact_1.h)(\"div\", { className: styles.prevNextWrapper },\n _this.props.value && ((0, preact_1.h)(a11y_wrapper_1.A11yWrapper, { onClick: _this._goToPrevSearchResult },\n (0, preact_1.h)(\"button\", { tabIndex: 0, className: \"\".concat(styles.prevNextButton, \" \").concat(_this.props.searchResults.totalSearchResults === 0 ? styles.disabled : ''), \"aria-label\": _this.props.searchResults.prevMatchLabel },\n (0, preact_1.h)(\"svg\", { width: \"8\", height: \"5\", viewBox: \"0 0 8 5\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": \"true\" },\n (0, preact_1.h)(\"path\", { d: \"M0.292893 4.70711C0.653377 5.06759 1.22061 5.09532 1.6129 4.7903L1.70711 4.70711L4 2.415L6.29289 4.70711C6.65338 5.06759 7.22061 5.09532 7.6129 4.7903L7.70711 4.70711C8.06759 4.34662 8.09532 3.77939 7.7903 3.3871L7.70711 3.29289L4.70711 0.292893C4.34662 -0.0675907 3.77939 -0.0953203 3.3871 0.209705L3.29289 0.292893L0.292893 3.29289C-0.0976311 3.68342 -0.0976311 4.31658 0.292893 4.70711Z\", fill: \"white\", \"fill-opacity\": \"0.7\" }))))),\n _this.props.value && ((0, preact_1.h)(a11y_wrapper_1.A11yWrapper, { onClick: _this._goToNextSearchResult },\n (0, preact_1.h)(\"button\", { tabIndex: 0, className: \"\".concat(styles.prevNextButton, \" \").concat(_this.props.searchResults.totalSearchResults === 0 ? styles.disabled : ''), \"aria-label\": _this.props.searchResults.nextMatchLabel },\n (0, preact_1.h)(\"svg\", { width: \"8\", height: \"5\", viewBox: \"0 0 8 5\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": \"true\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M0.292893 0.292893C0.683417 -0.0976311 1.31658 -0.0976311 1.70711 0.292893L4 2.58579L6.29289 0.292893C6.68342 -0.0976311 7.31658 -0.0976311 7.70711 0.292893C8.09763 0.683417 8.09763 1.31658 7.70711 1.70711L4.70711 4.70711C4.31658 5.09763 3.68342 5.09763 3.29289 4.70711L0.292893 1.70711C-0.0976311 1.31658 -0.0976311 0.683417 0.292893 0.292893Z\", fill: \"white\", \"fill-opacity\": \"0.7\" }))))))));\n };\n _this._renderClearSearch = function () {\n return ((0, preact_1.h)(a11y_wrapper_1.A11yWrapper, { onClick: _this._onClear },\n (0, preact_1.h)(\"button\", { className: styles.clearIcon, tabIndex: 0, \"aria-label\": _this.props.clearSearchLabel },\n (0, preact_1.h)(\"svg\", { width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": \"true\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM3.38951 2.3502L3.46013 2.41264L5.99548 4.9504L8.53067 2.41264L8.60129 2.3502C8.89537 2.12125 9.32081 2.1418 9.59133 2.41199C9.8844 2.70471 9.88469 3.17958 9.59197 3.47265L7.05523 6.01165L9.59197 8.55189C9.88469 8.84496 9.8844 9.31983 9.59133 9.61255C9.32081 9.88275 8.89537 9.90329 8.60129 9.67434L8.53067 9.61191L5.99548 7.0729L3.46013 9.61191L3.38951 9.67434C3.09543 9.90329 2.66999 9.88275 2.39947 9.61255C2.1064 9.31983 2.10611 8.84496 2.39883 8.55189L4.93498 6.01165L2.39883 3.47265C2.10611 3.17958 2.1064 2.70471 2.39947 2.41199C2.66999 2.1418 3.09543 2.12125 3.38951 2.3502Z\", fill: \"white\", \"fill-opacity\": \"0.7\" })))));\n };\n _this.state = {\n active: false\n };\n return _this;\n }\n InputField.prototype.render = function () {\n var _this = this;\n var inputProps = {\n className: styles.inputElement,\n value: this.props.value,\n onInput: this._handleOnChange,\n onFocus: this._onFocus,\n onBlur: this._onBlur,\n tabIndex: 0,\n ref: function (node) {\n _this._inputRef = node;\n }\n };\n if (this.props.placeholder) {\n inputProps['aria-label'] = this.props.placeholder;\n inputProps['placeholder'] = this.props.placeholder;\n }\n return ((0, preact_1.h)(\"div\", { className: [styles.inputFieldWrapper, this.props.value || this.state.active ? styles.active : ''].join(' ') },\n (0, preact_1.h)(\"input\", __assign({}, inputProps)),\n this.props.value && this.props.clearSearchLabel && this._renderClearSearch(),\n this.props.value && this.props.searchResults && this._renderSearchResults()));\n };\n return InputField;\n}(preact_1.Component));\nexports.InputField = InputField;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.A11yWrapper = exports.isKeyboardEvent = void 0;\nvar preact_1 = require(\"preact\");\nvar kaltura_player_js_1 = require(\"@playkit-js/kaltura-player-js\");\nvar _a = kaltura_player_js_1.ui.utils.KeyMap, ENTER = _a.ENTER, SPACE = _a.SPACE, UP = _a.UP, DOWN = _a.DOWN, LEFT = _a.LEFT, RIGHT = _a.RIGHT;\nvar stopEvent = function (e) {\n e.preventDefault();\n e.stopPropagation();\n};\nvar isKeyboardEvent = function (e) {\n // space/enter keyEvent is swallowed by NVDA (https://github.com/nvaccess/nvda/issues/7898)\n // check offsetX and offsetY to define keyboard event triggered by NVDA\n return e instanceof KeyboardEvent || [e.offsetX, e.offsetY].every(function (offset) { return offset === 0; });\n};\nexports.isKeyboardEvent = isKeyboardEvent;\nvar A11yWrapper = function (_a) {\n var children = _a.children, onClick = _a.onClick, onUpKeyPressed = _a.onUpKeyPressed, onDownKeyPressed = _a.onDownKeyPressed, onLeftKeyPressed = _a.onLeftKeyPressed, onRightKeyPressed = _a.onRightKeyPressed, role = _a.role, type = _a.type;\n var props = {\n onKeyDown: function (e) {\n if (e.keyCode === SPACE || e.keyCode === ENTER) {\n stopEvent(e);\n onClick(e, true);\n }\n else if (e.keyCode === UP && onUpKeyPressed) {\n stopEvent(e);\n onUpKeyPressed(e);\n }\n else if (e.keyCode === DOWN && onDownKeyPressed) {\n stopEvent(e);\n onDownKeyPressed(e);\n }\n else if (e.keyCode === LEFT && onLeftKeyPressed) {\n stopEvent(e);\n onLeftKeyPressed(e);\n }\n else if (e.keyCode === RIGHT && onRightKeyPressed) {\n stopEvent(e);\n onRightKeyPressed(e);\n }\n },\n onClick: function (e) {\n onClick(e, (0, exports.isKeyboardEvent)(e));\n },\n role: role\n };\n if ((children === null || children === void 0 ? void 0 : children.type) === 'button') {\n props.type = type || 'button';\n }\n return (0, preact_1.cloneElement)(children, props);\n};\nexports.A11yWrapper = A11yWrapper;\nexports.A11yWrapper.defaultProps = {\n role: 'button'\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Add = void 0;\nvar preact_1 = require(\"preact\");\nvar Add = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M21.8083 4C22.4665 4 23 4.55964 23 5.25V18.75C23 19.4404 22.4665 20 21.8083 20H2.19167C1.53353 20 1 19.4404 1 18.75V5.25C1 4.55964 1.53353 4 2.19167 4H21.8083ZM15 6H3V18H15V6ZM12.999 8.967L13 9L12.998 8.94L12.999 8.967L13 9V15C13 15.5523 12.5523 16 12 16C11.4872 16 11.0645 15.614 11.0067 15.1166L11 15V11.414L6.70711 15.7071C6.34662 16.0676 5.77939 16.0953 5.3871 15.7903L5.29289 15.7071C4.93241 15.3466 4.90468 14.7794 5.2097 14.3871L5.29289 14.2929L9.584 10H6C5.48716 10 5.06449 9.61396 5.00673 9.11662L5 9C5 8.44772 5.44772 8 6 8L12.0193 8.00018C12.0427 8.00063 12.066 8.00189 12.0893 8.00397C12.1097 8.00575 12.1294 8.0081 12.149 8.01102C12.1659 8.01363 12.1834 8.0167 12.2007 8.02024C12.2227 8.02464 12.2444 8.02983 12.2658 8.03572C12.2815 8.0401 12.2969 8.04473 12.3121 8.04974C12.3318 8.05612 12.3516 8.06332 12.3711 8.0711L12.4232 8.09367C12.4439 8.10338 12.4643 8.11379 12.4843 8.12488C12.4964 8.1315 12.5086 8.13861 12.5207 8.146C12.5463 8.16172 12.5711 8.17849 12.5952 8.19631L12.6525 8.24221L12.6167 8.21279C12.6802 8.26255 12.7374 8.31982 12.7872 8.38325C12.7927 8.39016 12.7982 8.3974 12.8037 8.40469C12.8215 8.42887 12.8383 8.45372 12.8539 8.47934L12.8753 8.51594C12.8862 8.53571 12.8966 8.55611 12.9063 8.5769L12.9288 8.62866C12.9367 8.64842 12.9439 8.6682 12.9505 8.68826C12.9553 8.70315 12.9599 8.71854 12.9642 8.73401C12.9702 8.75556 12.9754 8.77725 12.9798 8.79921C12.9833 8.81662 12.9864 8.83405 12.989 8.85153L12.9972 8.92482L12.998 8.94L12.999 8.967Z\", fill: \"white\" }))); };\nexports.Add = Add;\n//# sourceMappingURL=add.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnswerOnAir = void 0;\nvar preact_1 = require(\"preact\");\nvar AnswerOnAir = function () { return ((0, preact_1.h)(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M5.99999 10C7.72605 10 11.1196 10.84 11.3237 12.5079L11.3333 12.6667V13.3333C11.3333 13.6667 11.0854 13.9449 10.7648 13.9927L10.6667 14H1.33332C0.99999 14 0.721753 13.7521 0.673919 13.4315L0.666656 13.3333V12.6667C0.666656 10.8933 4.21999 10 5.99999 10ZM13.9533 1.99333C15.7933 4.42667 15.7867 7.64667 13.9533 10.0067C13.6967 10.3428 13.2103 10.3932 12.8794 10.1476L12.7933 10.0733L12.7733 10.0533C12.5133 9.79333 12.4667 9.38 12.68 9.08C14.0067 7.18667 14.0133 4.74 12.7 2.91333C12.48 2.60667 12.52 2.19333 12.7867 1.92667C13.1133 1.6 13.6733 1.62667 13.9533 1.99333ZM5.99999 3.33333C7.47275 3.33333 8.66666 4.52724 8.66666 6C8.66666 7.47276 7.47275 8.66667 5.99999 8.66667C4.52723 8.66667 3.33332 7.47276 3.33332 6C3.33332 4.52724 4.52723 3.33333 5.99999 3.33333ZM11.7867 4.46C12.3067 5.46667 12.3067 6.6 11.8 7.56667C11.5635 8.02089 10.9728 8.12086 10.5808 7.8178L10.5 7.74667L10.48 7.72667C10.24 7.48667 10.1867 7.13333 10.3133 6.82C10.5267 6.29333 10.5267 5.70667 10.3133 5.18C10.2025 4.90583 10.2295 4.59594 10.3898 4.36643L10.4667 4.27333L10.4733 4.26667C10.8667 3.87333 11.5333 3.96667 11.7867 4.46Z\", fill: \"white\" }))); };\nexports.AnswerOnAir = AnswerOnAir;\n//# sourceMappingURL=answerOnAir.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrowClose = void 0;\nvar preact_1 = require(\"preact\");\nvar ArrowClose = function () { return ((0, preact_1.h)(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M7.5 21C5.01472 21 3 18.9853 3 16.5L3 7.5C3 5.01472 5.01472 3 7.5 3L16.5 3C18.9853 3 21 5.01472 21 7.5V16.5C21 18.9853 18.9853 21 16.5 21H7.5ZM8.625 17.625L14.25 17.625L14.3812 17.6174C14.9407 17.5524 15.375 17.0769 15.375 16.5C15.375 15.8787 14.8713 15.375 14.25 15.375L10.218 15.375L17.2955 8.2955L17.3891 8.18951C17.7322 7.74819 17.701 7.11005 17.2955 6.70451C16.8562 6.26517 16.1438 6.26517 15.7045 6.70451L8.625 13.7843L8.625 9.75L8.61743 9.6188C8.55245 9.0593 8.07694 8.625 7.5 8.625C6.87868 8.625 6.375 9.12868 6.375 9.75L6.375 15.375L6.38117 15.5429C6.46706 16.7071 7.43884 17.625 8.625 17.625Z\", fill: \"white\" }))); };\nexports.ArrowClose = ArrowClose;\n//# sourceMappingURL=arrowClose.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrowOpen = void 0;\nvar preact_1 = require(\"preact\");\nvar ArrowOpen = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M16.5 3C18.9853 3 21 5.01472 21 7.5V16.5C21 18.9853 18.9853 21 16.5 21H7.5C5.01472 21 3 18.9853 3 16.5V7.5C3 5.01472 5.01472 3 7.5 3H16.5ZM15.375 6.375H9.75L9.6188 6.38257C9.0593 6.44755 8.625 6.92306 8.625 7.5C8.625 8.12132 9.12868 8.625 9.75 8.625H13.782L6.7045 15.7045L6.61092 15.8105C6.26776 16.2518 6.29896 16.89 6.7045 17.2955C7.14384 17.7348 7.85616 17.7348 8.2955 17.2955L15.375 10.2158V14.25L15.3826 14.3812C15.4476 14.9407 15.9231 15.375 16.5 15.375C17.1213 15.375 17.625 14.8713 17.625 14.25V8.625L17.6188 8.45708C17.5329 7.29286 16.5612 6.375 15.375 6.375Z\", fill: \"white\" }))); };\nexports.ArrowOpen = ArrowOpen;\n//# sourceMappingURL=arrowOpen.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AutoScroll = void 0;\nvar preact_1 = require(\"preact\");\nvar AutoScroll = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": \"true\" },\n (0, preact_1.h)(\"path\", { d: \"M6.29289 15.2929C6.65338 14.9324 7.22061 14.9047 7.6129 15.2097L7.70711 15.2929L12 19.585L16.2929 15.2929C16.6534 14.9324 17.2206 14.9047 17.6129 15.2097L17.7071 15.2929C18.0676 15.6534 18.0953 16.2206 17.7903 16.6129L17.7071 16.7071L12.7071 21.7071C12.3466 22.0676 11.7794 22.0953 11.3871 21.7903L11.2929 21.7071L6.29289 16.7071C5.90237 16.3166 5.90237 15.6834 6.29289 15.2929Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { d: \"M17.7071 8.70711C17.3466 9.06759 16.7794 9.09532 16.3871 8.7903L16.2929 8.70711L12 4.415L7.70711 8.70711C7.34662 9.06759 6.77939 9.09532 6.3871 8.79029L6.29289 8.70711C5.93241 8.34662 5.90468 7.77939 6.2097 7.3871L6.29289 7.29289L11.2929 2.29289C11.6534 1.93241 12.2206 1.90468 12.6129 2.2097L12.7071 2.29289L17.7071 7.29289C18.0976 7.68342 18.0976 8.31658 17.7071 8.70711Z\", fill: \"white\" }),\n (0, preact_1.h)(\"rect\", { x: \"10\", y: \"10\", width: \"4\", height: \"4\", rx: \"2\", fill: \"white\" }))); };\nexports.AutoScroll = AutoScroll;\n//# sourceMappingURL=autoScroll.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Chapter = void 0;\nvar preact_1 = require(\"preact\");\nvar Chapter = function () { return ((0, preact_1.h)(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M4 4C4 3.44772 4.44772 3 5 3H11C11.5523 3 12 3.44772 12 4V13C12 13.824 11.0592 14.2944 10.4 13.8L8.6 12.45C8.24444 12.1833 7.75556 12.1833 7.4 12.45L5.6 13.8C4.94076 14.2944 4 13.824 4 13V4Z\", fill: \"white\" }))); };\nexports.Chapter = Chapter;\n//# sourceMappingURL=chapter.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Close = void 0;\nvar preact_1 = require(\"preact\");\nvar Close = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M11.6592 10.245L6.70483 5.29061C6.31701 4.9028 5.68581 4.90476 5.29528 5.29528C4.90204 5.68853 4.90267 6.31688 5.29061 6.70483L10.245 11.6592L5.29061 16.6137C4.9028 17.0015 4.90476 17.6327 5.29528 18.0232C5.68853 18.4165 6.31688 18.4158 6.70483 18.0279L11.6592 13.0735L16.6137 18.0279C17.0015 18.4157 17.6327 18.4137 18.0232 18.0232C18.4165 17.63 18.4158 17.0016 18.0279 16.6137L13.0735 11.6592L18.0279 6.70483C18.4157 6.31701 18.4137 5.68581 18.0232 5.29528C17.63 4.90204 17.0016 4.90267 16.6137 5.29061L11.6592 10.245Z\", fill: \"white\" }))); };\nexports.Close = Close;\n//# sourceMappingURL=close.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClosedCaptions = void 0;\nvar preact_1 = require(\"preact\");\nvar ClosedCaptions = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M3.53616 4C2.68845 4 2 4.68038 2 5.51967V18.4803C2 19.3125 2.68776 20 3.53616 20H20.4638C21.3116 20 22 19.3196 22 18.4803V5.51967C22 4.6875 21.3122 4 20.4638 4H3.53616ZM11.4852 13.4164C11.4852 13.6096 11.4297 13.8161 11.3186 14.0358C11.2074 14.2555 11.0381 14.4648 10.8104 14.6637C10.5827 14.8626 10.2958 15.0227 9.94978 15.1439C9.60371 15.2652 9.21394 15.3258 8.78045 15.3258C7.85882 15.3258 7.13938 15.0464 6.6221 14.4876C6.10483 13.9288 5.84619 13.1796 5.84619 12.2401C5.84619 11.6036 5.96458 11.041 6.20136 10.5523C6.43814 10.0636 6.78056 9.68567 7.22863 9.41858C7.67669 9.15149 8.21217 9.01794 8.83509 9.01794C9.22123 9.01794 9.57548 9.07667 9.89787 9.19411C10.2203 9.31155 10.4935 9.46309 10.7175 9.64873C10.9415 9.83436 11.1127 10.0323 11.2311 10.2426C11.3495 10.4528 11.4087 10.6489 11.4087 10.8307C11.4087 11.0164 11.3422 11.1736 11.2093 11.3024C11.0763 11.4312 10.9151 11.4956 10.7257 11.4956C10.6018 11.4956 10.4989 11.4625 10.417 11.3962C10.335 11.3299 10.243 11.2228 10.141 11.0751C9.95889 10.7872 9.76855 10.5712 9.57002 10.4273C9.37149 10.2833 9.11923 10.2113 8.81323 10.2113C8.37246 10.2113 8.01729 10.3903 7.74772 10.7483C7.47815 11.1064 7.34337 11.596 7.34337 12.2173C7.34337 12.509 7.37798 12.7771 7.44719 13.0214C7.51641 13.2658 7.61658 13.4742 7.74772 13.6465C7.87886 13.8189 8.03732 13.9496 8.2231 14.0386C8.40889 14.1277 8.61288 14.1722 8.83509 14.1722C9.1338 14.1722 9.3897 14.1002 9.60281 13.9562C9.81591 13.8123 10.0044 13.5925 10.1683 13.297C10.2594 13.1228 10.3578 12.9864 10.4634 12.8879C10.5691 12.7894 10.6984 12.7401 10.8514 12.7401C11.0335 12.7401 11.1847 12.8121 11.3049 12.9561C11.4251 13.1 11.4852 13.2535 11.4852 13.4164ZM18.1351 13.4164C18.1351 13.6096 18.0796 13.8161 17.9684 14.0358C17.8573 14.2555 17.688 14.4648 17.4603 14.6637C17.2326 14.8626 16.9457 15.0227 16.5997 15.1439C16.2536 15.2652 15.8638 15.3258 15.4303 15.3258C14.5087 15.3258 13.7893 15.0464 13.272 14.4876C12.7547 13.9288 12.4961 13.1796 12.4961 12.2401C12.4961 11.6036 12.6145 11.041 12.8513 10.5523C13.088 10.0636 13.4305 9.68567 13.8785 9.41858C14.3266 9.15149 14.8621 9.01794 15.485 9.01794C15.8711 9.01794 16.2254 9.07667 16.5478 9.19411C16.8702 9.31155 17.1434 9.46309 17.3674 9.64873C17.5914 9.83436 17.7626 10.0323 17.881 10.2426C17.9994 10.4528 18.0586 10.6489 18.0586 10.8307C18.0586 11.0164 17.9921 11.1736 17.8592 11.3024C17.7262 11.4312 17.565 11.4956 17.3756 11.4956C17.2517 11.4956 17.1488 11.4625 17.0669 11.3962C16.9849 11.3299 16.8929 11.2228 16.7909 11.0751C16.6088 10.7872 16.4184 10.5712 16.2199 10.4273C16.0214 10.2833 15.7691 10.2113 15.4631 10.2113C15.0223 10.2113 14.6672 10.3903 14.3976 10.7483C14.128 11.1064 13.9933 11.596 13.9933 12.2173C13.9933 12.509 14.0279 12.7771 14.0971 13.0214C14.1663 13.2658 14.2665 13.4742 14.3976 13.6465C14.5288 13.8189 14.6872 13.9496 14.873 14.0386C15.0588 14.1277 15.2628 14.1722 15.485 14.1722C15.7837 14.1722 16.0396 14.1002 16.2527 13.9562C16.4658 13.8123 16.6543 13.5925 16.8182 13.297C16.9093 13.1228 17.0077 12.9864 17.1133 12.8879C17.2189 12.7894 17.3483 12.7401 17.5013 12.7401C17.6834 12.7401 17.8346 12.8121 17.9548 12.9561C18.075 13.1 18.1351 13.2535 18.1351 13.4164Z\", fill: \"white\" }))); };\nexports.ClosedCaptions = ClosedCaptions;\n//# sourceMappingURL=closedCaptions.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Document = void 0;\nvar preact_1 = require(\"preact\");\nvar Document = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6 2H9.82843H14.1716H18C19.1046 2 20 2.89543 20 4V7.82843V20C20 21.1046 19.1046 22 18 22H6C4.89543 22 4 21.1046 4 20V7.82843V4C4 2.89543 4.89543 2 6 2ZM13 16C13 15.4477 12.5523 15 12 15H8C7.44772 15 7 15.4477 7 16C7 16.5523 7.44772 17 8 17H12C12.5523 17 13 16.5523 13 16ZM17 12C17 11.4477 16.5523 11 16 11H8C7.44772 11 7 11.4477 7 12C7 12.5523 7.44772 13 8 13H16C16.5523 13 17 12.5523 17 12ZM17 8C17 7.44772 16.5523 7 16 7H8C7.44772 7 7 7.44772 7 8C7 8.55228 7.44772 9 8 9H16C16.5523 9 17 8.55228 17 8Z\", fill: \"white\" }))); };\nexports.Document = Document;\n//# sourceMappingURL=document.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Download = void 0;\nvar preact_1 = require(\"preact\");\nvar Download = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M17.5 6C17.5 5.44772 17.0523 5 16.5 5L16.3834 5.00673C15.886 5.06449 15.5 5.48716 15.5 6L15.4997 17.693L9.71029 12.2702C9.30721 11.8926 8.67439 11.9133 8.29683 12.3164C7.91928 12.7195 7.93998 13.3523 8.34306 13.7298L15.8164 20.7298C15.8212 20.7343 15.826 20.7387 15.8308 20.7431L15.8164 20.7298L15.9035 20.8027C15.9034 20.8026 15.9037 20.8028 15.9035 20.8027C15.9135 20.8101 15.9231 20.817 15.9333 20.824C15.956 20.8397 15.9793 20.8544 16.0038 20.8684C16.0148 20.8747 16.0259 20.8808 16.0366 20.8864C16.0596 20.8984 16.0832 20.9096 16.1077 20.9201C16.1223 20.9263 16.1371 20.9322 16.1515 20.9376C16.1769 20.947 16.2028 20.9555 16.2299 20.963C16.2399 20.9658 16.25 20.9684 16.2595 20.9709C16.3365 20.9899 16.4171 21 16.5 21C16.5804 21 16.6585 20.9905 16.7336 20.9725C16.7521 20.968 16.7706 20.963 16.7889 20.9576C16.8097 20.9514 16.8303 20.9444 16.8507 20.9367C16.8632 20.932 16.8756 20.9271 16.8878 20.922C16.9121 20.9118 16.936 20.9006 16.9596 20.8883C16.9735 20.8812 16.9872 20.8736 17.0007 20.8658C17.0223 20.8533 17.0434 20.84 17.0636 20.8262C17.0764 20.8174 17.0891 20.8083 17.1021 20.7985C17.1224 20.7831 17.1422 20.767 17.161 20.7504C17.1685 20.7437 17.176 20.737 17.1834 20.7301L24.6619 13.7301C25.0651 13.3527 25.086 12.7198 24.7086 12.3166L24.6172 12.2304C24.2352 11.9126 23.6674 11.9215 23.2952 12.2699L17.4997 17.694L17.5 6Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { d: \"M27 26C27 26.5523 26.5523 27 26 27H7C6.44772 27 6 26.5523 6 26C6 25.4477 6.44772 25 7 25H26C26.5523 25 27 25.4477 27 26Z\", fill: \"white\" }))); };\nexports.Download = Download;\n//# sourceMappingURL=download.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Excel = void 0;\nvar preact_1 = require(\"preact\");\nvar Excel = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M22 6C22 4.89543 21.1046 4 20 4H4C2.89543 4 2 4.89543 2 6V18C2 19.1046 2.89543 20 4 20H20C21.1046 20 22 19.1046 22 18V6ZM8 16C8 15.4477 7.55228 15 7 15H5C4.44772 15 4 15.4477 4 16C4 16.5523 4.44772 17 5 17H7C7.55228 17 8 16.5523 8 16ZM14 16C14 15.4477 13.5523 15 13 15H11C10.4477 15 10 15.4477 10 16C10 16.5523 10.4477 17 11 17H13C13.5523 17 14 16.5523 14 16ZM8 12C8 11.4477 7.55228 11 7 11H5C4.44772 11 4 11.4477 4 12C4 12.5523 4.44772 13 5 13H7C7.55228 13 8 12.5523 8 12ZM14 12C14 11.4477 13.5523 11 13 11H11C10.4477 11 10 11.4477 10 12C10 12.5523 10.4477 13 11 13H13C13.5523 13 14 12.5523 14 12ZM8 8C8 7.44772 7.55228 7 7 7H5C4.44772 7 4 7.44772 4 8C4 8.55228 4.44772 9 5 9H7C7.55228 9 8 8.55228 8 8ZM14 8C14 7.44772 13.5523 7 13 7H11C10.4477 7 10 7.44772 10 8C10 8.55228 10.4477 9 11 9H13C13.5523 9 14 8.55228 14 8ZM19 17H17C16.4477 17 16 16.5523 16 16C16 15.4477 16.4477 15 17 15H19C19.5523 15 20 15.4477 20 16C20 16.5523 19.5523 17 19 17ZM17 13H19C19.5523 13 20 12.5523 20 12C20 11.4477 19.5523 11 19 11H17C16.4477 11 16 11.4477 16 12C16 12.5523 16.4477 13 17 13ZM19 9H17C16.4477 9 16 8.55228 16 8C16 7.44772 16.4477 7 17 7H19C19.5523 7 20 7.44772 20 8C20 8.55228 19.5523 9 19 9Z\", fill: \"white\" }))); };\nexports.Excel = Excel;\n//# sourceMappingURL=excel.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Expand = void 0;\nvar preact_1 = require(\"preact\");\nvar Expand = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M20.997 3.924L20.998 3.945L20.999 3.98L21 4V10C21 10.5523 20.5523 11 20 11C19.4872 11 19.0645 10.614 19.0067 10.1166L19 10V6.416L14.7071 10.7071C14.3466 11.0676 13.7794 11.0953 13.3871 10.7903L13.2929 10.7071C12.9324 10.3466 12.9047 9.77939 13.2097 9.3871L13.2929 9.29289L17.586 5H14C13.4872 5 13.0645 4.61396 13.0067 4.11662L13 4C13 3.48716 13.386 3.06449 13.8834 3.00673L14 3L20.0332 3.00054C20.0503 3.00109 20.0683 3.00216 20.0862 3.0037C20.1079 3.00553 20.1285 3.00797 20.149 3.01102C20.166 3.01363 20.1834 3.0167 20.2007 3.02024C20.2227 3.02464 20.2444 3.02983 20.2658 3.03572C20.2815 3.0401 20.2969 3.04473 20.3121 3.04974C20.3318 3.05612 20.3516 3.06332 20.3711 3.0711L20.4232 3.09367C20.4439 3.10338 20.4643 3.11379 20.4843 3.12488C20.4964 3.1315 20.5086 3.13861 20.5207 3.146C20.5463 3.16172 20.5711 3.17849 20.5952 3.19631L20.6525 3.24221L20.6168 3.21279C20.6802 3.26255 20.7374 3.31982 20.7872 3.38325C20.7927 3.39016 20.7982 3.3974 20.8037 3.40469C20.8215 3.42887 20.8383 3.45373 20.8539 3.47934L20.8753 3.51594C20.8862 3.53571 20.8966 3.55611 20.9063 3.5769L20.9288 3.62866C20.9367 3.64842 20.9439 3.6682 20.9505 3.68826C20.9553 3.70315 20.9599 3.71854 20.9642 3.73401C20.9702 3.75556 20.9754 3.77725 20.9798 3.79921C20.9833 3.81662 20.9864 3.83405 20.989 3.85153L20.996 3.91075L20.996 3.919L20.997 3.921V3.924ZM3.002 20.059V20.071L3.00175 20.0593C3.00122 20.0503 3.00081 20.0413 3.00052 20.0323L3 14C3 13.4477 3.44772 13 4 13C4.51284 13 4.93551 13.386 4.99327 13.8834L5 14V17.586L9.29289 13.2929C9.65338 12.9324 10.2206 12.9047 10.6129 13.2097L10.7071 13.2929C11.0676 13.6534 11.0953 14.2206 10.7903 14.6129L10.7071 14.7071L6.416 19H10C10.5128 19 10.9355 19.386 10.9933 19.8834L11 20C11 20.5128 10.614 20.9355 10.1166 20.9933L10 21H4C3.99354 21 3.98709 20.9999 3.98066 20.9998C3.95732 20.9994 3.93401 20.9981 3.91075 20.996C3.89031 20.9943 3.87058 20.9919 3.85104 20.989C3.83405 20.9864 3.81662 20.9833 3.79927 20.9798C3.77725 20.9754 3.75556 20.9702 3.73416 20.9643C3.71854 20.9599 3.70315 20.9553 3.68786 20.9503C3.6682 20.9439 3.64842 20.9367 3.62894 20.9289L3.57678 20.9063C3.55611 20.8966 3.53571 20.8862 3.51572 20.8751C3.50361 20.8685 3.49139 20.8614 3.47929 20.854C3.45373 20.8383 3.42887 20.8215 3.40484 20.8037L3.34745 20.7578L3.38325 20.7872C3.31982 20.7374 3.26255 20.6802 3.21279 20.6168C3.20728 20.6098 3.20175 20.6026 3.19633 20.5953C3.17849 20.5711 3.16172 20.5463 3.14607 20.5207L3.12467 20.4841C3.11379 20.4643 3.10338 20.4439 3.09365 20.4231L3.07123 20.3713C3.06332 20.3516 3.05612 20.3318 3.04955 20.3117C3.04473 20.2969 3.0401 20.2815 3.03585 20.266C3.02983 20.2444 3.02464 20.2227 3.02017 20.2008C3.0167 20.1834 3.01363 20.1659 3.01102 20.1485L3.0037 20.0862L3.002 20.059Z\", fill: \"white\" }))); };\nexports.Expand = Expand;\n//# sourceMappingURL=expand.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GenericFile = void 0;\nvar preact_1 = require(\"preact\");\nvar GenericFile = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6 2C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V7.82843C20 7.29799 19.7893 6.78929 19.4142 6.41421L15.5858 2.58579C15.2107 2.21071 14.702 2 14.1716 2H6ZM14.3657 4.36569C13.8617 3.86171 13 4.21865 13 4.93137V8.2C13 8.64183 13.3582 9 13.8 9H17.0686C17.7814 9 18.1383 8.13829 17.6343 7.63431L14.3657 4.36569Z\", fill: \"white\" }))); };\nexports.GenericFile = GenericFile;\n//# sourceMappingURL=genericFile.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Hotspot = void 0;\nvar preact_1 = require(\"preact\");\nvar Hotspot = function () { return ((0, preact_1.h)(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6.5 2C6.11537 2 5.79837 2.28953 5.75505 2.66253L5.75 2.75V3.5C5.75 3.91421 6.08579 4.25 6.5 4.25C6.88463 4.25 7.20163 3.96047 7.24495 3.58747L7.25 3.5V2.75C7.25 2.33579 6.91421 2 6.5 2ZM11.7955 3.8295C11.5235 3.55753 11.0946 3.53811 10.8003 3.77123L10.7348 3.8295L10.2045 4.35984C9.91161 4.65273 9.91161 5.1276 10.2045 5.4205C10.4765 5.69247 10.9054 5.71189 11.1997 5.47878L11.2652 5.4205L11.7955 4.89016C12.0884 4.59727 12.0884 4.1224 11.7955 3.8295ZM3.4545 12.1705C3.72648 12.4425 4.15536 12.4619 4.44975 12.2288L4.51516 12.1705L5.0455 11.6402C5.33839 11.3473 5.33839 10.8724 5.0455 10.5795C4.77352 10.3075 4.34464 10.2881 4.05025 10.5212L3.98484 10.5795L3.4545 11.1098C3.16161 11.4027 3.16161 11.8776 3.4545 12.1705ZM6.53592 6.98358C6.65797 6.61718 7.05316 6.41577 7.4186 6.53371L13.5234 8.50394C13.6272 8.53745 13.7214 8.59497 13.7983 8.67186C14.0693 8.94255 14.0669 9.38382 13.793 9.65748L12.8998 10.5499C12.7787 10.6708 12.7713 10.8642 12.8828 10.9915L13.6084 11.8185C14.0177 12.3362 13.9793 13.0939 13.4958 13.5769L13.4659 13.6069C12.9452 14.127 12.1056 14.1316 11.5906 13.6171L10.9802 12.9207C10.8554 12.7952 10.6516 12.7959 10.525 12.9224L9.66058 13.786C9.58277 13.8638 9.48795 13.9223 9.38376 13.957C9.01702 14.0789 8.624 13.8818 8.50593 13.5167L6.53356 7.41792C6.48802 7.27709 6.48885 7.12492 6.53592 6.98358ZM3.5 5.75C3.91421 5.75 4.25 6.08579 4.25 6.5C4.25 6.91421 3.91421 7.25 3.5 7.25H2.75C2.33579 7.25 2 6.91421 2 6.5C2 6.08579 2.33579 5.75 2.75 5.75H3.5Z\", fill: \"white\" }))); };\nexports.Hotspot = Hotspot;\n//# sourceMappingURL=hotspot.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Image = void 0;\nvar preact_1 = require(\"preact\");\nvar Image = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M20 4C21.1046 4 22 4.89543 22 6V18C22 19.1046 21.1046 20 20 20H4C2.89543 20 2 19.1046 2 18V6C2 4.89543 2.89543 4 4 4H20ZM13.4658 9.8483C13.739 9.41452 14.1763 9.3854 14.4736 9.76788L14.5351 9.85614L18.2077 15.7324C18.6176 16.3882 18.3599 16.9391 17.6281 16.9953L17.5018 17H6.49825C5.71856 17 5.40843 16.498 5.77171 15.8584L5.83853 15.7506L8.44382 11.8687C8.72793 11.4454 9.26701 11.3331 9.6897 11.5934L9.785 11.6602L10.696 12.3798C11.1046 12.7026 11.6375 12.6332 11.9477 12.2465L12.0152 12.1517L13.4658 9.8483ZM9 8.5C9 7.672 8.328 7 7.5 7C6.672 7 6 7.672 6 8.5C6 9.329 6.672 10 7.5 10C8.328 10 9 9.329 9 8.5Z\", fill: \"white\" }))); };\nexports.Image = Image;\n//# sourceMappingURL=image.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Icons = void 0;\nvar close_1 = require(\"./close\");\nvar print_1 = require(\"./print\");\nvar download_1 = require(\"./download\");\nvar related_1 = require(\"./related\");\nvar message_1 = require(\"./message\");\nvar share_1 = require(\"./share\");\nvar more_1 = require(\"./more\");\nvar quiz_1 = require(\"./quiz\");\nvar switch_1 = require(\"./switch\");\nvar add_1 = require(\"./add\");\nvar minimizedVideo_1 = require(\"./minimizedVideo\");\nvar pictureInPicture_1 = require(\"./pictureInPicture\");\nvar expand_1 = require(\"./expand\");\nvar arrowOpen_1 = require(\"./arrowOpen\");\nvar arrowClose_1 = require(\"./arrowClose\");\nvar chapter_1 = require(\"./chapter\");\nvar hotspot_1 = require(\"./hotspot\");\nvar answerOnAir_1 = require(\"./answerOnAir\");\nvar screenRotation_1 = require(\"./screenRotation\");\nvar autoScroll_1 = require(\"./autoScroll\");\nvar replay_1 = require(\"./replay\");\nvar closedCaptions_1 = require(\"./closedCaptions\");\nvar genericFile_1 = require(\"./genericFile\");\nvar presentation_1 = require(\"./presentation\");\nvar image_1 = require(\"./image\");\nvar document_1 = require(\"./document\");\nvar excel_1 = require(\"./excel\");\nvar pdf_1 = require(\"./pdf\");\nvar zip_1 = require(\"./zip\");\nvar volumeOn_1 = require(\"./volumeOn\");\nvar volumeMute_1 = require(\"./volumeMute\");\nvar spinner_1 = require(\"./spinner\");\nexports.Icons = {\n close: close_1.Close,\n print: print_1.Print,\n download: download_1.Download,\n related: related_1.Related,\n message: message_1.Message,\n share: share_1.Share,\n more: more_1.More,\n quiz: quiz_1.QuizIcon,\n switch: switch_1.Switch,\n add: add_1.Add,\n minimizedVideo: minimizedVideo_1.MinimizedVideo,\n pictureInPicture: pictureInPicture_1.PictureInPicture,\n expand: expand_1.Expand,\n arrowOpen: arrowOpen_1.ArrowOpen,\n arrowClose: arrowClose_1.ArrowClose,\n chapter: chapter_1.Chapter,\n hotspot: hotspot_1.Hotspot,\n answerOnAir: answerOnAir_1.AnswerOnAir,\n screenRotation: screenRotation_1.ScreenRotation,\n autoScroll: autoScroll_1.AutoScroll,\n replay: replay_1.ReplayIcon,\n closedCaptions: closedCaptions_1.ClosedCaptions,\n genericFile: genericFile_1.GenericFile,\n presentation: presentation_1.Presentation,\n image: image_1.Image,\n document: document_1.Document,\n excel: excel_1.Excel,\n pdf: pdf_1.PDF,\n zip: zip_1.Zip,\n volumeOn: volumeOn_1.VolumeOn,\n volumeMute: volumeMute_1.VolumeMute,\n spinner: spinner_1.Spinner\n};\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Message = void 0;\nvar preact_1 = require(\"preact\");\nvar Message = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M25 5C27.2091 5 29 6.75035 29 8.90952V18.6833C29 20.8425 27.2091 22.5928 25 22.5928H14.985L10.7019 26.7188C10.546 26.8689 10.3449 26.9641 10.1302 26.9917L10 27C9.44772 27 9 26.5624 9 26.0226V22.5928H7C4.79086 22.5928 3 20.8425 3 18.6833V8.90952C3 6.75035 4.79086 5 7 5H25ZM25 6.95476H7C5.89543 6.95476 5 7.82994 5 8.90952V18.6833C5 19.7629 5.89543 20.6381 7 20.6381H11V23.687L14.1651 20.6381H25C26.1046 20.6381 27 19.7629 27 18.6833V8.90952C27 7.82994 26.1046 6.95476 25 6.95476ZM19 14.7738C19.5523 14.7738 20 15.2114 20 15.7512C20 16.291 19.5523 16.7286 19 16.7286H10C9.44772 16.7286 9 16.291 9 15.7512C9 15.2114 9.44772 14.7738 10 14.7738H19ZM23 10.8643C23.5523 10.8643 24 11.3019 24 11.8417C24 12.3815 23.5523 12.819 23 12.819H10C9.44772 12.819 9 12.3815 9 11.8417C9 11.3019 9.44772 10.8643 10 10.8643H23Z\", fill: \"white\" }))); };\nexports.Message = Message;\n//# sourceMappingURL=message.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MinimizedVideo = void 0;\nvar preact_1 = require(\"preact\");\nvar MinimizedVideo = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M5.25 4.5H18.75C19.9926 4.5 21 5.50736 21 6.75V17.25C21 18.4926 19.9926 19.5 18.75 19.5H5.25C4.00736 19.5 3 18.4926 3 17.25V6.75C3 5.50736 4.00736 4.5 5.25 4.5ZM5.25 6C4.83579 6 4.5 6.33579 4.5 6.75V17.25C4.5 17.6642 4.83579 18 5.25 18H18.75C19.1642 18 19.5 17.6642 19.5 17.25V6.75C19.5 6.33579 19.1642 6 18.75 6H5.25ZM13 12C12.4477 12 12 12.4477 12 13V15.5C12 16.0523 12.4477 16.5 13 16.5H17C17.5523 16.5 18 16.0523 18 15.5V13C18 12.4477 17.5523 12 17 12H13Z\", fill: \"white\" }))); };\nexports.MinimizedVideo = MinimizedVideo;\n//# sourceMappingURL=minimizedVideo.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.More = void 0;\nvar preact_1 = require(\"preact\");\nvar More = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-hidden\": \"true\" },\n (0, preact_1.h)(\"path\", { d: \"M8 12C8 13.1046 7.10457 14 6 14C4.89543 14 4 13.1046 4 12C4 10.8954 4.89543 10 6 10C7.10457 10 8 10.8954 8 12ZM14 12C14 13.1046 13.1046 14 12 14C10.8954 14 10 13.1046 10 12C10 10.8954 10.8954 10 12 10C13.1046 10 14 10.8954 14 12ZM20 12C20 13.1046 19.1046 14 18 14C16.8954 14 16 13.1046 16 12C16 10.8954 16.8954 10 18 10C19.1046 10 20 10.8954 20 12Z\", fill: \"white\" }))); };\nexports.More = More;\n//# sourceMappingURL=more.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PDF = void 0;\nvar preact_1 = require(\"preact\");\nvar PDF = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M16.2428 13.7325C17.4357 13.7542 18.6185 13.8543 19.7692 14.1927C20.2755 14.3415 20.7634 14.5301 21.1919 14.8459C22.0863 15.5045 22.2575 16.5466 21.6176 17.4515C20.9502 18.3952 19.8553 18.72 18.699 18.3321C17.8678 18.0533 17.1473 17.5995 16.5083 17.0166C15.915 16.4753 15.3392 15.9159 14.7469 15.3728C14.6746 15.3069 14.5482 15.2591 14.4503 15.2645C13.1247 15.3448 11.8091 15.509 10.5119 15.7995C10.0065 15.9123 9.50577 16.0458 9.00867 16.1884C8.9162 16.2146 8.82374 16.3138 8.77522 16.4031C8.07579 17.6978 7.33425 18.9672 6.42427 20.1329C5.98118 20.7004 5.49231 21.2273 4.87985 21.6261C3.70346 22.3912 2.4932 21.9482 2.10595 20.6075C1.88074 19.828 2.01715 19.1098 2.49045 18.4458C3.25945 17.3658 4.29212 16.5917 5.46301 15.998C6.15878 15.6453 6.89849 15.3755 7.61256 15.0561C7.72516 15.0056 7.84509 14.9081 7.89911 14.8017C8.68916 13.2489 9.37486 11.6511 9.98182 10.0199C10.0386 9.86741 10.023 9.75825 9.93879 9.62562C9.17254 8.42205 8.68001 7.12375 8.59212 5.69644C8.52987 4.68865 8.64431 3.71155 9.23845 2.84631C9.8207 1.99822 10.8058 1.74831 11.6059 2.27611C12.2705 2.71459 12.6788 3.33712 12.7594 4.13649C12.8656 5.19209 12.6788 6.22063 12.4216 7.23743C12.2357 7.97275 12.0087 8.69813 11.7899 9.42532C11.7487 9.56246 11.7643 9.659 11.8494 9.77629C12.8399 11.1441 13.9632 12.4018 15.147 13.608C15.2156 13.6784 15.341 13.7217 15.4427 13.7289C15.7081 13.7434 15.9755 13.7325 16.2428 13.7325ZM9.79415 14.3894C10.9486 14.1981 12.0792 14.0104 13.2171 13.8219C12.5168 13.0017 11.8155 12.1798 11.1069 11.3507C10.6648 12.3738 10.2327 13.3735 9.79415 14.3894ZM10.7133 7.76704C10.7591 7.60103 10.8058 7.43592 10.8497 7.26901C11.0777 6.4101 11.3029 5.54937 11.2855 4.65347C11.2809 4.40716 11.2141 4.14551 11.1079 3.92176C11.0319 3.76207 10.8424 3.65471 10.7041 3.52388C10.5833 3.67095 10.4267 3.80267 10.3471 3.96868C10.1137 4.45588 10.0834 4.98458 10.1127 5.51329C10.1576 6.29912 10.3379 7.05428 10.7133 7.76704ZM6.60279 17.0942C5.92899 17.4163 5.3083 17.7592 4.77915 18.2283C4.40197 18.563 4.06233 18.942 3.73642 19.3272C3.48832 19.6204 3.46452 19.9696 3.62931 20.3242C3.70438 20.4866 3.80233 20.5461 3.96071 20.427C4.11817 20.3088 4.28662 20.2015 4.42852 20.068C5.31471 19.2334 5.95097 18.2148 6.58356 17.1944C6.59546 17.1763 6.59272 17.152 6.60279 17.0942ZM16.8937 15.2762C17.54 15.9394 18.2166 16.5529 19.1055 16.8678C19.3087 16.9399 19.5358 16.9715 19.7518 16.9724C20.0594 16.9742 20.4055 16.6792 20.4503 16.3842C20.497 16.0792 20.2233 15.9998 20.0237 15.9033C19.0396 15.426 17.9685 15.3484 16.8937 15.2762Z\", fill: \"white\" }))); };\nexports.PDF = PDF;\n//# sourceMappingURL=pdf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PictureInPicture = void 0;\nvar preact_1 = require(\"preact\");\nvar PictureInPicture = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M18.75 4.5H5.25C4.00736 4.5 3 5.50736 3 6.75V17.25C3 18.4926 4.00736 19.5 5.25 19.5H18.75C19.9926 19.5 21 18.4926 21 17.25V6.75C21 5.50736 19.9926 4.5 18.75 4.5ZM13 12C12.4477 12 12 12.4477 12 13V15.5C12 16.0523 12.4477 16.5 13 16.5H17C17.5523 16.5 18 16.0523 18 15.5V13C18 12.4477 17.5523 12 17 12H13Z\", fill: \"white\" }))); };\nexports.PictureInPicture = PictureInPicture;\n//# sourceMappingURL=pictureInPicture.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Presentation = void 0;\nvar preact_1 = require(\"preact\");\nvar Presentation = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6 4C4.34315 4 3 5.34315 3 7V17C3 18.6569 4.34315 20 6 20H18C19.6569 20 21 18.6569 21 17V7C21 5.34315 19.6569 4 18 4H6ZM18 8H6V16H18V8Z\", fill: \"white\" }))); };\nexports.Presentation = Presentation;\n//# sourceMappingURL=presentation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Print = void 0;\nvar preact_1 = require(\"preact\");\nvar Print = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M23 23H26C27.1046 23 28 22.1046 28 21V11C28 9.89543 27.1046 9 26 9H23V5C23 3.89543 22.1046 3 21 3H11C9.89543 3 9 3.89543 9 5V9H6C4.89543 9 4 9.89543 4 11V21C4 22.1046 4.89543 23 6 23H9V28C9 29.1046 9.89543 30 11 30H21C22.1046 30 23 29.1046 23 28V23ZM6 11V21H9V19C8.44772 19 8 18.5523 8 18C8 17.4477 8.44772 17 9 17H23C23.5523 17 24 17.4477 24 18C24 18.5523 23.5523 19 23 19V21H26V11H6ZM21 9V5H11V9H21ZM11 19V28H21V19H11Z\", fill: \"white\" }))); };\nexports.Print = Print;\n//# sourceMappingURL=print.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuizIcon = void 0;\nvar preact_1 = require(\"preact\");\nvar QuizIcon = function () {\n return ((0, preact_1.h)(\"svg\", { width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8.49857 2.11499L12.7442 4.2052C12.9162 4.28987 12.9812 4.48721 12.8895 4.64597C12.8594 4.69807 12.8145 4.74163 12.7597 4.77201L8.54484 7.10634C8.20953 7.29205 7.79063 7.29205 7.45532 7.10634L3.2405 4.77202C3.07335 4.67945 3.01915 4.47933 3.11944 4.32505C3.15235 4.27441 3.19956 4.23299 3.256 4.2052L7.50203 2.11498C7.81345 1.96167 8.18715 1.96168 8.49857 2.11499ZM14 6.02878V10.7642C14 11.1075 13.8049 11.4256 13.486 11.6022L9.24043 13.9536C9.07328 14.0461 8.85649 13.9961 8.7562 13.8418C8.72329 13.7912 8.7059 13.7333 8.7059 13.6742V8.93882C8.7059 8.59551 8.90104 8.27738 9.21997 8.10075L13.4655 5.74942C13.6326 5.65685 13.8494 5.70688 13.9497 5.86116C13.9826 5.91179 14 5.96973 14 6.02878ZM6.5145 8.31192L2.50483 6.04476C2.45303 6.01547 2.39375 6 2.33333 6C2.14924 6 2 6.14064 2 6.31412V10.88C2 11.211 2.1843 11.5178 2.4855 11.6881L6.49517 13.9552C6.54697 13.9845 6.60625 14 6.66667 14C6.85076 14 7 13.8594 7 13.6859V9.12C7 8.78898 6.8157 8.48223 6.5145 8.31192Z\", fill: \"white\" })));\n};\nexports.QuizIcon = QuizIcon;\n//# sourceMappingURL=quiz.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Related = void 0;\nvar preact_1 = require(\"preact\");\nvar Related = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8 7H12C13.1046 7 14 7.89543 14 9V13C14 14.1046 13.1046 15 12 15H8C6.89543 15 6 14.1046 6 13V9C6 7.89543 6.89543 7 8 7ZM8 13H12V9H8V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M8 18H12C13.1046 18 14 18.8954 14 20V24C14 25.1046 13.1046 26 12 26H8C6.89543 26 6 25.1046 6 24V20C6 18.8954 6.89543 18 8 18ZM8 24H12V20H8V24Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M24 7H20C18.8954 7 18 7.89543 18 9V13C18 14.1046 18.8954 15 20 15H24C25.1046 15 26 14.1046 26 13V9C26 7.89543 25.1046 7 24 7ZM24 13H20V9H24V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M20 18H24C25.1046 18 26 18.8954 26 20V24C26 25.1046 25.1046 26 24 26H20C18.8954 26 18 25.1046 18 24V20C18 18.8954 18.8954 18 20 18ZM20 24H24V20H20V24Z\", fill: \"white\" }))); };\nexports.Related = Related;\n//# sourceMappingURL=related.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReplayIcon = void 0;\nvar preact_1 = require(\"preact\");\nvar ReplayIcon = function () {\n return ((0, preact_1.h)(\"svg\", { width: \"33\", height: \"32\", viewBox: \"0 0 33 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"g\", { opacity: \"0.8\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M11.5 7.50049C8.73858 7.50049 6.5 9.73906 6.5 12.5005V16.5005C6.5 19.2619 8.73858 21.5005 11.5 21.5005H13.0858L11.7929 22.7934C11.4024 23.1839 11.4024 23.8171 11.7929 24.2076C12.1834 24.5981 12.8166 24.5981 13.2071 24.2076L16.2071 21.2076C16.5976 20.8171 16.5976 20.1839 16.2071 19.7934L13.2071 16.7934C12.8166 16.4029 12.1834 16.4029 11.7929 16.7934C11.4024 17.1839 11.4024 17.8171 11.7929 18.2076L13.0858 19.5005H11.5C9.84315 19.5005 8.5 18.1573 8.5 16.5005V12.5005C8.5 10.8436 9.84315 9.50049 11.5 9.50049H21.5C23.1569 9.50049 24.5 10.8436 24.5 12.5005V16.5005C24.5 18.1573 23.1569 19.5005 21.5 19.5005H20C19.4477 19.5005 19 19.9482 19 20.5005C19 21.0528 19.4477 21.5005 20 21.5005H21.5C24.2614 21.5005 26.5 19.2619 26.5 16.5005V12.5005C26.5 9.73906 24.2614 7.50049 21.5 7.50049H11.5Z\", fill: \"white\" }))));\n};\nexports.ReplayIcon = ReplayIcon;\n//# sourceMappingURL=replay.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScreenRotation = void 0;\nvar preact_1 = require(\"preact\");\nvar ScreenRotation = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M12 3C12 2.44772 12.4477 2 13 2C17.9706 2 22 6.02944 22 11C22 11.5523 21.5523 12 21 12C20.4477 12 20 11.5523 20 11C20 7.13401 16.866 4 13 4C12.4477 4 12 3.55228 12 3ZM10.6569 7.82843L7.82843 10.6569L13.4853 16.3137L16.3137 13.4853L10.6569 7.82843ZM12.0711 6.41421C11.29 5.63317 10.0237 5.63317 9.24265 6.41421L6.41422 9.24264C5.63317 10.0237 5.63317 11.29 6.41422 12.0711L12.0711 17.7279C12.8521 18.509 14.1185 18.509 14.8995 17.7279L17.7279 14.8995C18.509 14.1184 18.509 12.8521 17.7279 12.0711L12.0711 6.41421ZM11 22C11.5523 22 12 21.5523 12 21C12 20.4477 11.5523 20 11 20C7.13401 20 4 16.866 4 13C4 12.4477 3.55228 12 3 12C2.44771 12 2 12.4477 2 13C2 17.9706 6.02944 22 11 22Z\", fill: \"white\" }))); };\nexports.ScreenRotation = ScreenRotation;\n//# sourceMappingURL=screenRotation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Share = void 0;\nvar preact_1 = require(\"preact\");\nvar Share = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M22.6667 12.6667C24.5076 12.6667 26 11.1743 26 9.33333C26 7.49238 24.5076 6 22.6667 6C20.8257 6 19.3333 7.49238 19.3333 9.33333C19.3333 9.38882 19.3347 9.44399 19.3374 9.49881L11.9575 13.9443C11.3473 13.1665 10.3987 12.6667 9.33333 12.6667C7.49238 12.6667 6 14.1591 6 16C6 17.8409 7.49238 19.3333 9.33333 19.3333C10.3981 19.3333 11.3462 18.8341 11.9564 18.057L19.3374 22.5013C19.3347 22.5561 19.3333 22.6112 19.3333 22.6667C19.3333 24.5076 20.8257 26 22.6667 26C24.5076 26 26 24.5076 26 22.6667C26 20.8257 24.5076 19.3333 22.6667 19.3333C21.6074 19.3333 20.6636 19.8274 20.053 20.5976L12.864 16.2689L12.8651 15.7324L20.0531 11.4025C20.6637 12.1727 21.6075 12.6667 22.6667 12.6667ZM22.6667 10.6667C21.9303 10.6667 21.3333 10.0697 21.3333 9.33333C21.3333 8.59695 21.9303 8 22.6667 8C23.403 8 24 8.59695 24 9.33333C24 10.0697 23.403 10.6667 22.6667 10.6667ZM9.33333 17.3333C8.59695 17.3333 8 16.7364 8 16C8 15.2636 8.59695 14.6667 9.33333 14.6667C10.0697 14.6667 10.6667 15.2636 10.6667 16C10.6667 16.7364 10.0697 17.3333 9.33333 17.3333ZM21.3333 22.6667C21.3333 23.403 21.9303 24 22.6667 24C23.403 24 24 23.403 24 22.6667C24 21.9303 23.403 21.3333 22.6667 21.3333C21.9303 21.3333 21.3333 21.9303 21.3333 22.6667Z\", fill: \"white\" }))); };\nexports.Share = Share;\n//# sourceMappingURL=share.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Spinner = void 0;\nvar preact_1 = require(\"preact\");\nvar styles = require(\"./spinner.scss\");\nvar Spinner = function () { return ((0, preact_1.h)(\"svg\", { width: \"25\", height: \"24\", viewBox: \"0 0 25 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", className: styles.spinner },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M12.5 18C15.8137 18 18.5 15.3137 18.5 12C18.5 8.68629 15.8137 6 12.5 6C9.18629 6 6.5 8.68629 6.5 12C6.5 15.3137 9.18629 18 12.5 18ZM12.5 22C18.0228 22 22.5 17.5228 22.5 12C22.5 6.47715 18.0228 2 12.5 2C6.97715 2 2.5 6.47715 2.5 12C2.5 17.5228 6.97715 22 12.5 22Z\", fill: \"white\", \"fill-opacity\": \"0.2\" }),\n (0, preact_1.h)(\"path\", { d: \"M18.5 12H22.5C22.5 6.47715 18.0228 2 12.5 2V6C15.8137 6 18.5 8.68629 18.5 12Z\", fill: \"white\" }))); };\nexports.Spinner = Spinner;\n//# sourceMappingURL=spinner.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Switch = void 0;\nvar preact_1 = require(\"preact\");\nvar Switch = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M17.6744 9.27934L21.7563 13.3632L21.8282 13.4537L21.887 13.5492L21.9333 13.6489L21.9684 13.7556L21.9824 13.8172L21.9974 13.929L22 14L21.9897 14.1405L21.9824 14.1828L21.9535 14.2949L21.9231 14.3759L21.887 14.4508L21.8281 14.5463L21.7763 14.6137L21.7207 14.6744L17.6744 18.7207C17.3019 19.0931 16.6981 19.0931 16.3256 18.7207C15.9818 18.3769 15.9554 17.8359 16.2463 17.4617L16.3256 17.3719L18.7439 14.9536L12.9537 14.9537C12.4675 14.9537 12.0663 14.5899 12.0074 14.1196L12 14C12 13.5109 12.3682 13.1078 12.8425 13.0527L12.9537 13.0463L18.7426 13.0451L16.3256 10.6281C15.9798 10.2823 15.9551 9.73687 16.2515 9.36252L16.3256 9.27934C16.6981 8.90689 17.3019 8.90689 17.6744 9.27934ZM6.32562 5.27934C6.69807 4.90689 7.30193 4.90689 7.67438 5.27934L7.74849 5.36252C8.04493 5.73687 8.02023 6.28225 7.67438 6.6281L5.2574 9.04508L11.0463 9.04628L11.1575 9.0527C11.6318 9.10779 12 9.5109 12 10L11.9926 10.1196C11.9337 10.5899 11.5325 10.9537 11.0463 10.9537L5.25605 10.9536L7.67438 13.3719L7.75372 13.4617C8.04463 13.8359 8.01818 14.3769 7.67438 14.7207C7.30193 15.0931 6.69807 15.0931 6.32562 14.7207L2.25793 10.6523L2.18664 10.5668L2.12413 10.4708L2.07695 10.3759L2.03697 10.2639L2.01028 10.1405L2 10C2 9.95226 2.00351 9.90534 2.01036 9.85937L2.01758 9.81716L2.04651 9.70514L2.08932 9.59642L2.12415 9.52899L2.18631 9.43351L2.24369 9.36325L6.32562 5.27934Z\", fill: \"white\" }))); };\nexports.Switch = Switch;\n//# sourceMappingURL=switch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VolumeMute = void 0;\nvar preact_1 = require(\"preact\");\nvar VolumeMute = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M7 11L14.2433 6.97588C15.2135 6.43689 16 6.89817 16 7.99076V24.0092C16 25.1087 15.2171 25.565 14.2433 25.024L7 21H3.00293C2.44903 21 2 20.5443 2 20.0046V11.9954C2 11.4456 2.43788 11 3.00293 11H7ZM9 12.1768V19.8232L14 22.6009V9.39899L9 12.1768ZM7 13H4V19H7V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { d: \"M20.4645 12.4644C20.0739 12.855 20.0739 13.4881 20.4645 13.8786L22.5858 16L20.4645 18.1213C20.0739 18.5118 20.0739 19.145 20.4645 19.5355C20.855 19.926 21.4882 19.926 21.8787 19.5355L24 17.4142L26.1213 19.5355C26.5118 19.926 27.145 19.926 27.5355 19.5355C27.9261 19.145 27.9261 18.5118 27.5355 18.1213L25.4142 16L27.5355 13.8786C27.9261 13.4881 27.9261 12.855 27.5355 12.4644C27.145 12.0739 26.5118 12.0739 26.1213 12.4644L24 14.5857L21.8787 12.4644C21.4882 12.0739 20.855 12.0739 20.4645 12.4644Z\", fill: \"white\" }))); };\nexports.VolumeMute = VolumeMute;\n//# sourceMappingURL=volumeMute.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VolumeOn = void 0;\nvar preact_1 = require(\"preact\");\nvar VolumeOn = function () { return ((0, preact_1.h)(\"svg\", { width: \"32\", height: \"32\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { d: \"M25.063 26.1618C27.6367 23.4547 29.1 19.8564 29.1 16.0287C29.1 12.1544 27.6007 8.51592 24.971 5.79967C24.5869 5.40288 23.9538 5.39263 23.557 5.77678C23.1602 6.16093 23.15 6.79402 23.5341 7.19081C25.8057 9.53719 27.1 12.6782 27.1 16.0287C27.1 19.339 25.8368 22.4453 23.6136 24.7838C23.233 25.184 23.249 25.817 23.6493 26.1975C24.0495 26.5781 24.6825 26.5621 25.063 26.1618Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M7 11L14.2433 6.97595C15.2135 6.43696 16 6.89824 16 7.99082V24.0092C16 25.1087 15.2171 25.5651 14.2433 25.0241L7 21H3.00293C2.44903 21 2 20.5444 2 20.0046V11.9954C2 11.4457 2.43788 11 3.00293 11H7ZM9 12.1768V19.8232L14 22.601V9.39906L9 12.1768ZM7 13H4V19H7V13Z\", fill: \"white\" }),\n (0, preact_1.h)(\"path\", { d: \"M24.2097 15.6872C24.2097 18.6042 22.9749 21.3231 20.8574 23.2257C20.4466 23.5948 19.8143 23.561 19.4452 23.1502C19.076 22.7394 19.1098 22.1071 19.5207 21.738C21.2197 20.2114 22.2097 18.0316 22.2097 15.6872C22.2097 13.4938 21.344 11.4424 19.8323 9.93166C19.4417 9.54127 19.4414 8.9081 19.8318 8.51745C20.2222 8.12679 20.8554 8.12657 21.246 8.51697C23.1299 10.3996 24.2097 12.9585 24.2097 15.6872Z\", fill: \"white\" }))); };\nexports.VolumeOn = VolumeOn;\n//# sourceMappingURL=volumeOn.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Zip = void 0;\nvar preact_1 = require(\"preact\");\nvar Zip = function () { return ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": \"evenodd\", \"clip-rule\": \"evenodd\", d: \"M6 2C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V7.82843C20 7.29799 19.7893 6.78929 19.4142 6.41421L15.5858 2.58579C15.2107 2.21071 14.702 2 14.1716 2H6ZM14.3657 4.36569C13.8617 3.86171 13 4.21865 13 4.93137V8.2C13 8.64183 13.3582 9 13.8 9H17.0686C17.7814 9 18.1383 8.13829 17.6343 7.63431L14.3657 4.36569ZM7 5H9V7H7V5ZM9 9H7V11H9V9ZM7 13H9V15H7V13ZM10 17H6V19H10V17Z\", fill: \"white\" }))); };\nexports.Zip = Zip;\n//# sourceMappingURL=zip.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Icon = exports.IconSize = void 0;\nvar preact_1 = require(\"preact\");\nvar classnames = require(\"classnames\");\nvar icons_1 = require(\"./icons\");\nvar styles = require(\"./icon.scss\");\nvar IconSize;\n(function (IconSize) {\n IconSize[\"small\"] = \"small\";\n IconSize[\"medium\"] = \"medium\";\n IconSize[\"large\"] = \"large\";\n})(IconSize = exports.IconSize || (exports.IconSize = {}));\nvar Icon = function (props) {\n var Icon = icons_1.Icons[props.name];\n if (!Icon) {\n return null;\n }\n return ((0, preact_1.h)(\"div\", { className: classnames(styles.iconWrapper, styles[props.size]) },\n (0, preact_1.h)(Icon, null)));\n};\nexports.Icon = Icon;\nexports.Icon.defaultProps = {\n size: IconSize.medium\n};\n//# sourceMappingURL=index.js.map","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".Button__button___NM3Vl{display:flex;justify-content:center;align-items:center;flex-wrap:nowrap;font-weight:700;border:1px solid rgba(0,0,0,0);border-radius:4px;cursor:pointer}.Button__button___NM3Vl.Button__primary___vkWyL{background-color:var(--playkit-primary-color);color:var(--playkit-primary-text-contrast-color)}.Button__button___NM3Vl.Button__primary___vkWyL:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-primary-darker-color)}.Button__button___NM3Vl.Button__primary___vkWyL:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-primary-brighter-color)}.Button__button___NM3Vl.Button__danger___lCKPq{background-color:var(--playkit-danger-color);color:var(--playkit-danger-text-contrast-color)}.Button__button___NM3Vl.Button__danger___lCKPq:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-danger-darker-color)}.Button__button___NM3Vl.Button__danger___lCKPq:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-danger-brighter-color)}.Button__button___NM3Vl.Button__translucent___nSc5h{background-color:rgba(0,0,0,.6);color:var(--playkit-primary-text-contrast-color)}.Button__button___NM3Vl.Button__borderless___sov7o{background-color:rgba(0,0,0,0);color:var(--playkit-tone-1-color)}.Button__button___NM3Vl.Button__borderless___sov7o:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-tone-4-color)}.Button__button___NM3Vl.Button__borderless___sov7o:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-tone-6-color)}.Button__button___NM3Vl.Button__borderlessTranslucent___L8tFt{background-color:rgba(0,0,0,0);color:var(--playkit-tone-1-color)}.Button__button___NM3Vl.Button__borderlessTranslucent___L8tFt:not(.Button__disabled___j4KjS):hover{background-color:rgba(0,0,0,.7)}.Button__button___NM3Vl.Button__borderlessTranslucent___L8tFt:not(.Button__disabled___j4KjS):focus{background-color:rgba(0,0,0,.4)}.Button__button___NM3Vl.Button__secondary___ChhYF{background-color:var(--playkit-tone-6-color);color:var(--playkit-primary-text-contrast-color)}.Button__button___NM3Vl.Button__secondary___ChhYF:not(.Button__disabled___j4KjS):hover{background-color:var(--playkit-tone-5-color)}.Button__button___NM3Vl.Button__secondary___ChhYF:not(.Button__disabled___j4KjS):focus{background-color:var(--playkit-tone-5-color)}.Button__button___NM3Vl.Button__small____SSTu{height:24px;font-size:13px;line-height:16px;padding:0 4px}.Button__button___NM3Vl.Button__small____SSTu.Button__withIcon___c3vxV{padding-right:8px}.Button__button___NM3Vl.Button__small____SSTu.Button__withIcon___c3vxV>span{margin-left:2px}.Button__button___NM3Vl.Button__small____SSTu.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__medium___psqY1{height:32px;font-size:14px;line-height:17px;padding:0 8px}.Button__button___NM3Vl.Button__medium___psqY1.Button__withIcon___c3vxV{padding-right:12px}.Button__button___NM3Vl.Button__medium___psqY1.Button__withIcon___c3vxV>span{margin-left:4px}.Button__button___NM3Vl.Button__medium___psqY1.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__large___ftsNW{height:40px;font-size:16px;line-height:19px;padding:0 16px}.Button__button___NM3Vl.Button__large___ftsNW.Button__withIcon___c3vxV{padding-left:12px}.Button__button___NM3Vl.Button__large___ftsNW.Button__withIcon___c3vxV>span{margin-left:4px}.Button__button___NM3Vl.Button__large___ftsNW.Button__iconOnly___dISNi{padding:0 3px}.Button__button___NM3Vl.Button__disabled___j4KjS{background-color:rgba(0,0,0,0);color:var(--playkit-tone-4-color);border-color:var(--playkit-tone-4-color);cursor:default}.Button__button___NM3Vl.Button__loading___Q2l_S{cursor:default;pointer-events:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/components/button/Button.scss\",\"webpack://./../node_modules/@playkit-js/common/dist/components/variables.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAGA,wBACE,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,gBAAA,CACA,eAAA,CACA,8BAAA,CACA,iBCPY,CDQZ,cAAA,CACA,gDACE,6CEVY,CFWZ,gDER0B,CFUxB,qFACE,oDEbe,CFejB,qFACE,sDEfiB,CFmBvB,+CACE,4CENW,CFOX,+CEJyB,CFMvB,oFACE,mDETc,CFWhB,oFACE,qDEXgB,CFetB,oDACE,+BAAA,CACA,gDEhC0B,CFkC5B,mDACE,8BAAA,CACA,iCEZW,CFcT,wFACE,4CEZO,CFcT,wFACE,4CEbO,CFiBb,8DACE,8BAAA,CACA,iCExBW,CF0BT,mGACE,+BAAA,CAEF,mGACE,+BAAA,CAIN,kDACE,4CE9BW,CF+BX,gDE5D0B,CF8DxB,uFACE,4CEnCO,CFqCT,uFACE,4CEtCO,CF0Cb,8CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,aAAA,CACA,uEACE,iBAAA,CACA,4EACE,eAAA,CAGJ,uEACE,aAAA,CAGJ,+CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,aAAA,CACA,wEACE,kBAAA,CACA,6EACE,eAAA,CAGJ,wEACE,aAAA,CAGJ,8CACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,cAAA,CACA,uEACE,iBAAA,CACA,4EACE,eAAA,CAGJ,uEACE,aAAA,CAGJ,iDACE,8BAAA,CACA,iCE1FW,CF2FX,wCE3FW,CF4FX,cAAA,CAEF,gDACE,cAAA,CACA,mBAAA\",\"sourcesContent\":[\"@import '../variables.scss';\\n\\n// https://www.figma.com/file/GYMv1jsthckOnKmCrdQJY3/%E2%8F%AF-Player-v7-(Guidelines)?node-id=21%3A1943&t=ywdMo875C6kzd7pN-0\\n.button {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n flex-wrap: nowrap;\\n font-weight: 700;\\n border: 1px solid transparent;\\n border-radius: $roundness-1;\\n cursor: pointer;\\n &.primary {\\n background-color: $primary-color;\\n color: $primary-text-contrast-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $primary-darker-color;\\n }\\n &:focus {\\n background-color: $primary-brighter-color;\\n }\\n }\\n }\\n &.danger {\\n background-color: $danger-color;\\n color: $danger-text-contrast-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $danger-darker-color;\\n }\\n &:focus {\\n background-color: $danger-brighter-color;\\n }\\n }\\n }\\n &.translucent {\\n background-color: rgba(0, 0, 0, 0.6);\\n color: $primary-text-contrast-color;\\n }\\n &.borderless {\\n background-color: transparent;\\n color: $tone-1-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $tone-4-color;\\n }\\n &:focus {\\n background-color: $tone-6-color;\\n }\\n }\\n }\\n &.borderlessTranslucent {\\n background-color: transparent;\\n color: $tone-1-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: rgba(0, 0, 0, 0.7);\\n }\\n &:focus {\\n background-color: rgba(0, 0, 0, 0.4);\\n }\\n }\\n }\\n &.secondary {\\n background-color: $tone-6-color;\\n color: $primary-text-contrast-color;\\n &:not(.disabled) {\\n &:hover {\\n background-color: $tone-5-color;\\n }\\n &:focus {\\n background-color: $tone-5-color;\\n }\\n }\\n }\\n &.small {\\n height: 24px;\\n font-size: 13px;\\n line-height: 16px;\\n padding: 0 4px;\\n &.withIcon {\\n padding-right: 8px;\\n > span {\\n margin-left: 2px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.medium {\\n height: 32px;\\n font-size: 14px;\\n line-height: 17px;\\n padding: 0 8px;\\n &.withIcon {\\n padding-right: 12px;\\n > span {\\n margin-left: 4px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.large {\\n height: 40px;\\n font-size: 16px;\\n line-height: 19px;\\n padding: 0 16px;\\n &.withIcon {\\n padding-left: 12px;\\n > span {\\n margin-left: 4px;\\n }\\n }\\n &.iconOnly {\\n padding: 0 3px;\\n }\\n }\\n &.disabled {\\n background-color: transparent;\\n color: $tone-4-color;\\n border-color: $tone-4-color;\\n cursor: default;\\n }\\n &.loading {\\n cursor: default;\\n pointer-events: none;\\n }\\n}\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\\n// colors\\n$white: #ffffff;\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"button\": \"Button__button___NM3Vl\",\n\t\"primary\": \"Button__primary___vkWyL\",\n\t\"disabled\": \"Button__disabled___j4KjS\",\n\t\"danger\": \"Button__danger___lCKPq\",\n\t\"translucent\": \"Button__translucent___nSc5h\",\n\t\"borderless\": \"Button__borderless___sov7o\",\n\t\"borderlessTranslucent\": \"Button__borderlessTranslucent___L8tFt\",\n\t\"secondary\": \"Button__secondary___ChhYF\",\n\t\"small\": \"Button__small____SSTu\",\n\t\"withIcon\": \"Button__withIcon___c3vxV\",\n\t\"iconOnly\": \"Button__iconOnly___dISNi\",\n\t\"medium\": \"Button__medium___psqY1\",\n\t\"large\": \"Button__large___ftsNW\",\n\t\"loading\": \"Button__loading___Q2l_S\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".InputField__input-field-wrapper___K1QeS{display:flex;align-items:center;flex-grow:1;width:100%;max-width:599px;padding-right:8px;height:32px;border:solid 1px rgba(255,255,255,.4);border-radius:4px}.InputField__input-field-wrapper___K1QeS ::-moz-placeholder{opacity:1}.InputField__input-field-wrapper___K1QeS .InputField__search-results___PBRGr{display:flex;justify-content:flex-end;align-items:center;flex-shrink:0;margin:0 8px 0 6px;font-size:12px;text-overflow:ellipsis}.InputField__input-field-wrapper___K1QeS .InputField__prev-next-wrapper___zAxBA{display:flex;flex-direction:column;justify-content:space-around;max-height:100%;height:100%;width:8px;flex:0 0 8px}.InputField__input-field-wrapper___K1QeS .InputField__prev-next-wrapper___zAxBA .InputField__prev-next-button___HP7Me{display:flex;align-items:center;height:50%;padding:0;background-color:rgba(0,0,0,0);border:none;cursor:pointer}.InputField__input-field-wrapper___K1QeS .InputField__prev-next-wrapper___zAxBA .InputField__prev-next-button___HP7Me.InputField__disabled___GVLcH{opacity:.4;cursor:default}.InputField__input-field-wrapper___K1QeS .InputField__input-element___BAphE{width:100%;flex-grow:1;flex-shrink:1;font-size:15px;padding:0 6px 1px 6px;color:var(--playkit-tone-1-color);background:rgba(0,0,0,0);border:none;overflow:hidden;text-overflow:ellipsis}.InputField__input-field-wrapper___K1QeS .InputField__input-element___BAphE::placeholder{color:var(--playkit-tone-2-color)}.InputField__input-field-wrapper___K1QeS .InputField__input-element___BAphE::selection{background-color:var(--playkit-primary-brighter-color)}.InputField__input-field-wrapper___K1QeS .InputField__clear-icon___eTi3X{padding:0;flex:0 0 12px;max-width:12px;max-height:12px;background-color:rgba(0,0,0,0);width:12px;height:12px;outline-offset:4px;border:none;cursor:pointer}.InputField__input-field-wrapper___K1QeS:hover{border-color:#fff}.InputField__input-field-wrapper___K1QeS.InputField__active____D1qS{color:var(--playkit-tone-2-color);background:var(--playkit-tone-8-color);border-color:#fff}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/components/input-field/InputField.scss\",\"webpack://./../node_modules/@playkit-js/common/dist/components/variables.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAEA,yCAKE,YAAA,CACA,kBAAA,CACA,WAAA,CACA,UAAA,CACA,eAAA,CACA,iBAAA,CACA,WAAA,CACA,qCAAA,CACA,iBCZY,CAAA,4DDCV,SAAA,CAYF,6EACE,YAAA,CACA,wBAAA,CACA,kBAAA,CACA,aAAA,CACA,kBAAA,CACA,cAAA,CACA,sBAAA,CAEF,gFACE,YAAA,CACA,qBAAA,CACA,4BAAA,CACA,eAAA,CACA,WAAA,CACA,SAAA,CACA,YAAA,CACA,sHACE,YAAA,CACA,kBAAA,CACA,UAAA,CACA,SAAA,CACA,8BAAA,CACA,WAAA,CACA,cAAA,CACA,mJACE,UAAA,CACA,cAAA,CAIN,4EACE,UAAA,CACA,WAAA,CACA,aAAA,CACA,cAAA,CACA,qBAAA,CACA,iCEvBW,CFwBX,wBAAA,CACA,WAAA,CACA,eAAA,CACA,sBAAA,CACA,yFACE,iCE5BS,CF8BX,uFACE,sDEzDmB,CF4DvB,yEACE,SAAA,CACA,aAAA,CACA,cAAA,CACA,eAAA,CACA,8BAAA,CACA,UAAA,CACA,WAAA,CACA,kBAAA,CACA,WAAA,CACA,cAAA,CAEF,+CACE,iBCvEI,CDyEN,oEACE,iCElDW,CFmDX,sCE7CW,CF8CX,iBC5EI\",\"sourcesContent\":[\"@import '../variables.scss';\\n\\n.input-field-wrapper {\\n ::-moz-placeholder {\\n opacity: 1;\\n }\\n\\n display: flex;\\n align-items: center;\\n flex-grow: 1;\\n width: 100%;\\n max-width: 599px;\\n padding-right: 8px;\\n height: 32px;\\n border: solid 1px rgba(255, 255, 255, 0.4);\\n border-radius: $roundness-1;\\n .search-results {\\n display: flex;\\n justify-content: flex-end;\\n align-items: center;\\n flex-shrink: 0;\\n margin: 0 8px 0 6px;\\n font-size: 12px;\\n text-overflow: ellipsis;\\n }\\n .prev-next-wrapper {\\n display: flex;\\n flex-direction: column;\\n justify-content: space-around;\\n max-height: 100%;\\n height: 100%;\\n width: 8px;\\n flex: 0 0 8px;\\n .prev-next-button {\\n display: flex;\\n align-items: center;\\n height: 50%;\\n padding: 0;\\n background-color: transparent;\\n border: none;\\n cursor: pointer;\\n &.disabled {\\n opacity: 0.4;\\n cursor: default;\\n }\\n }\\n }\\n .input-element {\\n width: 100%;\\n flex-grow: 1;\\n flex-shrink: 1;\\n font-size: 15px;\\n padding: 0 6px 1px 6px;\\n color: $tone-1-color;\\n background: transparent;\\n border: none;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n &::placeholder {\\n color: $tone-2-color;\\n }\\n &::selection {\\n background-color: $primary-brighter-color;\\n }\\n }\\n .clear-icon {\\n padding: 0;\\n flex: 0 0 12px;\\n max-width: 12px;\\n max-height: 12px;\\n background-color: transparent;\\n width: 12px;\\n height: 12px;\\n outline-offset: 4px;\\n border: none;\\n cursor: pointer;\\n }\\n &:hover {\\n border-color: $white;\\n }\\n &.active {\\n color: $tone-2-color;\\n background: $tone-8-color;\\n border-color: $white;\\n }\\n}\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-2: 8px;\\n\\n// colors\\n$white: #ffffff;\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"input-field-wrapper\": \"InputField__input-field-wrapper___K1QeS\",\n\t\"inputFieldWrapper\": \"InputField__input-field-wrapper___K1QeS\",\n\t\"search-results\": \"InputField__search-results___PBRGr\",\n\t\"searchResults\": \"InputField__search-results___PBRGr\",\n\t\"prev-next-wrapper\": \"InputField__prev-next-wrapper___zAxBA\",\n\t\"prevNextWrapper\": \"InputField__prev-next-wrapper___zAxBA\",\n\t\"prev-next-button\": \"InputField__prev-next-button___HP7Me\",\n\t\"prevNextButton\": \"InputField__prev-next-button___HP7Me\",\n\t\"disabled\": \"InputField__disabled___GVLcH\",\n\t\"input-element\": \"InputField__input-element___BAphE\",\n\t\"inputElement\": \"InputField__input-element___BAphE\",\n\t\"clear-icon\": \"InputField__clear-icon___eTi3X\",\n\t\"clearIcon\": \"InputField__clear-icon___eTi3X\",\n\t\"active\": \"InputField__active____D1qS\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".icon__iconWrapper___O5uqn.icon__small___IddLg{width:16px;height:16px}.icon__iconWrapper___O5uqn.icon__medium___llFxB{width:24px;height:24px}.icon__iconWrapper___O5uqn.icon__large___Q96VN{width:32px;height:32px}.icon__iconWrapper___O5uqn>svg{width:100%;height:100%}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/icon/icon.scss\"],\"names\":[],\"mappings\":\"AACE,+CACE,UAAA,CACA,WAAA,CAEF,gDACE,UAAA,CACA,WAAA,CAEF,+CACE,UAAA,CACA,WAAA,CAEF,+BACE,UAAA,CACA,WAAA\",\"sourcesContent\":[\".iconWrapper {\\n &.small {\\n width: 16px;\\n height: 16px;\\n }\\n &.medium {\\n width: 24px;\\n height: 24px;\\n }\\n &.large {\\n width: 32px;\\n height: 32px;\\n }\\n > svg {\\n width: 100%;\\n height: 100%;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"iconWrapper\": \"icon__iconWrapper___O5uqn\",\n\t\"small\": \"icon__small___IddLg\",\n\t\"medium\": \"icon__medium___llFxB\",\n\t\"large\": \"icon__large___Q96VN\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".spinner__spinner___NHbzR{animation:spinner__spinner-animation___FVrgH 1s linear infinite}@keyframes spinner__spinner-animation___FVrgH{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/@playkit-js/common/dist/icon/icons/spinner.scss\"],\"names\":[],\"mappings\":\"AAAA,0BACE,+DAAA,CAEF,8CACE,GACE,sBAAA,CAEF,KACE,wBAAA,CAAA\",\"sourcesContent\":[\".spinner {\\n animation: spinner-animation 1s linear infinite;\\n}\\n@keyframes spinner-animation {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"spinner\": \"spinner__spinner___NHbzR\",\n\t\"spinner-animation\": \"spinner__spinner-animation___FVrgH\",\n\t\"spinnerAnimation\": \"spinner__spinner-animation___FVrgH\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".autoscroll-button__autoscroll-root___DVqxM{position:absolute;right:12px;bottom:25px;width:auto;height:32px;padding:4px}.autoscroll-button__autoscroll-button___WBkBE{opacity:0;z-index:1}.autoscroll-button__autoscroll-button___WBkBE.autoscroll-button__autoscroll-button-visible___ZHUf1{opacity:1}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/autoscroll-button/autoscroll-button.scss\"],\"names\":[],\"mappings\":\"AAEA,4CACE,iBAAA,CACA,UAAA,CACA,WAAA,CACA,UAAA,CACA,WAAA,CACA,WAAA,CAGF,8CACE,SAAA,CACA,SAAA,CACA,mGACE,SAAA\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.autoscroll-root {\\n position: absolute;\\n right: 12px;\\n bottom: 25px;\\n width: auto;\\n height: 32px;\\n padding: 4px;\\n}\\n\\n.autoscroll-button {\\n opacity: 0;\\n z-index: 1;\\n &.autoscroll-button-visible {\\n opacity: 1;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"autoscroll-root\": \"autoscroll-button__autoscroll-root___DVqxM\",\n\t\"autoscrollRoot\": \"autoscroll-button__autoscroll-root___DVqxM\",\n\t\"autoscroll-button\": \"autoscroll-button__autoscroll-button___WBkBE\",\n\t\"autoscrollButton\": \"autoscroll-button__autoscroll-button___WBkBE\",\n\t\"autoscroll-button-visible\": \"autoscroll-button__autoscroll-button-visible___ZHUf1\",\n\t\"autoscrollButtonVisible\": \"autoscroll-button__autoscroll-button-visible___ZHUf1\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".captionList__transcript-wrapper___Omf8T{position:absolute;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-right:9px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/caption-list/captionList.scss\"],\"names\":[],\"mappings\":\"AAAA,yCACE,iBAAA,CACA,UAAA,CACA,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA,CACA,iBAAA\",\"sourcesContent\":[\".transcript-wrapper {\\n position: absolute;\\n width: 100%;\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n justify-content: center;\\n padding-right: 9px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"transcript-wrapper\": \"captionList__transcript-wrapper___Omf8T\",\n\t\"transcriptWrapper\": \"captionList__transcript-wrapper___Omf8T\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".caption__caption___v5MZY{display:flex;justify-content:space-between;width:100%;margin-bottom:9px;margin-left:8px;color:var(--playkit-tone-1-color);cursor:pointer}.caption__caption___v5MZY .caption__caption-time___N5cw5{flex-shrink:1;min-width:48px;align-items:flex-start;margin-right:8px;padding-top:2px;text-align:right;font-size:12px;color:var(--playkit-tone-2-color)}.caption__caption___v5MZY .caption__caption-content___F1WTh{flex-grow:1;font-size:14px;line-height:18px;text-align:left;user-select:text}.caption__caption___v5MZY .caption__caption-content___F1WTh:hover .caption__caption-span___cTewu{background-color:var(--playkit-tone-6-color)}.caption__caption___v5MZY .caption__caption-content___F1WTh:hover.caption__highlighted___ikaKW .caption__caption-span___cTewu{background-color:var(--playkit-primary-darker-color);padding:0 2px}.caption__caption___v5MZY .caption__caption-content___F1WTh.caption__highlighted___ikaKW .caption__caption-span___cTewu{color:var(--playkit-primary-text-contrast-color);background-color:var(--playkit-primary-color);padding:0 2px}.caption__caption___v5MZY .caption__caption-content___F1WTh.caption__without-time___v7BWT{margin-left:16px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__caption-span___cTewu{user-select:text;-ms-user-select:text;border-radius:2px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__caption-span___cTewu::selection{background-color:var(--playkit-primary-brighter-color);padding:0 2px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__caption-span___cTewu>span::selection{background-color:var(--playkit-primary-brighter-color)}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__highlight-search___Rc4qg{color:var(--playkit-secondary-text-contrast-color);background-color:var(--playkit-secondary-color);border-radius:2px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__highlight-search___Rc4qg::selection{background-color:var(--playkit-primary-brighter-color)}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__active-search___yoZOD{color:var(--playkit-secondary-text-contrast-color);background-color:var(--playkit-primary-darker-color);border-radius:2px}.caption__caption___v5MZY .caption__caption-content___F1WTh .caption__active-search___yoZOD::selection{background-color:var(--playkit-primary-brighter-color)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/caption/caption.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAEA,0BACE,YAAA,CACA,6BAAA,CACA,UAAA,CACA,iBAAA,CACA,eAAA,CACA,iCCsBa,CDrBb,cAAA,CACA,yDACE,aAAA,CACA,cAAA,CACA,sBAAA,CACA,gBAAA,CACA,eAAA,CACA,gBAAA,CACA,cAAA,CACA,iCCaW,CDXb,4DACE,WAAA,CACA,cAAA,CACA,gBAAA,CACA,eAAA,CACA,gBAAA,CAEE,iGACE,4CCOO,CDJP,8HACE,oDC5Ba,CD6Bb,aAAA,CAKJ,wHACE,gDCjCsB,CDkCtB,6CCrCQ,CDsCR,aAAA,CAGJ,0FACE,gBAAA,CAEF,2FACE,gBAAA,CACA,oBAAA,CACA,iBAAA,CACA,sGACE,sDC/CiB,CDgDjB,aAAA,CAEF,2GACE,sDCnDiB,CDsDrB,+FACE,kDCjD0B,CDkD1B,+CCrDY,CDsDZ,iBAAA,CACA,0GACE,sDC3DiB,CD8DrB,4FACE,kDCzD0B,CD0D1B,oDCjEiB,CDkEjB,iBAAA,CACA,uGACE,sDCnEiB\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.caption {\\n display: flex;\\n justify-content: space-between;\\n width: 100%;\\n margin-bottom: 9px;\\n margin-left: 8px;\\n color: $tone-1-color;\\n cursor: pointer;\\n .caption-time {\\n flex-shrink: 1;\\n min-width: 48px;\\n align-items: flex-start;\\n margin-right: 8px;\\n padding-top: 2px;\\n text-align: right;\\n font-size: 12px;\\n color: $tone-2-color;\\n }\\n .caption-content {\\n flex-grow: 1;\\n font-size: 14px;\\n line-height: 18px;\\n text-align: left;\\n user-select: text;\\n &:hover {\\n .caption-span {\\n background-color: $tone-6-color;\\n }\\n &.highlighted {\\n .caption-span {\\n background-color: $primary-darker-color;\\n padding: 0 2px;\\n }\\n }\\n }\\n &.highlighted {\\n .caption-span {\\n color: $primary-text-contrast-color;\\n background-color: $primary-color;\\n padding: 0 2px;\\n }\\n }\\n &.without-time {\\n margin-left: 16px;\\n }\\n .caption-span {\\n user-select: text;\\n -ms-user-select: text;\\n border-radius: 2px;\\n &::selection {\\n background-color: $primary-brighter-color;\\n padding: 0 2px;\\n }\\n & > span::selection {\\n background-color: $primary-brighter-color;\\n }\\n }\\n .highlight-search {\\n color: $secondary-text-contrast-color;\\n background-color: $secondary-color;\\n border-radius: 2px;\\n &::selection {\\n background-color: $primary-brighter-color;\\n }\\n }\\n .active-search {\\n color: $secondary-text-contrast-color;\\n background-color: $primary-darker-color;\\n border-radius: 2px;\\n &::selection {\\n background-color: $primary-brighter-color;\\n }\\n }\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"caption\": \"caption__caption___v5MZY\",\n\t\"caption-time\": \"caption__caption-time___N5cw5\",\n\t\"captionTime\": \"caption__caption-time___N5cw5\",\n\t\"caption-content\": \"caption__caption-content___F1WTh\",\n\t\"captionContent\": \"caption__caption-content___F1WTh\",\n\t\"caption-span\": \"caption__caption-span___cTewu\",\n\t\"captionSpan\": \"caption__caption-span___cTewu\",\n\t\"highlighted\": \"caption__highlighted___ikaKW\",\n\t\"without-time\": \"caption__without-time___v7BWT\",\n\t\"withoutTime\": \"caption__without-time___v7BWT\",\n\t\"highlight-search\": \"caption__highlight-search___Rc4qg\",\n\t\"highlightSearch\": \"caption__highlight-search___Rc4qg\",\n\t\"active-search\": \"caption__active-search___yoZOD\",\n\t\"activeSearch\": \"caption__active-search___yoZOD\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".plugin-button__pluginButton___hbzoA.plugin-button__active___pVKh2{background-color:var(--playkit-tone-6-color)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/plugin-button/plugin-button.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAGE,mEACE,4CC+BW\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.pluginButton {\\n &.active {\\n background-color: $tone-6-color;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"pluginButton\": \"plugin-button__pluginButton___hbzoA\",\n\t\"active\": \"plugin-button__active___pVKh2\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".popover-menu__popover-anchor-container___WFlS9{cursor:pointer;border-radius:4px}.popover-menu__popover-anchor-container___WFlS9:hover{background-color:var(--playkit-tone-4-color)}.popover-menu__popover-anchor-container___WFlS9.popover-menu__active___MtUlv{background-color:var(--playkit-tone-6-color)}.popover-menu__popover-anchor-container___WFlS9 .popover-menu__popover-anchor___sJyqi{pointer-events:none}.popover-menu__popover-container___jooX_{position:relative}.popover-menu__popover-container___jooX_ .popover-menu__popover-component___lcTrW{background-color:var(--playkit-tone-7-color);border-radius:4px;display:block;font-size:15px;margin-top:6px;position:absolute;right:0px;z-index:1}.popover-menu__popover-menu-item___I24pM{align-items:center;display:flex;font-size:15px;line-height:18px;min-height:30px;padding:9px 24px 9px 16px;white-space:nowrap;margin:4px}.popover-menu__popover-menu-item___I24pM.popover-menu__popover-menu-item-disabled___IpAvq{color:var(--playkit-tone-4-color)}.popover-menu__popover-menu-item___I24pM:hover:not(.popover-menu__popover-menu-item-disabled___IpAvq){background-color:var(--playkit-tone-6-color);border-radius:4px;cursor:pointer}.popover-menu__popover-menu-item___I24pM:focus{outline:1px solid #222}.popover-menu__popover-menu___GirVB{padding-top:6px;padding-bottom:6px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/popover-menu/popover-menu.scss\",\"webpack://./variables.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAEA,gDACE,cAAA,CACA,iBCDY,CDGZ,sDACE,4CE0BW,CFvBb,6EACE,4CEwBW,CFrBb,sFACE,mBAAA,CAIJ,yCACE,iBAAA,CAEA,kFACE,4CEaW,CFZX,iBCrBU,CDsBV,aAAA,CACA,cAAA,CACA,cAAA,CACA,iBAAA,CACA,SAAA,CACA,SAAA,CAGJ,yCACE,kBAAA,CACA,YAAA,CACA,cAAA,CACA,gBAAA,CACA,eAAA,CACA,yBAAA,CACA,kBAAA,CACA,UAAA,CAEA,0FACE,iCEXW,CFcb,sGACE,4CEbW,CFcX,iBC9CU,CD+CV,cAAA,CAGF,+CACE,sBAAA,CAIJ,oCACE,eAAA,CACA,kBAAA\",\"sourcesContent\":[\"@import './variables.scss';\\n\\n.popover-anchor-container {\\n cursor: pointer;\\n border-radius: $roundness-1;\\n \\n &:hover {\\n background-color: $tone-4-color;\\n }\\n \\n &.active {\\n background-color: $tone-6-color;\\n }\\n \\n .popover-anchor {\\n pointer-events: none;\\n }\\n}\\n\\n.popover-container {\\n position: relative;\\n \\n .popover-component {\\n background-color: $tone-7-color;\\n border-radius: $roundness-1;\\n display: block;\\n font-size: 15px;\\n margin-top: 6px;\\n position: absolute;\\n right: 0px;\\n z-index: 1;\\n }\\n}\\n.popover-menu-item {\\n align-items: center;\\n display: flex;\\n font-size: 15px;\\n line-height: 18px;\\n min-height: 30px;\\n padding: 9px 24px 9px 16px;\\n white-space: nowrap;\\n margin: 4px;\\n\\n &.popover-menu-item-disabled {\\n color: $tone-4-color;\\n }\\n \\n &:hover:not(.popover-menu-item-disabled) {\\n background-color: $tone-6-color;\\n border-radius: $roundness-1;\\n cursor: pointer;\\n }\\n \\n &:focus {\\n outline: 1px solid #222;\\n }\\n}\\n\\n.popover-menu {\\n padding-top: 6px;\\n padding-bottom: 6px;\\n}\\n\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-3: 16px;\\n\\n@mixin plugin-scrollbar {\\n &::-webkit-scrollbar {\\n width: 4px;\\n }\\n &::-webkit-scrollbar-track {\\n background: rgba(33, 33, 33, 0.9);\\n }\\n &::-webkit-scrollbar-thumb {\\n border-radius: 3px;\\n background-color: rgba(255, 255, 255, 0.3);\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"popover-anchor-container\": \"popover-menu__popover-anchor-container___WFlS9\",\n\t\"popoverAnchorContainer\": \"popover-menu__popover-anchor-container___WFlS9\",\n\t\"active\": \"popover-menu__active___MtUlv\",\n\t\"popover-anchor\": \"popover-menu__popover-anchor___sJyqi\",\n\t\"popoverAnchor\": \"popover-menu__popover-anchor___sJyqi\",\n\t\"popover-container\": \"popover-menu__popover-container___jooX_\",\n\t\"popoverContainer\": \"popover-menu__popover-container___jooX_\",\n\t\"popover-component\": \"popover-menu__popover-component___lcTrW\",\n\t\"popoverComponent\": \"popover-menu__popover-component___lcTrW\",\n\t\"popover-menu-item\": \"popover-menu__popover-menu-item___I24pM\",\n\t\"popoverMenuItem\": \"popover-menu__popover-menu-item___I24pM\",\n\t\"popover-menu-item-disabled\": \"popover-menu__popover-menu-item-disabled___IpAvq\",\n\t\"popoverMenuItemDisabled\": \"popover-menu__popover-menu-item-disabled___IpAvq\",\n\t\"popover-menu\": \"popover-menu__popover-menu___GirVB\",\n\t\"popoverMenu\": \"popover-menu__popover-menu___GirVB\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".small-screen-slate__smallScreenWrapper___kIoD5{position:relative;width:100%;height:100%;margin-top:-8px;margin-right:-2px;display:flex;align-items:center}.small-screen-slate__smallScreenWrapper___kIoD5 .small-screen-slate__closeButton___trEe_{position:absolute;right:6px;top:0px}.small-screen-slate__smallScreenWrapper___kIoD5 .small-screen-slate__contentWrapper___m1K1A{display:flex;width:100%;flex-direction:column;justify-content:center;align-items:center}.small-screen-slate__smallScreenWrapper___kIoD5 .small-screen-slate__contentWrapper___m1K1A .small-screen-slate__textContent___IjRTd{margin-top:8px;font-size:18px;font-style:normal;font-weight:700;line-height:20px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/small-screen-slate/small-screen-slate.scss\"],\"names\":[],\"mappings\":\"AAAA,gDACE,iBAAA,CACA,UAAA,CACA,WAAA,CACA,eAAA,CACA,iBAAA,CACA,YAAA,CACA,kBAAA,CACA,yFACE,iBAAA,CACA,SAAA,CACA,OAAA,CAEF,4FACE,YAAA,CACA,UAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CACA,qIACE,cAAA,CACA,cAAA,CACA,iBAAA,CACA,eAAA,CACA,gBAAA\",\"sourcesContent\":[\".smallScreenWrapper {\\n position: relative;\\n width: 100%;\\n height: 100%;\\n margin-top: -8px;\\n margin-right: -2px;\\n display: flex;\\n align-items: center;\\n .closeButton {\\n position: absolute;\\n right: 6px;\\n top: 0px;\\n }\\n .contentWrapper {\\n display: flex;\\n width: 100%;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n .textContent {\\n margin-top: 8px;\\n font-size: 18px;\\n font-style: normal;\\n font-weight: 700;\\n line-height: 20px;\\n }\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"smallScreenWrapper\": \"small-screen-slate__smallScreenWrapper___kIoD5\",\n\t\"closeButton\": \"small-screen-slate__closeButton___trEe_\",\n\t\"contentWrapper\": \"small-screen-slate__contentWrapper___m1K1A\",\n\t\"textContent\": \"small-screen-slate__textContent___IjRTd\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".spinner__transcript-loader___SzsWJ{display:flex;flex-direction:column;height:100%;width:100%;color:var(--playkit-tone-3-color);margin:0;animation:spinner__frame-bounce___nmvI_ 2s infinite ease-in-out;overflow:hidden}.spinner__transcript-loader___SzsWJ svg{flex-shrink:0}@keyframes spinner__frame-bounce___nmvI_{0%,100%{opacity:.1}50%{opacity:.25}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/spinner/spinner.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\"],\"names\":[],\"mappings\":\"AAEA,oCACE,YAAA,CACA,qBAAA,CACA,WAAA,CACA,UAAA,CACA,iCCyBa,CDxBb,QAAA,CACA,+DAAA,CACA,eAAA,CACA,wCACE,aAAA,CAIJ,yCACE,QAEE,UAAA,CAEF,IACE,WAAA,CAAA\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.transcript-loader {\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n width: 100%;\\n color: $tone-3-color;\\n margin: 0;\\n animation: frame-bounce 2s infinite ease-in-out;\\n overflow: hidden;\\n svg {\\n flex-shrink: 0;\\n }\\n}\\n\\n@keyframes frame-bounce {\\n 0%,\\n 100% {\\n opacity: 0.1;\\n }\\n 50% {\\n opacity: 0.25;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"transcript-loader\": \"spinner__transcript-loader___SzsWJ\",\n\t\"transcriptLoader\": \"spinner__transcript-loader___SzsWJ\",\n\t\"frame-bounce\": \"spinner__frame-bounce___nmvI_\",\n\t\"frameBounce\": \"spinner__frame-bounce___nmvI_\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".transcript__hidden___uGO_Y{visibility:hidden}.transcript__root___SEZlz{display:flex;justify-content:center;padding:16px 4px 0px 0px;color:var(--playkit-tone-1-color);height:100%;width:100%;position:absolute;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1}.transcript__root___SEZlz .transcript__skip-transcript-button___fQwQC{position:absolute;top:-1000px;z-index:1;display:flex;align-items:center;justify-content:center;width:120px;height:32px;border-radius:16px;box-shadow:0 2px 8px 0 rgba(0,0,0,.3);border:solid 1px var(--playkit-primary-color);background-color:var(--playkit-tone-7-color);font-size:15px;line-height:1.27;color:var(--playkit-tone-1-color)}.transcript__root___SEZlz .transcript__skip-transcript-button___fQwQC:focus{top:56px;right:12px;outline:none !important}.transcript__root___SEZlz *{font-family:sans-serif;font-style:normal}.transcript__global-container___Sn7v8{height:100%;display:flex;flex-direction:column;max-width:599px;width:100%}.transcript__header___AgZkl{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:8px;padding-left:16px;font-size:16px;padding-right:16px;gap:8px;z-index:2}.transcript__body___jTlBG{position:relative;padding-top:1px;flex:1;width:100%;overflow-y:auto;text-align:center;overflow-x:hidden}.transcript__body___jTlBG::-webkit-scrollbar{width:4px}.transcript__body___jTlBG::-webkit-scrollbar-track{background:rgba(33,33,33,.9)}.transcript__body___jTlBG::-webkit-scrollbar-thumb{border-radius:3px;background-color:rgba(255,255,255,.3)}.transcript__error-wrapper___Qe39U{height:100%;width:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--playkit-tone-3-color)}.transcript__error-wrapper___Qe39U .transcript__error-icon___no0DO{width:100%;height:100%;max-width:184px;max-height:184px;background-size:contain;background-repeat:no-repeat;background-position:center}.transcript__error-wrapper___Qe39U .transcript__error-main-text___VIVvd{font-size:1.3em;margin-top:8px;margin-bottom:2px}.transcript__error-wrapper___Qe39U .transcript__error-description-text___gg6yo{margin:0}.transcript__error-wrapper___Qe39U .transcript__retry-button___wCycN{width:36px;display:block;padding:0;margin:4px auto 0 auto;border:none;background:inherit;color:#fff;cursor:pointer}\", \"\",{\"version\":3,\"sources\":[\"webpack://./components/transcript/transcript.scss\",\"webpack://./../node_modules/@playkit-js/playkit-js-ui/src/styles/exported.scss\",\"webpack://./variables.scss\"],\"names\":[],\"mappings\":\"AAEA,4BACE,iBAAA,CAGF,0BACE,YAAA,CACA,sBAAA,CACA,wBAAA,CACA,iCCoBa,CDnBb,WAAA,CACA,UAAA,CACA,iBAAA,CACA,yBAAA,CACA,yBAAA,CACA,iCAAA,CACA,SAAA,CACA,sEACE,iBAAA,CACA,WAAA,CACA,SAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,WAAA,CACA,kBEvBU,CFwBV,qCAAA,CACA,6CAAA,CACA,4CCMW,CDLX,cAAA,CACA,gBAAA,CACA,iCCHW,CDIX,4EACE,QAAA,CACA,UAAA,CACA,uBAAA,CAIJ,4BACE,sBAAA,CACA,iBAAA,CAIJ,sCACE,WAAA,CACA,YAAA,CACA,qBAAA,CACA,eAAA,CACA,UAAA,CAGF,4BACE,YAAA,CACA,kBAAA,CACA,6BAAA,CACA,UAAA,CACA,iBAAA,CACA,iBAAA,CACA,cAAA,CACA,kBAAA,CACA,OAAA,CACA,SAAA,CAGF,0BACE,iBAAA,CACA,eAAA,CACA,MAAA,CACA,UAAA,CACA,eAAA,CACA,iBAAA,CACA,iBAAA,CEpEA,6CACE,SAAA,CAEF,mDACE,4BAAA,CAEF,mDACE,iBAAA,CACA,qCAAA,CFgEJ,mCACE,WAAA,CACA,UAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,qBAAA,CACA,iCCtDa,CDuDb,mEACE,UAAA,CACA,WAAA,CACA,eAAA,CACA,gBAAA,CACA,uBAAA,CACA,2BAAA,CACA,0BAAA,CAEF,wEACE,eAAA,CACA,cAAA,CACA,iBAAA,CAEF,+EACE,QAAA,CAEF,qEACE,UAAA,CACA,aAAA,CACA,SAAA,CACA,sBAAA,CACA,WAAA,CACA,kBAAA,CACA,UAAA,CACA,cAAA\",\"sourcesContent\":[\"@import '../../variables.scss';\\n\\n.hidden {\\n visibility: hidden;\\n}\\n\\n.root {\\n display: flex;\\n justify-content: center;\\n padding: 16px 4px 0px 0px;\\n color: $tone-1-color;\\n height: 100%;\\n width: 100%;\\n position: absolute;\\n background: rgba(0, 0, 0, 0.6);\\n backdrop-filter: blur(8px);\\n -webkit-backdrop-filter: blur(8px);\\n z-index: 1;\\n .skip-transcript-button {\\n position: absolute;\\n top: -1000px;\\n z-index: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 120px;\\n height: 32px;\\n border-radius: $roundness-3;\\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.3);\\n border: solid 1px $primary-color;\\n background-color: $tone-7-color;\\n font-size: 15px;\\n line-height: 1.27;\\n color: $tone-1-color;\\n &:focus {\\n top: 56px;\\n right: 12px;\\n outline: none !important; // prevent focus styles inherited from playkit-player.playkit-nav\\n }\\n }\\n\\n * {\\n font-family: sans-serif;\\n font-style: normal;\\n }\\n}\\n\\n.global-container {\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n max-width: 599px;\\n width: 100%;\\n}\\n\\n.header {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n width: 100%;\\n margin-bottom: 8px;\\n padding-left: 16px;\\n font-size: 16px;\\n padding-right: 16px;\\n gap: 8px;\\n z-index: 2;\\n}\\n\\n.body {\\n position: relative;\\n padding-top: 1px;\\n flex: 1;\\n width: 100%;\\n overflow-y: auto;\\n text-align: center;\\n overflow-x: hidden;\\n @include plugin-scrollbar();\\n}\\n\\n.error-wrapper {\\n height: 100%;\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-direction: column;\\n color: $tone-3-color;\\n .error-icon {\\n width: 100%;\\n height: 100%;\\n max-width: 184px;\\n max-height: 184px;\\n background-size: contain;\\n background-repeat: no-repeat;\\n background-position: center;\\n }\\n .error-main-text {\\n font-size: 1.3em;\\n margin-top: 8px;\\n margin-bottom: 2px;\\n }\\n .error-description-text {\\n margin: 0;\\n }\\n .retry-button {\\n width: 36px;\\n display: block;\\n padding: 0;\\n margin: 4px auto 0 auto;\\n border: none;\\n background: inherit;\\n color: white;\\n cursor: pointer;\\n }\\n}\\n\",\"// Sass variables exported using the npm package for plugins usage\\n\\n// Accent Colors\\n$primary-color: var(--playkit-primary-color);\\n$primary-darker-color: var(--playkit-primary-darker-color);\\n$primary-brighter-color: var(--playkit-primary-brighter-color);\\n$primary-text-contrast-color: var(--playkit-primary-text-contrast-color);\\n\\n$secondary-color: var(--playkit-secondary-color);\\n$secondary-darker-color: var(--playkit-secondary-darker-color);\\n$secondary-brighter-color: var(--playkit-secondary-brighter-color);\\n$secondary-text-contrast-color: var(--playkit-secondary-text-contrast-color);\\n\\n// Acknowledgement Colors\\n$success-color: var(--playkit-success-color);\\n$success-darker-color: var(--playkit-success-darker-color);\\n$success-brighter-color: var(--playkit-success-brighter-color);\\n$success-text-contrast-color: var(--playkit-success-text-contrast-color);\\n\\n$danger-color: var(--playkit-danger-color);\\n$danger-darker-color: var(--playkit-danger-darker-color);\\n$danger-brighter-color: var(--playkit-danger-brighter-color);\\n$danger-text-contrast-color: var(--playkit-danger-text-contrast-color);\\n\\n$warning-color: var(--playkit-warning-color);\\n$warning-darker-color: var(--playkit-warning-darker-color);\\n$warning-brighter-color: var(--playkit-warning-brighter-color);\\n$warning-text-contrast-color: var(--playkit-warning-text-contrast-color);\\n\\n// Tone Ramp\\n$tone-1-color: var(--playkit-tone-1-color);\\n$tone-2-color: var(--playkit-tone-2-color);\\n$tone-3-color: var(--playkit-tone-3-color);\\n$tone-4-color: var(--playkit-tone-4-color);\\n$tone-5-color: var(--playkit-tone-5-color);\\n$tone-6-color: var(--playkit-tone-6-color);\\n$tone-7-color: var(--playkit-tone-7-color);\\n$tone-8-color: var(--playkit-tone-8-color);\\n\\n$live-color: var(--playkit-live-color);\\n$player-background-color: var(--playkit-player-background-color);\\n$tab-focus-color: var(--playkit-tab-focus-color);\\n$tooltip-background-color: var(--playkit-tooltip-background-color);\\n$tooltip-color: var(--playkit-tooltip-color);\\n$ads-color: var(--playkit-ads-color);\\n\",\"@import '~@playkit-js/playkit-js-ui';\\n\\n// border radius\\n$roundness-1: 4px;\\n$roundness-3: 16px;\\n\\n@mixin plugin-scrollbar {\\n &::-webkit-scrollbar {\\n width: 4px;\\n }\\n &::-webkit-scrollbar-track {\\n background: rgba(33, 33, 33, 0.9);\\n }\\n &::-webkit-scrollbar-thumb {\\n border-radius: 3px;\\n background-color: rgba(255, 255, 255, 0.3);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"hidden\": \"transcript__hidden___uGO_Y\",\n\t\"root\": \"transcript__root___SEZlz\",\n\t\"skip-transcript-button\": \"transcript__skip-transcript-button___fQwQC\",\n\t\"skipTranscriptButton\": \"transcript__skip-transcript-button___fQwQC\",\n\t\"global-container\": \"transcript__global-container___Sn7v8\",\n\t\"globalContainer\": \"transcript__global-container___Sn7v8\",\n\t\"header\": \"transcript__header___AgZkl\",\n\t\"body\": \"transcript__body___jTlBG\",\n\t\"error-wrapper\": \"transcript__error-wrapper___Qe39U\",\n\t\"errorWrapper\": \"transcript__error-wrapper___Qe39U\",\n\t\"error-icon\": \"transcript__error-icon___no0DO\",\n\t\"errorIcon\": \"transcript__error-icon___no0DO\",\n\t\"error-main-text\": \"transcript__error-main-text___VIVvd\",\n\t\"errorMainText\": \"transcript__error-main-text___VIVvd\",\n\t\"error-description-text\": \"transcript__error-description-text___gg6yo\",\n\t\"errorDescriptionText\": \"transcript__error-description-text___gg6yo\",\n\t\"retry-button\": \"transcript__retry-button___wCycN\",\n\t\"retryButton\": \"transcript__retry-button___wCycN\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\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 \"textPath\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\nexports.attributeNames = new Map([\n \"definitionURL\",\n \"attributeName\",\n \"attributeType\",\n \"baseFrequency\",\n \"baseProfile\",\n \"calcMode\",\n \"clipPathUnits\",\n \"diffuseConstant\",\n \"edgeMode\",\n \"filterUnits\",\n \"glyphRef\",\n \"gradientTransform\",\n \"gradientUnits\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keyPoints\",\n \"keySplines\",\n \"keyTimes\",\n \"lengthAdjust\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerUnits\",\n \"markerWidth\",\n \"maskContentUnits\",\n \"maskUnits\",\n \"numOctaves\",\n \"pathLength\",\n \"patternContentUnits\",\n \"patternTransform\",\n \"patternUnits\",\n \"pointsAtX\",\n \"pointsAtY\",\n \"pointsAtZ\",\n \"preserveAlpha\",\n \"preserveAspectRatio\",\n \"primitiveUnits\",\n \"refX\",\n \"refY\",\n \"repeatCount\",\n \"repeatDur\",\n \"requiredExtensions\",\n \"requiredFeatures\",\n \"specularConstant\",\n \"specularExponent\",\n \"spreadMethod\",\n \"startOffset\",\n \"stdDeviation\",\n \"stitchTiles\",\n \"surfaceScale\",\n \"systemLanguage\",\n \"tableValues\",\n \"targetX\",\n \"targetY\",\n \"textLength\",\n \"viewBox\",\n \"viewTarget\",\n \"xChannelSelector\",\n \"yChannelSelector\",\n \"zoomAndPan\",\n].map(function (val) { return [val.toLowerCase(), val]; }));\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.render = void 0;\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_js_1 = require(\"./foreignNames.js\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\nfunction replaceQuotes(value) {\n return value.replace(/\"/g, \""\");\n}\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n var _a;\n if (!attributes)\n return;\n var encode = ((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) === false\n ? replaceQuotes\n : opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? entities_1.encodeXML\n : entities_1.escapeAttribute;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_js_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return \"\".concat(key, \"=\\\"\").concat(encode(value), \"\\\"\");\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.render = render;\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n // @ts-expect-error We don't use `Doctype` yet\n case ElementType.Doctype:\n case ElementType.Directive:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_js_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\".concat(elem.name);\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \".concat(attribs);\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"</\".concat(elem.name, \">\");\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\".concat(elem.data, \">\");\n}\nfunction renderText(elem, opts) {\n var _a;\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (((_a = opts.encodeEntities) !== null && _a !== void 0 ? _a : opts.decodeEntities) !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data =\n opts.xmlMode || opts.encodeEntities !== \"utf8\"\n ? (0, entities_1.encodeXML)(data)\n : (0, entities_1.escapeText)(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"<![CDATA[\".concat(elem.children[0].data, \"]]>\");\n}\nfunction renderComment(elem) {\n return \"<!--\".concat(elem.data, \"-->\");\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for <? ... ?> */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for <!-- ... --> */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for <script> tags */\n ElementType[\"Script\"] = \"script\";\n /** Type for <style> tags */\n ElementType[\"Style\"] = \"style\";\n /** Type for Any tag */\n ElementType[\"Tag\"] = \"tag\";\n /** Type for <![CDATA[ ... ]]> */\n ElementType[\"CDATA\"] = \"cdata\";\n /** Type for <!doctype ...> */\n ElementType[\"Doctype\"] = \"doctype\";\n})(ElementType = exports.ElementType || (exports.ElementType = {}));\n/**\n * Tests whether an element is a tag or not.\n *\n * @param elem Element to test\n */\nfunction isTag(elem) {\n return (elem.type === ElementType.Tag ||\n elem.type === ElementType.Script ||\n elem.type === ElementType.Style);\n}\nexports.isTag = isTag;\n// Exports for backwards compatibility\n/** Type for the root element of a document */\nexports.Root = ElementType.Root;\n/** Type for Text */\nexports.Text = ElementType.Text;\n/** Type for <? ... ?> */\nexports.Directive = ElementType.Directive;\n/** Type for <!-- ... --> */\nexports.Comment = ElementType.Comment;\n/** Type for <script> tags */\nexports.Script = ElementType.Script;\n/** Type for <style> tags */\nexports.Style = ElementType.Style;\n/** Type for Any tag */\nexports.Tag = ElementType.Tag;\n/** Type for <![CDATA[ ... ]]> */\nexports.CDATA = ElementType.CDATA;\n/** Type for <!doctype ...> */\nexports.Doctype = ElementType.Doctype;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_js_1 = require(\"./node.js\");\n__exportStar(require(\"./node.js\"), exports);\n// Default options\nvar defaultOpts = {\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_js_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_js_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_js_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n lastNode.data += data;\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n var node = new node_js_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_js_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_js_1.Text(\"\");\n var node = new node_js_1.CDATA([text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_js_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.cloneNode = exports.hasChildren = exports.isDocument = exports.isDirective = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = exports.Element = exports.Document = exports.CDATA = exports.NodeWithChildren = exports.ProcessingInstruction = exports.Comment = exports.Text = exports.DataNode = exports.Node = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * This object will be used as the prototype for Nodes when creating a\n * DOM-Level-1-compliant structure.\n */\nvar Node = /** @class */ (function () {\n function Node() {\n /** Parent of the node */\n this.parent = null;\n /** Previous sibling */\n this.prev = null;\n /** Next sibling */\n this.next = null;\n /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */\n this.startIndex = null;\n /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */\n this.endIndex = null;\n }\n Object.defineProperty(Node.prototype, \"parentNode\", {\n // Read-write aliases for properties\n /**\n * Same as {@link parent}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.parent;\n },\n set: function (parent) {\n this.parent = parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"previousSibling\", {\n /**\n * Same as {@link prev}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.prev;\n },\n set: function (prev) {\n this.prev = prev;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"nextSibling\", {\n /**\n * Same as {@link next}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.next;\n },\n set: function (next) {\n this.next = next;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Clone this node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\n Node.prototype.cloneNode = function (recursive) {\n if (recursive === void 0) { recursive = false; }\n return cloneNode(this, recursive);\n };\n return Node;\n}());\nexports.Node = Node;\n/**\n * A node that contains some data.\n */\nvar DataNode = /** @class */ (function (_super) {\n __extends(DataNode, _super);\n /**\n * @param data The content of the data node\n */\n function DataNode(data) {\n var _this = _super.call(this) || this;\n _this.data = data;\n return _this;\n }\n Object.defineProperty(DataNode.prototype, \"nodeValue\", {\n /**\n * Same as {@link data}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.data;\n },\n set: function (data) {\n this.data = data;\n },\n enumerable: false,\n configurable: true\n });\n return DataNode;\n}(Node));\nexports.DataNode = DataNode;\n/**\n * Text within the document.\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Text;\n return _this;\n }\n Object.defineProperty(Text.prototype, \"nodeType\", {\n get: function () {\n return 3;\n },\n enumerable: false,\n configurable: true\n });\n return Text;\n}(DataNode));\nexports.Text = Text;\n/**\n * Comments within the document.\n */\nvar Comment = /** @class */ (function (_super) {\n __extends(Comment, _super);\n function Comment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Comment;\n return _this;\n }\n Object.defineProperty(Comment.prototype, \"nodeType\", {\n get: function () {\n return 8;\n },\n enumerable: false,\n configurable: true\n });\n return Comment;\n}(DataNode));\nexports.Comment = Comment;\n/**\n * Processing instructions, including doc types.\n */\nvar ProcessingInstruction = /** @class */ (function (_super) {\n __extends(ProcessingInstruction, _super);\n function ProcessingInstruction(name, data) {\n var _this = _super.call(this, data) || this;\n _this.name = name;\n _this.type = domelementtype_1.ElementType.Directive;\n return _this;\n }\n Object.defineProperty(ProcessingInstruction.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n return ProcessingInstruction;\n}(DataNode));\nexports.ProcessingInstruction = ProcessingInstruction;\n/**\n * A `Node` that can have children.\n */\nvar NodeWithChildren = /** @class */ (function (_super) {\n __extends(NodeWithChildren, _super);\n /**\n * @param children Children of the node. Only certain node types can have children.\n */\n function NodeWithChildren(children) {\n var _this = _super.call(this) || this;\n _this.children = children;\n return _this;\n }\n Object.defineProperty(NodeWithChildren.prototype, \"firstChild\", {\n // Aliases\n /** First child of the node. */\n get: function () {\n var _a;\n return (_a = this.children[0]) !== null && _a !== void 0 ? _a : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"lastChild\", {\n /** Last child of the node. */\n get: function () {\n return this.children.length > 0\n ? this.children[this.children.length - 1]\n : null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NodeWithChildren.prototype, \"childNodes\", {\n /**\n * Same as {@link children}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.children;\n },\n set: function (children) {\n this.children = children;\n },\n enumerable: false,\n configurable: true\n });\n return NodeWithChildren;\n}(Node));\nexports.NodeWithChildren = NodeWithChildren;\nvar CDATA = /** @class */ (function (_super) {\n __extends(CDATA, _super);\n function CDATA() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.CDATA;\n return _this;\n }\n Object.defineProperty(CDATA.prototype, \"nodeType\", {\n get: function () {\n return 4;\n },\n enumerable: false,\n configurable: true\n });\n return CDATA;\n}(NodeWithChildren));\nexports.CDATA = CDATA;\n/**\n * The root node of the document.\n */\nvar Document = /** @class */ (function (_super) {\n __extends(Document, _super);\n function Document() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = domelementtype_1.ElementType.Root;\n return _this;\n }\n Object.defineProperty(Document.prototype, \"nodeType\", {\n get: function () {\n return 9;\n },\n enumerable: false,\n configurable: true\n });\n return Document;\n}(NodeWithChildren));\nexports.Document = Document;\n/**\n * An element within the DOM.\n */\nvar Element = /** @class */ (function (_super) {\n __extends(Element, _super);\n /**\n * @param name Name of the tag, eg. `div`, `span`.\n * @param attribs Object mapping attribute names to attribute values.\n * @param children Children of the node.\n */\n function Element(name, attribs, children, type) {\n if (children === void 0) { children = []; }\n if (type === void 0) { type = name === \"script\"\n ? domelementtype_1.ElementType.Script\n : name === \"style\"\n ? domelementtype_1.ElementType.Style\n : domelementtype_1.ElementType.Tag; }\n var _this = _super.call(this, children) || this;\n _this.name = name;\n _this.attribs = attribs;\n _this.type = type;\n return _this;\n }\n Object.defineProperty(Element.prototype, \"nodeType\", {\n get: function () {\n return 1;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"tagName\", {\n // DOM Level 1 aliases\n /**\n * Same as {@link name}.\n * [DOM spec](https://dom.spec.whatwg.org)-compatible alias.\n */\n get: function () {\n return this.name;\n },\n set: function (name) {\n this.name = name;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Element.prototype, \"attributes\", {\n get: function () {\n var _this = this;\n return Object.keys(this.attribs).map(function (name) {\n var _a, _b;\n return ({\n name: name,\n value: _this.attribs[name],\n namespace: (_a = _this[\"x-attribsNamespace\"]) === null || _a === void 0 ? void 0 : _a[name],\n prefix: (_b = _this[\"x-attribsPrefix\"]) === null || _b === void 0 ? void 0 : _b[name],\n });\n });\n },\n enumerable: false,\n configurable: true\n });\n return Element;\n}(NodeWithChildren));\nexports.Element = Element;\n/**\n * @param node Node to check.\n * @returns `true` if the node is a `Element`, `false` otherwise.\n */\nfunction isTag(node) {\n return (0, domelementtype_1.isTag)(node);\n}\nexports.isTag = isTag;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `CDATA`, `false` otherwise.\n */\nfunction isCDATA(node) {\n return node.type === domelementtype_1.ElementType.CDATA;\n}\nexports.isCDATA = isCDATA;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Text`, `false` otherwise.\n */\nfunction isText(node) {\n return node.type === domelementtype_1.ElementType.Text;\n}\nexports.isText = isText;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `Comment`, `false` otherwise.\n */\nfunction isComment(node) {\n return node.type === domelementtype_1.ElementType.Comment;\n}\nexports.isComment = isComment;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDirective(node) {\n return node.type === domelementtype_1.ElementType.Directive;\n}\nexports.isDirective = isDirective;\n/**\n * @param node Node to check.\n * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise.\n */\nfunction isDocument(node) {\n return node.type === domelementtype_1.ElementType.Root;\n}\nexports.isDocument = isDocument;\n/**\n * @param node Node to check.\n * @returns `true` if the node has children, `false` otherwise.\n */\nfunction hasChildren(node) {\n return Object.prototype.hasOwnProperty.call(node, \"children\");\n}\nexports.hasChildren = hasChildren;\n/**\n * Clone a node, and optionally its children.\n *\n * @param recursive Clone child nodes as well.\n * @returns A clone of the node.\n */\nfunction cloneNode(node, recursive) {\n if (recursive === void 0) { recursive = false; }\n var result;\n if (isText(node)) {\n result = new Text(node.data);\n }\n else if (isComment(node)) {\n result = new Comment(node.data);\n }\n else if (isTag(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_1 = new Element(node.name, __assign({}, node.attribs), children);\n children.forEach(function (child) { return (child.parent = clone_1); });\n if (node.namespace != null) {\n clone_1.namespace = node.namespace;\n }\n if (node[\"x-attribsNamespace\"]) {\n clone_1[\"x-attribsNamespace\"] = __assign({}, node[\"x-attribsNamespace\"]);\n }\n if (node[\"x-attribsPrefix\"]) {\n clone_1[\"x-attribsPrefix\"] = __assign({}, node[\"x-attribsPrefix\"]);\n }\n result = clone_1;\n }\n else if (isCDATA(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_2 = new CDATA(children);\n children.forEach(function (child) { return (child.parent = clone_2); });\n result = clone_2;\n }\n else if (isDocument(node)) {\n var children = recursive ? cloneChildren(node.children) : [];\n var clone_3 = new Document(children);\n children.forEach(function (child) { return (child.parent = clone_3); });\n if (node[\"x-mode\"]) {\n clone_3[\"x-mode\"] = node[\"x-mode\"];\n }\n result = clone_3;\n }\n else if (isDirective(node)) {\n var instruction = new ProcessingInstruction(node.name, node.data);\n if (node[\"x-name\"] != null) {\n instruction[\"x-name\"] = node[\"x-name\"];\n instruction[\"x-publicId\"] = node[\"x-publicId\"];\n instruction[\"x-systemId\"] = node[\"x-systemId\"];\n }\n result = instruction;\n }\n else {\n throw new Error(\"Not implemented yet: \".concat(node.type));\n }\n result.startIndex = node.startIndex;\n result.endIndex = node.endIndex;\n if (node.sourceCodeLocation != null) {\n result.sourceCodeLocation = node.sourceCodeLocation;\n }\n return result;\n}\nexports.cloneNode = cloneNode;\nfunction cloneChildren(childs) {\n var children = childs.map(function (child) { return cloneNode(child, true); });\n for (var i = 1; i < children.length; i++) {\n children[i].prev = children[i - 1];\n children[i - 1].next = children[i];\n }\n return children;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_js_1 = require(\"./stringify.js\");\nvar legacy_js_1 = require(\"./legacy.js\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @category Feeds\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_js_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs[\"href\"];\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_js_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children) || fetch(\"dc:date\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_js_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs[\"medium\"],\n isDefault: !!attribs[\"isDefault\"],\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs[\"expression\"]) {\n media.expression = attribs[\"expression\"];\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_js_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_js_1.textContent)((0, legacy_js_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n//# sourceMappingURL=feeds.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.DocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another\n * member.\n *\n * @category Helpers\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't contained by other nodes.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\nexports.removeSubsets = removeSubsets;\n/**\n * @category Helpers\n * @see {@link http://dom.spec.whatwg.org/#dom-node-comparedocumentposition}\n */\nvar DocumentPosition;\n(function (DocumentPosition) {\n DocumentPosition[DocumentPosition[\"DISCONNECTED\"] = 1] = \"DISCONNECTED\";\n DocumentPosition[DocumentPosition[\"PRECEDING\"] = 2] = \"PRECEDING\";\n DocumentPosition[DocumentPosition[\"FOLLOWING\"] = 4] = \"FOLLOWING\";\n DocumentPosition[DocumentPosition[\"CONTAINS\"] = 8] = \"CONTAINS\";\n DocumentPosition[DocumentPosition[\"CONTAINED_BY\"] = 16] = \"CONTAINED_BY\";\n})(DocumentPosition = exports.DocumentPosition || (exports.DocumentPosition = {}));\n/**\n * Compare the position of one node against another node in any other document,\n * returning a bitmask with the values from {@link DocumentPosition}.\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent.\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @category Helpers\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return DocumentPosition.DISCONNECTED;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return DocumentPosition.FOLLOWING | DocumentPosition.CONTAINED_BY;\n }\n return DocumentPosition.FOLLOWING;\n }\n if (sharedParent === nodeA) {\n return DocumentPosition.PRECEDING | DocumentPosition.CONTAINS;\n }\n return DocumentPosition.PRECEDING;\n}\nexports.compareDocumentPosition = compareDocumentPosition;\n/**\n * Sort an array of nodes based on their relative position in the document,\n * removing any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @category Helpers\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & DocumentPosition.PRECEDING) {\n return -1;\n }\n else if (relative & DocumentPosition.FOLLOWING) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\nexports.uniqueSort = uniqueSort;\n//# sourceMappingURL=helpers.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasChildren = exports.isDocument = exports.isComment = exports.isText = exports.isCDATA = exports.isTag = void 0;\n__exportStar(require(\"./stringify.js\"), exports);\n__exportStar(require(\"./traversal.js\"), exports);\n__exportStar(require(\"./manipulation.js\"), exports);\n__exportStar(require(\"./querying.js\"), exports);\n__exportStar(require(\"./legacy.js\"), exports);\n__exportStar(require(\"./helpers.js\"), exports);\n__exportStar(require(\"./feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"isTag\", { enumerable: true, get: function () { return domhandler_1.isTag; } });\nObject.defineProperty(exports, \"isCDATA\", { enumerable: true, get: function () { return domhandler_1.isCDATA; } });\nObject.defineProperty(exports, \"isText\", { enumerable: true, get: function () { return domhandler_1.isText; } });\nObject.defineProperty(exports, \"isComment\", { enumerable: true, get: function () { return domhandler_1.isComment; } });\nObject.defineProperty(exports, \"isDocument\", { enumerable: true, get: function () { return domhandler_1.isDocument; } });\nObject.defineProperty(exports, \"hasChildren\", { enumerable: true, get: function () { return domhandler_1.hasChildren; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_js_1 = require(\"./querying.js\");\n/**\n * A map of functions to check nodes against.\n */\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * Returns a function to check whether a node has an attribute with a particular\n * value.\n *\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a\n * particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * Returns a function that returns `true` if either of the input functions\n * returns `true` for a node.\n *\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either of the input\n * functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * Returns a function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n *\n * @param options An object describing nodes to look for.\n * @returns A function that executes all checks in `options` and returns `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * Checks whether a node matches the description in `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\n/**\n * Returns all nodes that match `options`.\n *\n * @category Legacy Query Functions\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_js_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\n/**\n * Returns the node with the supplied ID.\n *\n * @category Legacy Query Functions\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_js_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\n/**\n * Returns all nodes with the supplied `tagName`.\n *\n * @category Legacy Query Functions\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_name\"](tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\n/**\n * Returns all nodes with the supplied `type`.\n *\n * @category Legacy Query Functions\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_js_1.filter)(Checks[\"tag_type\"](type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n//# sourceMappingURL=legacy.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @category Manipulation\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n var childsIndex = childs.lastIndexOf(elem);\n if (childsIndex >= 0) {\n childs.splice(childsIndex, 1);\n }\n }\n elem.next = null;\n elem.prev = null;\n elem.parent = null;\n}\nexports.removeElement = removeElement;\n/**\n * Replace an element in the dom\n *\n * @category Manipulation\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n elem.parent = null;\n }\n}\nexports.replaceElement = replaceElement;\n/**\n * Append a child to an element.\n *\n * @category Manipulation\n * @param parent The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(parent, child) {\n removeElement(child);\n child.next = null;\n child.parent = parent;\n if (parent.children.push(child) > 1) {\n var sibling = parent.children[parent.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\n/**\n * Append an element after another.\n *\n * @category Manipulation\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\n/**\n * Prepend a child to an element.\n *\n * @category Manipulation\n * @param parent The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(parent, child) {\n removeElement(child);\n child.parent = parent;\n child.prev = null;\n if (parent.children.unshift(child) !== 1) {\n var sibling = parent.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\n/**\n * Prepend an element before another.\n *\n * @category Manipulation\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\nexports.prepend = prepend;\n//# sourceMappingURL=manipulation.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function. If `node` is not an array, it will be wrapped in one.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return find(test, Array.isArray(node) ? node : [node], recurse, limit);\n}\nexports.filter = filter;\n/**\n * Search an array of nodes and their children for nodes passing a test function.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n /** Stack of the arrays we are looking at. */\n var nodeStack = [nodes];\n /** Stack of the indices within the arrays. */\n var indexStack = [0];\n for (;;) {\n // First, check if the current array has any more elements to look at.\n if (indexStack[0] >= nodeStack[0].length) {\n // If we have no more arrays to look at, we are done.\n if (indexStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n return result;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n /*\n * Add the children to the stack. We are depth-first, so this is\n * the next array we look at.\n */\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\nexports.find = find;\n/**\n * Finds the first element inside of an array that matches a test function. This is an alias for `Array.prototype.find`.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n * @deprecated Use `Array.prototype.find` directly.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\n/**\n * Finds one element in a tree that passes a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Node or array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var node = nodes[i];\n if (!(0, domhandler_1.isTag)(node)) {\n continue;\n }\n else if (test(node)) {\n elem = node;\n }\n else if (recurse && node.children.length > 0) {\n elem = findOne(test, node.children, true);\n }\n }\n return elem;\n}\nexports.findOne = findOne;\n/**\n * Checks if a tree of nodes contains at least one node passing a test.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing the test.\n */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) || existsOne(test, checked.children));\n });\n}\nexports.existsOne = existsOne;\n/**\n * Search an array of nodes and their children for elements passing a test function.\n *\n * Same as `find`, but limited to elements and with less options, leading to reduced complexity.\n *\n * @category Querying\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var result = [];\n var nodeStack = [nodes];\n var indexStack = [0];\n for (;;) {\n if (indexStack[0] >= nodeStack[0].length) {\n if (nodeStack.length === 1) {\n return result;\n }\n // Otherwise, remove the current array from the stack.\n nodeStack.shift();\n indexStack.shift();\n // Loop back to the start to continue with the next array.\n continue;\n }\n var elem = nodeStack[0][indexStack[0]++];\n if (!(0, domhandler_1.isTag)(elem))\n continue;\n if (test(elem))\n result.push(elem);\n if (elem.children.length > 0) {\n indexStack.unshift(0);\n nodeStack.unshift(elem.children);\n }\n }\n}\nexports.findAll = findAll;\n//# sourceMappingURL=querying.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\n/**\n * @category Stringify\n * @deprecated Use the `dom-serializer` module directly.\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `<br>` tags. Ignores comments.\n *\n * @category Stringify\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\n/**\n * Get a node's text content. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\n/**\n * Get a node's inner text, ignoring `<script>` and `<style>` tags. Ignores comments.\n *\n * @category Stringify\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Get a node's children.\n *\n * @category Traversal\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n return (0, domhandler_1.hasChildren)(elem) ? elem.children : [];\n}\nexports.getChildren = getChildren;\n/**\n * Get a node's parent.\n *\n * @category Traversal\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node, or `null` if `elem` is a root node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first. If we don't\n * have a parent (the element is a root node), we walk the element's `prev` &\n * `next` to get all remaining nodes.\n *\n * @category Traversal\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings, including `elem`.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\n/**\n * Gets an attribute from an element.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\n/**\n * Checks whether an element has an attribute.\n *\n * @category Traversal\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\n/**\n * Get the tag name of an element.\n *\n * @category Traversal\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\n/**\n * Returns the next element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag, or `null` if there is no next\n * sibling.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\n/**\n * Returns the previous element sibling of a node.\n *\n * @category Traversal\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag, or `null` if there is no\n * previous sibling.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n//# sourceMappingURL=traversal.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTMLAttribute = exports.decodeHTML = exports.determineBranch = exports.EntityDecoder = exports.DecodingMode = exports.BinTrieFlags = exports.fromCodePoint = exports.replaceCodePoint = exports.decodeCodePoint = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_js_1 = __importDefault(require(\"./generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(require(\"./generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(require(\"./decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = require(\"./decode_codepoint.js\");\nObject.defineProperty(exports, \"replaceCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.replaceCodePoint; } });\nObject.defineProperty(exports, \"fromCodePoint\", { enumerable: true, get: function () { return decode_codepoint_js_2.fromCodePoint; } });\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nvar TO_LOWER_BIT = 32;\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nvar DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode = exports.DecodingMode || (exports.DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nvar EntityDecoder = /** @class */ (function () {\n function EntityDecoder(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n EntityDecoder.prototype.startEntity = function (decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n };\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param string The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.write = function (str, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (str.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(str, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(str, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(str, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(str, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(str, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(str, offset);\n }\n }\n };\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericStart = function (str, offset) {\n if (offset >= str.length) {\n return -1;\n }\n if ((str.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(str, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(str, offset);\n };\n EntityDecoder.prototype.addToNumericResult = function (str, start, end, base) {\n if (start !== end) {\n var digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n parseInt(str.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n };\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericHex = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 16);\n return -1;\n };\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNumericDecimal = function (str, offset) {\n var startIdx = offset;\n while (offset < str.length) {\n var char = str.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(str, startIdx, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(str, startIdx, offset, 10);\n return -1;\n };\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n EntityDecoder.prototype.emitNumericEntity = function (lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint((0, decode_codepoint_js_1.replaceCodePoint)(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n };\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param str The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n EntityDecoder.prototype.stateNamedEntity = function (str, offset) {\n var decodeTree = this.decodeTree;\n var current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < str.length; offset++, this.excess++) {\n var char = str.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n };\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNotTerminatedNamedEntity = function () {\n var _a;\n var _b = this, result = _b.result, decodeTree = _b.decodeTree;\n var valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n };\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.emitNamedEntityData = function (result, valueLength, consumed) {\n var decodeTree = this.decodeTree;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n };\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n EntityDecoder.prototype.end = function () {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n };\n return EntityDecoder;\n}());\nexports.EntityDecoder = EntityDecoder;\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n var ret = \"\";\n var decoder = new EntityDecoder(decodeTree, function (str) { return (ret += (0, decode_codepoint_js_1.fromCodePoint)(str)); });\n return function decodeWithTrie(str, decodeMode) {\n var lastIndex = 0;\n var offset = 0;\n while ((offset = str.indexOf(\"&\", offset)) >= 0) {\n ret += str.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n var len = decoder.write(str, \n // Skip the \"&\"\n offset + 1);\n if (len < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + len;\n // If `len` is 0, skip the current `&` and continue.\n offset = len === 0 ? lastIndex + 1 : lastIndex;\n }\n var result = ret + str.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n ret = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n var value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_js_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_js_1.default);\n/**\n * Decodes an HTML string.\n *\n * @param str The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nfunction decodeHTML(str, mode) {\n if (mode === void 0) { mode = DecodingMode.Legacy; }\n return htmlDecoder(str, mode);\n}\nexports.decodeHTML = decodeHTML;\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLAttribute(str) {\n return htmlDecoder(str, DecodingMode.Attribute);\n}\nexports.decodeHTMLAttribute = decodeHTMLAttribute;\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param str The string to decode.\n * @returns The decoded string.\n */\nfunction decodeXML(str) {\n return xmlDecoder(str, DecodingMode.Strict);\n}\nexports.decodeXML = decodeXML;\n//# sourceMappingURL=decode.js.map","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceCodePoint = exports.fromCodePoint = void 0;\nvar decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexports.fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nfunction replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return 0xfffd;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\nexports.replaceCodePoint = replaceCodePoint;\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nfunction decodeCodePoint(codePoint) {\n return (0, exports.fromCodePoint)(replaceCodePoint(codePoint));\n}\nexports.default = decodeCodePoint;\n//# sourceMappingURL=decode_codepoint.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeNonAsciiHTML = exports.encodeHTML = void 0;\nvar encode_html_js_1 = __importDefault(require(\"./generated/encode-html.js\"));\nvar escape_js_1 = require(\"./escape.js\");\nvar htmlReplacer = /[\\t\\n!-,./:-@[-`\\f{-}$\\x80-\\uFFFF]/g;\n/**\n * Encodes all characters in the input using HTML entities. This includes\n * characters that are valid ASCII characters in HTML documents, such as `#`.\n *\n * To get a more compact output, consider using the `encodeNonAsciiHTML`\n * function, which will only encode characters that are not valid in HTML\n * documents, as well as non-ASCII characters.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeHTML(data) {\n return encodeHTMLTrieRe(htmlReplacer, data);\n}\nexports.encodeHTML = encodeHTML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities. This function will not encode characters that\n * are valid in HTML documents, such as `#`.\n *\n * If a character has no equivalent entity, a numeric hexadecimal reference\n * (eg. `ü`) will be used.\n */\nfunction encodeNonAsciiHTML(data) {\n return encodeHTMLTrieRe(escape_js_1.xmlReplacer, data);\n}\nexports.encodeNonAsciiHTML = encodeNonAsciiHTML;\nfunction encodeHTMLTrieRe(regExp, str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = regExp.exec(str)) !== null) {\n var i = match.index;\n ret += str.substring(lastIdx, i);\n var char = str.charCodeAt(i);\n var next = encode_html_js_1.default.get(char);\n if (typeof next === \"object\") {\n // We are in a branch. Try to match the next char.\n if (i + 1 < str.length) {\n var nextChar = str.charCodeAt(i + 1);\n var value = typeof next.n === \"number\"\n ? next.n === nextChar\n ? next.o\n : undefined\n : next.n.get(nextChar);\n if (value !== undefined) {\n ret += value;\n lastIdx = regExp.lastIndex += 1;\n continue;\n }\n }\n next = next.v;\n }\n // We might have a tree node without a value; skip and use a numeric entity.\n if (next !== undefined) {\n ret += next;\n lastIdx = i + 1;\n }\n else {\n var cp = (0, escape_js_1.getCodePoint)(str, i);\n ret += \"&#x\".concat(cp.toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = regExp.lastIndex += Number(cp !== char);\n }\n }\n return ret + str.substr(lastIdx);\n}\n//# sourceMappingURL=encode.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.getCodePoint = exports.xmlReplacer = void 0;\nexports.xmlReplacer = /[\"&'<>$\\x80-\\uFFFF]/g;\nvar xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexports.getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? function (str, index) { return str.codePointAt(index); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c, index) {\n return (c.charCodeAt(index) & 0xfc00) === 0xd800\n ? (c.charCodeAt(index) - 0xd800) * 0x400 +\n c.charCodeAt(index + 1) -\n 0xdc00 +\n 0x10000\n : c.charCodeAt(index);\n };\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nfunction encodeXML(str) {\n var ret = \"\";\n var lastIdx = 0;\n var match;\n while ((match = exports.xmlReplacer.exec(str)) !== null) {\n var i = match.index;\n var char = str.charCodeAt(i);\n var next = xmlCodeMap.get(char);\n if (next !== undefined) {\n ret += str.substring(lastIdx, i) + next;\n lastIdx = i + 1;\n }\n else {\n ret += \"\".concat(str.substring(lastIdx, i), \"&#x\").concat((0, exports.getCodePoint)(str, i).toString(16), \";\");\n // Increase by 1 if we have a surrogate pair\n lastIdx = exports.xmlReplacer.lastIndex += Number((char & 0xfc00) === 0xd800);\n }\n }\n return ret + str.substr(lastIdx);\n}\nexports.encodeXML = encodeXML;\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexports.escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n var match;\n var lastIdx = 0;\n var result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIdx !== match.index) {\n result += data.substring(lastIdx, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIdx = match.index + 1;\n }\n return result + data.substring(lastIdx);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexports.escapeUTF8 = getEscaper(/[&<>'\"]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeAttribute = getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexports.escapeText = getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u1d41<\\xd5\\u0131\\u028a\\u049d\\u057b\\u05d0\\u0675\\u06de\\u07a2\\u07d6\\u080f\\u0a4a\\u0a91\\u0da1\\u0e6d\\u0f09\\u0f26\\u10ca\\u1228\\u12e1\\u1415\\u149d\\u14c3\\u14df\\u1525\\0\\0\\0\\0\\0\\0\\u156b\\u16cd\\u198d\\u1c12\\u1ddd\\u1f7e\\u2060\\u21b0\\u228d\\u23c0\\u23fb\\u2442\\u2824\\u2912\\u2d08\\u2e48\\u2fce\\u3016\\u32ba\\u3639\\u37ac\\u38fe\\u3a28\\u3a71\\u3ae0\\u3b2e\\u0800EMabcfglmnoprstu\\\\bfms\\x7f\\x84\\x8b\\x90\\x95\\x98\\xa6\\xb3\\xb9\\xc8\\xcflig\\u803b\\xc6\\u40c6P\\u803b&\\u4026cute\\u803b\\xc1\\u40c1reve;\\u4102\\u0100iyx}rc\\u803b\\xc2\\u40c2;\\u4410r;\\uc000\\ud835\\udd04rave\\u803b\\xc0\\u40c0pha;\\u4391acr;\\u4100d;\\u6a53\\u0100gp\\x9d\\xa1on;\\u4104f;\\uc000\\ud835\\udd38plyFunction;\\u6061ing\\u803b\\xc5\\u40c5\\u0100cs\\xbe\\xc3r;\\uc000\\ud835\\udc9cign;\\u6254ilde\\u803b\\xc3\\u40c3ml\\u803b\\xc4\\u40c4\\u0400aceforsu\\xe5\\xfb\\xfe\\u0117\\u011c\\u0122\\u0127\\u012a\\u0100cr\\xea\\xf2kslash;\\u6216\\u0176\\xf6\\xf8;\\u6ae7ed;\\u6306y;\\u4411\\u0180crt\\u0105\\u010b\\u0114ause;\\u6235noullis;\\u612ca;\\u4392r;\\uc000\\ud835\\udd05pf;\\uc000\\ud835\\udd39eve;\\u42d8c\\xf2\\u0113mpeq;\\u624e\\u0700HOacdefhilorsu\\u014d\\u0151\\u0156\\u0180\\u019e\\u01a2\\u01b5\\u01b7\\u01ba\\u01dc\\u0215\\u0273\\u0278\\u027ecy;\\u4427PY\\u803b\\xa9\\u40a9\\u0180cpy\\u015d\\u0162\\u017aute;\\u4106\\u0100;i\\u0167\\u0168\\u62d2talDifferentialD;\\u6145leys;\\u612d\\u0200aeio\\u0189\\u018e\\u0194\\u0198ron;\\u410cdil\\u803b\\xc7\\u40c7rc;\\u4108nint;\\u6230ot;\\u410a\\u0100dn\\u01a7\\u01adilla;\\u40b8terDot;\\u40b7\\xf2\\u017fi;\\u43a7rcle\\u0200DMPT\\u01c7\\u01cb\\u01d1\\u01d6ot;\\u6299inus;\\u6296lus;\\u6295imes;\\u6297o\\u0100cs\\u01e2\\u01f8kwiseContourIntegral;\\u6232eCurly\\u0100DQ\\u0203\\u020foubleQuote;\\u601duote;\\u6019\\u0200lnpu\\u021e\\u0228\\u0247\\u0255on\\u0100;e\\u0225\\u0226\\u6237;\\u6a74\\u0180git\\u022f\\u0236\\u023aruent;\\u6261nt;\\u622fourIntegral;\\u622e\\u0100fr\\u024c\\u024e;\\u6102oduct;\\u6210nterClockwiseContourIntegral;\\u6233oss;\\u6a2fcr;\\uc000\\ud835\\udc9ep\\u0100;C\\u0284\\u0285\\u62d3ap;\\u624d\\u0580DJSZacefios\\u02a0\\u02ac\\u02b0\\u02b4\\u02b8\\u02cb\\u02d7\\u02e1\\u02e6\\u0333\\u048d\\u0100;o\\u0179\\u02a5trahd;\\u6911cy;\\u4402cy;\\u4405cy;\\u440f\\u0180grs\\u02bf\\u02c4\\u02c7ger;\\u6021r;\\u61a1hv;\\u6ae4\\u0100ay\\u02d0\\u02d5ron;\\u410e;\\u4414l\\u0100;t\\u02dd\\u02de\\u6207a;\\u4394r;\\uc000\\ud835\\udd07\\u0100af\\u02eb\\u0327\\u0100cm\\u02f0\\u0322ritical\\u0200ADGT\\u0300\\u0306\\u0316\\u031ccute;\\u40b4o\\u0174\\u030b\\u030d;\\u42d9bleAcute;\\u42ddrave;\\u4060ilde;\\u42dcond;\\u62c4ferentialD;\\u6146\\u0470\\u033d\\0\\0\\0\\u0342\\u0354\\0\\u0405f;\\uc000\\ud835\\udd3b\\u0180;DE\\u0348\\u0349\\u034d\\u40a8ot;\\u60dcqual;\\u6250ble\\u0300CDLRUV\\u0363\\u0372\\u0382\\u03cf\\u03e2\\u03f8ontourIntegra\\xec\\u0239o\\u0274\\u0379\\0\\0\\u037b\\xbb\\u0349nArrow;\\u61d3\\u0100eo\\u0387\\u03a4ft\\u0180ART\\u0390\\u0396\\u03a1rrow;\\u61d0ightArrow;\\u61d4e\\xe5\\u02cang\\u0100LR\\u03ab\\u03c4eft\\u0100AR\\u03b3\\u03b9rrow;\\u67f8ightArrow;\\u67faightArrow;\\u67f9ight\\u0100AT\\u03d8\\u03derrow;\\u61d2ee;\\u62a8p\\u0241\\u03e9\\0\\0\\u03efrrow;\\u61d1ownArrow;\\u61d5erticalBar;\\u6225n\\u0300ABLRTa\\u0412\\u042a\\u0430\\u045e\\u047f\\u037crrow\\u0180;BU\\u041d\\u041e\\u0422\\u6193ar;\\u6913pArrow;\\u61f5reve;\\u4311eft\\u02d2\\u043a\\0\\u0446\\0\\u0450ightVector;\\u6950eeVector;\\u695eector\\u0100;B\\u0459\\u045a\\u61bdar;\\u6956ight\\u01d4\\u0467\\0\\u0471eeVector;\\u695fector\\u0100;B\\u047a\\u047b\\u61c1ar;\\u6957ee\\u0100;A\\u0486\\u0487\\u62a4rrow;\\u61a7\\u0100ct\\u0492\\u0497r;\\uc000\\ud835\\udc9frok;\\u4110\\u0800NTacdfglmopqstux\\u04bd\\u04c0\\u04c4\\u04cb\\u04de\\u04e2\\u04e7\\u04ee\\u04f5\\u0521\\u052f\\u0536\\u0552\\u055d\\u0560\\u0565G;\\u414aH\\u803b\\xd0\\u40d0cute\\u803b\\xc9\\u40c9\\u0180aiy\\u04d2\\u04d7\\u04dcron;\\u411arc\\u803b\\xca\\u40ca;\\u442dot;\\u4116r;\\uc000\\ud835\\udd08rave\\u803b\\xc8\\u40c8ement;\\u6208\\u0100ap\\u04fa\\u04fecr;\\u4112ty\\u0253\\u0506\\0\\0\\u0512mallSquare;\\u65fberySmallSquare;\\u65ab\\u0100gp\\u0526\\u052aon;\\u4118f;\\uc000\\ud835\\udd3csilon;\\u4395u\\u0100ai\\u053c\\u0549l\\u0100;T\\u0542\\u0543\\u6a75ilde;\\u6242librium;\\u61cc\\u0100ci\\u0557\\u055ar;\\u6130m;\\u6a73a;\\u4397ml\\u803b\\xcb\\u40cb\\u0100ip\\u056a\\u056fsts;\\u6203onentialE;\\u6147\\u0280cfios\\u0585\\u0588\\u058d\\u05b2\\u05ccy;\\u4424r;\\uc000\\ud835\\udd09lled\\u0253\\u0597\\0\\0\\u05a3mallSquare;\\u65fcerySmallSquare;\\u65aa\\u0370\\u05ba\\0\\u05bf\\0\\0\\u05c4f;\\uc000\\ud835\\udd3dAll;\\u6200riertrf;\\u6131c\\xf2\\u05cb\\u0600JTabcdfgorst\\u05e8\\u05ec\\u05ef\\u05fa\\u0600\\u0612\\u0616\\u061b\\u061d\\u0623\\u066c\\u0672cy;\\u4403\\u803b>\\u403emma\\u0100;d\\u05f7\\u05f8\\u4393;\\u43dcreve;\\u411e\\u0180eiy\\u0607\\u060c\\u0610dil;\\u4122rc;\\u411c;\\u4413ot;\\u4120r;\\uc000\\ud835\\udd0a;\\u62d9pf;\\uc000\\ud835\\udd3eeater\\u0300EFGLST\\u0635\\u0644\\u064e\\u0656\\u065b\\u0666qual\\u0100;L\\u063e\\u063f\\u6265ess;\\u62dbullEqual;\\u6267reater;\\u6aa2ess;\\u6277lantEqual;\\u6a7eilde;\\u6273cr;\\uc000\\ud835\\udca2;\\u626b\\u0400Aacfiosu\\u0685\\u068b\\u0696\\u069b\\u069e\\u06aa\\u06be\\u06caRDcy;\\u442a\\u0100ct\\u0690\\u0694ek;\\u42c7;\\u405eirc;\\u4124r;\\u610clbertSpace;\\u610b\\u01f0\\u06af\\0\\u06b2f;\\u610dizontalLine;\\u6500\\u0100ct\\u06c3\\u06c5\\xf2\\u06a9rok;\\u4126mp\\u0144\\u06d0\\u06d8ownHum\\xf0\\u012fqual;\\u624f\\u0700EJOacdfgmnostu\\u06fa\\u06fe\\u0703\\u0707\\u070e\\u071a\\u071e\\u0721\\u0728\\u0744\\u0778\\u078b\\u078f\\u0795cy;\\u4415lig;\\u4132cy;\\u4401cute\\u803b\\xcd\\u40cd\\u0100iy\\u0713\\u0718rc\\u803b\\xce\\u40ce;\\u4418ot;\\u4130r;\\u6111rave\\u803b\\xcc\\u40cc\\u0180;ap\\u0720\\u072f\\u073f\\u0100cg\\u0734\\u0737r;\\u412ainaryI;\\u6148lie\\xf3\\u03dd\\u01f4\\u0749\\0\\u0762\\u0100;e\\u074d\\u074e\\u622c\\u0100gr\\u0753\\u0758ral;\\u622bsection;\\u62c2isible\\u0100CT\\u076c\\u0772omma;\\u6063imes;\\u6062\\u0180gpt\\u077f\\u0783\\u0788on;\\u412ef;\\uc000\\ud835\\udd40a;\\u4399cr;\\u6110ilde;\\u4128\\u01eb\\u079a\\0\\u079ecy;\\u4406l\\u803b\\xcf\\u40cf\\u0280cfosu\\u07ac\\u07b7\\u07bc\\u07c2\\u07d0\\u0100iy\\u07b1\\u07b5rc;\\u4134;\\u4419r;\\uc000\\ud835\\udd0dpf;\\uc000\\ud835\\udd41\\u01e3\\u07c7\\0\\u07ccr;\\uc000\\ud835\\udca5rcy;\\u4408kcy;\\u4404\\u0380HJacfos\\u07e4\\u07e8\\u07ec\\u07f1\\u07fd\\u0802\\u0808cy;\\u4425cy;\\u440cppa;\\u439a\\u0100ey\\u07f6\\u07fbdil;\\u4136;\\u441ar;\\uc000\\ud835\\udd0epf;\\uc000\\ud835\\udd42cr;\\uc000\\ud835\\udca6\\u0580JTaceflmost\\u0825\\u0829\\u082c\\u0850\\u0863\\u09b3\\u09b8\\u09c7\\u09cd\\u0a37\\u0a47cy;\\u4409\\u803b<\\u403c\\u0280cmnpr\\u0837\\u083c\\u0841\\u0844\\u084dute;\\u4139bda;\\u439bg;\\u67ealacetrf;\\u6112r;\\u619e\\u0180aey\\u0857\\u085c\\u0861ron;\\u413ddil;\\u413b;\\u441b\\u0100fs\\u0868\\u0970t\\u0500ACDFRTUVar\\u087e\\u08a9\\u08b1\\u08e0\\u08e6\\u08fc\\u092f\\u095b\\u0390\\u096a\\u0100nr\\u0883\\u088fgleBracket;\\u67e8row\\u0180;BR\\u0899\\u089a\\u089e\\u6190ar;\\u61e4ightArrow;\\u61c6eiling;\\u6308o\\u01f5\\u08b7\\0\\u08c3bleBracket;\\u67e6n\\u01d4\\u08c8\\0\\u08d2eeVector;\\u6961ector\\u0100;B\\u08db\\u08dc\\u61c3ar;\\u6959loor;\\u630aight\\u0100AV\\u08ef\\u08f5rrow;\\u6194ector;\\u694e\\u0100er\\u0901\\u0917e\\u0180;AV\\u0909\\u090a\\u0910\\u62a3rrow;\\u61a4ector;\\u695aiangle\\u0180;BE\\u0924\\u0925\\u0929\\u62b2ar;\\u69cfqual;\\u62b4p\\u0180DTV\\u0937\\u0942\\u094cownVector;\\u6951eeVector;\\u6960ector\\u0100;B\\u0956\\u0957\\u61bfar;\\u6958ector\\u0100;B\\u0965\\u0966\\u61bcar;\\u6952ight\\xe1\\u039cs\\u0300EFGLST\\u097e\\u098b\\u0995\\u099d\\u09a2\\u09adqualGreater;\\u62daullEqual;\\u6266reater;\\u6276ess;\\u6aa1lantEqual;\\u6a7dilde;\\u6272r;\\uc000\\ud835\\udd0f\\u0100;e\\u09bd\\u09be\\u62d8ftarrow;\\u61daidot;\\u413f\\u0180npw\\u09d4\\u0a16\\u0a1bg\\u0200LRlr\\u09de\\u09f7\\u0a02\\u0a10eft\\u0100AR\\u09e6\\u09ecrrow;\\u67f5ightArrow;\\u67f7ightArrow;\\u67f6eft\\u0100ar\\u03b3\\u0a0aight\\xe1\\u03bfight\\xe1\\u03caf;\\uc000\\ud835\\udd43er\\u0100LR\\u0a22\\u0a2ceftArrow;\\u6199ightArrow;\\u6198\\u0180cht\\u0a3e\\u0a40\\u0a42\\xf2\\u084c;\\u61b0rok;\\u4141;\\u626a\\u0400acefiosu\\u0a5a\\u0a5d\\u0a60\\u0a77\\u0a7c\\u0a85\\u0a8b\\u0a8ep;\\u6905y;\\u441c\\u0100dl\\u0a65\\u0a6fiumSpace;\\u605flintrf;\\u6133r;\\uc000\\ud835\\udd10nusPlus;\\u6213pf;\\uc000\\ud835\\udd44c\\xf2\\u0a76;\\u439c\\u0480Jacefostu\\u0aa3\\u0aa7\\u0aad\\u0ac0\\u0b14\\u0b19\\u0d91\\u0d97\\u0d9ecy;\\u440acute;\\u4143\\u0180aey\\u0ab4\\u0ab9\\u0aberon;\\u4147dil;\\u4145;\\u441d\\u0180gsw\\u0ac7\\u0af0\\u0b0eative\\u0180MTV\\u0ad3\\u0adf\\u0ae8ediumSpace;\\u600bhi\\u0100cn\\u0ae6\\u0ad8\\xeb\\u0ad9eryThi\\xee\\u0ad9ted\\u0100GL\\u0af8\\u0b06reaterGreate\\xf2\\u0673essLes\\xf3\\u0a48Line;\\u400ar;\\uc000\\ud835\\udd11\\u0200Bnpt\\u0b22\\u0b28\\u0b37\\u0b3areak;\\u6060BreakingSpace;\\u40a0f;\\u6115\\u0680;CDEGHLNPRSTV\\u0b55\\u0b56\\u0b6a\\u0b7c\\u0ba1\\u0beb\\u0c04\\u0c5e\\u0c84\\u0ca6\\u0cd8\\u0d61\\u0d85\\u6aec\\u0100ou\\u0b5b\\u0b64ngruent;\\u6262pCap;\\u626doubleVerticalBar;\\u6226\\u0180lqx\\u0b83\\u0b8a\\u0b9bement;\\u6209ual\\u0100;T\\u0b92\\u0b93\\u6260ilde;\\uc000\\u2242\\u0338ists;\\u6204reater\\u0380;EFGLST\\u0bb6\\u0bb7\\u0bbd\\u0bc9\\u0bd3\\u0bd8\\u0be5\\u626fqual;\\u6271ullEqual;\\uc000\\u2267\\u0338reater;\\uc000\\u226b\\u0338ess;\\u6279lantEqual;\\uc000\\u2a7e\\u0338ilde;\\u6275ump\\u0144\\u0bf2\\u0bfdownHump;\\uc000\\u224e\\u0338qual;\\uc000\\u224f\\u0338e\\u0100fs\\u0c0a\\u0c27tTriangle\\u0180;BE\\u0c1a\\u0c1b\\u0c21\\u62eaar;\\uc000\\u29cf\\u0338qual;\\u62ecs\\u0300;EGLST\\u0c35\\u0c36\\u0c3c\\u0c44\\u0c4b\\u0c58\\u626equal;\\u6270reater;\\u6278ess;\\uc000\\u226a\\u0338lantEqual;\\uc000\\u2a7d\\u0338ilde;\\u6274ested\\u0100GL\\u0c68\\u0c79reaterGreater;\\uc000\\u2aa2\\u0338essLess;\\uc000\\u2aa1\\u0338recedes\\u0180;ES\\u0c92\\u0c93\\u0c9b\\u6280qual;\\uc000\\u2aaf\\u0338lantEqual;\\u62e0\\u0100ei\\u0cab\\u0cb9verseElement;\\u620cghtTriangle\\u0180;BE\\u0ccb\\u0ccc\\u0cd2\\u62ebar;\\uc000\\u29d0\\u0338qual;\\u62ed\\u0100qu\\u0cdd\\u0d0cuareSu\\u0100bp\\u0ce8\\u0cf9set\\u0100;E\\u0cf0\\u0cf3\\uc000\\u228f\\u0338qual;\\u62e2erset\\u0100;E\\u0d03\\u0d06\\uc000\\u2290\\u0338qual;\\u62e3\\u0180bcp\\u0d13\\u0d24\\u0d4eset\\u0100;E\\u0d1b\\u0d1e\\uc000\\u2282\\u20d2qual;\\u6288ceeds\\u0200;EST\\u0d32\\u0d33\\u0d3b\\u0d46\\u6281qual;\\uc000\\u2ab0\\u0338lantEqual;\\u62e1ilde;\\uc000\\u227f\\u0338erset\\u0100;E\\u0d58\\u0d5b\\uc000\\u2283\\u20d2qual;\\u6289ilde\\u0200;EFT\\u0d6e\\u0d6f\\u0d75\\u0d7f\\u6241qual;\\u6244ullEqual;\\u6247ilde;\\u6249erticalBar;\\u6224cr;\\uc000\\ud835\\udca9ilde\\u803b\\xd1\\u40d1;\\u439d\\u0700Eacdfgmoprstuv\\u0dbd\\u0dc2\\u0dc9\\u0dd5\\u0ddb\\u0de0\\u0de7\\u0dfc\\u0e02\\u0e20\\u0e22\\u0e32\\u0e3f\\u0e44lig;\\u4152cute\\u803b\\xd3\\u40d3\\u0100iy\\u0dce\\u0dd3rc\\u803b\\xd4\\u40d4;\\u441eblac;\\u4150r;\\uc000\\ud835\\udd12rave\\u803b\\xd2\\u40d2\\u0180aei\\u0dee\\u0df2\\u0df6cr;\\u414cga;\\u43a9cron;\\u439fpf;\\uc000\\ud835\\udd46enCurly\\u0100DQ\\u0e0e\\u0e1aoubleQuote;\\u601cuote;\\u6018;\\u6a54\\u0100cl\\u0e27\\u0e2cr;\\uc000\\ud835\\udcaaash\\u803b\\xd8\\u40d8i\\u016c\\u0e37\\u0e3cde\\u803b\\xd5\\u40d5es;\\u6a37ml\\u803b\\xd6\\u40d6er\\u0100BP\\u0e4b\\u0e60\\u0100ar\\u0e50\\u0e53r;\\u603eac\\u0100ek\\u0e5a\\u0e5c;\\u63deet;\\u63b4arenthesis;\\u63dc\\u0480acfhilors\\u0e7f\\u0e87\\u0e8a\\u0e8f\\u0e92\\u0e94\\u0e9d\\u0eb0\\u0efcrtialD;\\u6202y;\\u441fr;\\uc000\\ud835\\udd13i;\\u43a6;\\u43a0usMinus;\\u40b1\\u0100ip\\u0ea2\\u0eadncareplan\\xe5\\u069df;\\u6119\\u0200;eio\\u0eb9\\u0eba\\u0ee0\\u0ee4\\u6abbcedes\\u0200;EST\\u0ec8\\u0ec9\\u0ecf\\u0eda\\u627aqual;\\u6aaflantEqual;\\u627cilde;\\u627eme;\\u6033\\u0100dp\\u0ee9\\u0eeeuct;\\u620fortion\\u0100;a\\u0225\\u0ef9l;\\u621d\\u0100ci\\u0f01\\u0f06r;\\uc000\\ud835\\udcab;\\u43a8\\u0200Ufos\\u0f11\\u0f16\\u0f1b\\u0f1fOT\\u803b\\\"\\u4022r;\\uc000\\ud835\\udd14pf;\\u611acr;\\uc000\\ud835\\udcac\\u0600BEacefhiorsu\\u0f3e\\u0f43\\u0f47\\u0f60\\u0f73\\u0fa7\\u0faa\\u0fad\\u1096\\u10a9\\u10b4\\u10bearr;\\u6910G\\u803b\\xae\\u40ae\\u0180cnr\\u0f4e\\u0f53\\u0f56ute;\\u4154g;\\u67ebr\\u0100;t\\u0f5c\\u0f5d\\u61a0l;\\u6916\\u0180aey\\u0f67\\u0f6c\\u0f71ron;\\u4158dil;\\u4156;\\u4420\\u0100;v\\u0f78\\u0f79\\u611cerse\\u0100EU\\u0f82\\u0f99\\u0100lq\\u0f87\\u0f8eement;\\u620builibrium;\\u61cbpEquilibrium;\\u696fr\\xbb\\u0f79o;\\u43a1ght\\u0400ACDFTUVa\\u0fc1\\u0feb\\u0ff3\\u1022\\u1028\\u105b\\u1087\\u03d8\\u0100nr\\u0fc6\\u0fd2gleBracket;\\u67e9row\\u0180;BL\\u0fdc\\u0fdd\\u0fe1\\u6192ar;\\u61e5eftArrow;\\u61c4eiling;\\u6309o\\u01f5\\u0ff9\\0\\u1005bleBracket;\\u67e7n\\u01d4\\u100a\\0\\u1014eeVector;\\u695dector\\u0100;B\\u101d\\u101e\\u61c2ar;\\u6955loor;\\u630b\\u0100er\\u102d\\u1043e\\u0180;AV\\u1035\\u1036\\u103c\\u62a2rrow;\\u61a6ector;\\u695biangle\\u0180;BE\\u1050\\u1051\\u1055\\u62b3ar;\\u69d0qual;\\u62b5p\\u0180DTV\\u1063\\u106e\\u1078ownVector;\\u694feeVector;\\u695cector\\u0100;B\\u1082\\u1083\\u61bear;\\u6954ector\\u0100;B\\u1091\\u1092\\u61c0ar;\\u6953\\u0100pu\\u109b\\u109ef;\\u611dndImplies;\\u6970ightarrow;\\u61db\\u0100ch\\u10b9\\u10bcr;\\u611b;\\u61b1leDelayed;\\u69f4\\u0680HOacfhimoqstu\\u10e4\\u10f1\\u10f7\\u10fd\\u1119\\u111e\\u1151\\u1156\\u1161\\u1167\\u11b5\\u11bb\\u11bf\\u0100Cc\\u10e9\\u10eeHcy;\\u4429y;\\u4428FTcy;\\u442ccute;\\u415a\\u0280;aeiy\\u1108\\u1109\\u110e\\u1113\\u1117\\u6abcron;\\u4160dil;\\u415erc;\\u415c;\\u4421r;\\uc000\\ud835\\udd16ort\\u0200DLRU\\u112a\\u1134\\u113e\\u1149ownArrow\\xbb\\u041eeftArrow\\xbb\\u089aightArrow\\xbb\\u0fddpArrow;\\u6191gma;\\u43a3allCircle;\\u6218pf;\\uc000\\ud835\\udd4a\\u0272\\u116d\\0\\0\\u1170t;\\u621aare\\u0200;ISU\\u117b\\u117c\\u1189\\u11af\\u65a1ntersection;\\u6293u\\u0100bp\\u118f\\u119eset\\u0100;E\\u1197\\u1198\\u628fqual;\\u6291erset\\u0100;E\\u11a8\\u11a9\\u6290qual;\\u6292nion;\\u6294cr;\\uc000\\ud835\\udcaear;\\u62c6\\u0200bcmp\\u11c8\\u11db\\u1209\\u120b\\u0100;s\\u11cd\\u11ce\\u62d0et\\u0100;E\\u11cd\\u11d5qual;\\u6286\\u0100ch\\u11e0\\u1205eeds\\u0200;EST\\u11ed\\u11ee\\u11f4\\u11ff\\u627bqual;\\u6ab0lantEqual;\\u627dilde;\\u627fTh\\xe1\\u0f8c;\\u6211\\u0180;es\\u1212\\u1213\\u1223\\u62d1rset\\u0100;E\\u121c\\u121d\\u6283qual;\\u6287et\\xbb\\u1213\\u0580HRSacfhiors\\u123e\\u1244\\u1249\\u1255\\u125e\\u1271\\u1276\\u129f\\u12c2\\u12c8\\u12d1ORN\\u803b\\xde\\u40deADE;\\u6122\\u0100Hc\\u124e\\u1252cy;\\u440by;\\u4426\\u0100bu\\u125a\\u125c;\\u4009;\\u43a4\\u0180aey\\u1265\\u126a\\u126fron;\\u4164dil;\\u4162;\\u4422r;\\uc000\\ud835\\udd17\\u0100ei\\u127b\\u1289\\u01f2\\u1280\\0\\u1287efore;\\u6234a;\\u4398\\u0100cn\\u128e\\u1298kSpace;\\uc000\\u205f\\u200aSpace;\\u6009lde\\u0200;EFT\\u12ab\\u12ac\\u12b2\\u12bc\\u623cqual;\\u6243ullEqual;\\u6245ilde;\\u6248pf;\\uc000\\ud835\\udd4bipleDot;\\u60db\\u0100ct\\u12d6\\u12dbr;\\uc000\\ud835\\udcafrok;\\u4166\\u0ae1\\u12f7\\u130e\\u131a\\u1326\\0\\u132c\\u1331\\0\\0\\0\\0\\0\\u1338\\u133d\\u1377\\u1385\\0\\u13ff\\u1404\\u140a\\u1410\\u0100cr\\u12fb\\u1301ute\\u803b\\xda\\u40dar\\u0100;o\\u1307\\u1308\\u619fcir;\\u6949r\\u01e3\\u1313\\0\\u1316y;\\u440eve;\\u416c\\u0100iy\\u131e\\u1323rc\\u803b\\xdb\\u40db;\\u4423blac;\\u4170r;\\uc000\\ud835\\udd18rave\\u803b\\xd9\\u40d9acr;\\u416a\\u0100di\\u1341\\u1369er\\u0100BP\\u1348\\u135d\\u0100ar\\u134d\\u1350r;\\u405fac\\u0100ek\\u1357\\u1359;\\u63dfet;\\u63b5arenthesis;\\u63ddon\\u0100;P\\u1370\\u1371\\u62c3lus;\\u628e\\u0100gp\\u137b\\u137fon;\\u4172f;\\uc000\\ud835\\udd4c\\u0400ADETadps\\u1395\\u13ae\\u13b8\\u13c4\\u03e8\\u13d2\\u13d7\\u13f3rrow\\u0180;BD\\u1150\\u13a0\\u13a4ar;\\u6912ownArrow;\\u61c5ownArrow;\\u6195quilibrium;\\u696eee\\u0100;A\\u13cb\\u13cc\\u62a5rrow;\\u61a5own\\xe1\\u03f3er\\u0100LR\\u13de\\u13e8eftArrow;\\u6196ightArrow;\\u6197i\\u0100;l\\u13f9\\u13fa\\u43d2on;\\u43a5ing;\\u416ecr;\\uc000\\ud835\\udcb0ilde;\\u4168ml\\u803b\\xdc\\u40dc\\u0480Dbcdefosv\\u1427\\u142c\\u1430\\u1433\\u143e\\u1485\\u148a\\u1490\\u1496ash;\\u62abar;\\u6aeby;\\u4412ash\\u0100;l\\u143b\\u143c\\u62a9;\\u6ae6\\u0100er\\u1443\\u1445;\\u62c1\\u0180bty\\u144c\\u1450\\u147aar;\\u6016\\u0100;i\\u144f\\u1455cal\\u0200BLST\\u1461\\u1465\\u146a\\u1474ar;\\u6223ine;\\u407ceparator;\\u6758ilde;\\u6240ThinSpace;\\u600ar;\\uc000\\ud835\\udd19pf;\\uc000\\ud835\\udd4dcr;\\uc000\\ud835\\udcb1dash;\\u62aa\\u0280cefos\\u14a7\\u14ac\\u14b1\\u14b6\\u14bcirc;\\u4174dge;\\u62c0r;\\uc000\\ud835\\udd1apf;\\uc000\\ud835\\udd4ecr;\\uc000\\ud835\\udcb2\\u0200fios\\u14cb\\u14d0\\u14d2\\u14d8r;\\uc000\\ud835\\udd1b;\\u439epf;\\uc000\\ud835\\udd4fcr;\\uc000\\ud835\\udcb3\\u0480AIUacfosu\\u14f1\\u14f5\\u14f9\\u14fd\\u1504\\u150f\\u1514\\u151a\\u1520cy;\\u442fcy;\\u4407cy;\\u442ecute\\u803b\\xdd\\u40dd\\u0100iy\\u1509\\u150drc;\\u4176;\\u442br;\\uc000\\ud835\\udd1cpf;\\uc000\\ud835\\udd50cr;\\uc000\\ud835\\udcb4ml;\\u4178\\u0400Hacdefos\\u1535\\u1539\\u153f\\u154b\\u154f\\u155d\\u1560\\u1564cy;\\u4416cute;\\u4179\\u0100ay\\u1544\\u1549ron;\\u417d;\\u4417ot;\\u417b\\u01f2\\u1554\\0\\u155boWidt\\xe8\\u0ad9a;\\u4396r;\\u6128pf;\\u6124cr;\\uc000\\ud835\\udcb5\\u0be1\\u1583\\u158a\\u1590\\0\\u15b0\\u15b6\\u15bf\\0\\0\\0\\0\\u15c6\\u15db\\u15eb\\u165f\\u166d\\0\\u1695\\u169b\\u16b2\\u16b9\\0\\u16becute\\u803b\\xe1\\u40e1reve;\\u4103\\u0300;Ediuy\\u159c\\u159d\\u15a1\\u15a3\\u15a8\\u15ad\\u623e;\\uc000\\u223e\\u0333;\\u623frc\\u803b\\xe2\\u40e2te\\u80bb\\xb4\\u0306;\\u4430lig\\u803b\\xe6\\u40e6\\u0100;r\\xb2\\u15ba;\\uc000\\ud835\\udd1erave\\u803b\\xe0\\u40e0\\u0100ep\\u15ca\\u15d6\\u0100fp\\u15cf\\u15d4sym;\\u6135\\xe8\\u15d3ha;\\u43b1\\u0100ap\\u15dfc\\u0100cl\\u15e4\\u15e7r;\\u4101g;\\u6a3f\\u0264\\u15f0\\0\\0\\u160a\\u0280;adsv\\u15fa\\u15fb\\u15ff\\u1601\\u1607\\u6227nd;\\u6a55;\\u6a5clope;\\u6a58;\\u6a5a\\u0380;elmrsz\\u1618\\u1619\\u161b\\u161e\\u163f\\u164f\\u1659\\u6220;\\u69a4e\\xbb\\u1619sd\\u0100;a\\u1625\\u1626\\u6221\\u0461\\u1630\\u1632\\u1634\\u1636\\u1638\\u163a\\u163c\\u163e;\\u69a8;\\u69a9;\\u69aa;\\u69ab;\\u69ac;\\u69ad;\\u69ae;\\u69aft\\u0100;v\\u1645\\u1646\\u621fb\\u0100;d\\u164c\\u164d\\u62be;\\u699d\\u0100pt\\u1654\\u1657h;\\u6222\\xbb\\xb9arr;\\u637c\\u0100gp\\u1663\\u1667on;\\u4105f;\\uc000\\ud835\\udd52\\u0380;Eaeiop\\u12c1\\u167b\\u167d\\u1682\\u1684\\u1687\\u168a;\\u6a70cir;\\u6a6f;\\u624ad;\\u624bs;\\u4027rox\\u0100;e\\u12c1\\u1692\\xf1\\u1683ing\\u803b\\xe5\\u40e5\\u0180cty\\u16a1\\u16a6\\u16a8r;\\uc000\\ud835\\udcb6;\\u402amp\\u0100;e\\u12c1\\u16af\\xf1\\u0288ilde\\u803b\\xe3\\u40e3ml\\u803b\\xe4\\u40e4\\u0100ci\\u16c2\\u16c8onin\\xf4\\u0272nt;\\u6a11\\u0800Nabcdefiklnoprsu\\u16ed\\u16f1\\u1730\\u173c\\u1743\\u1748\\u1778\\u177d\\u17e0\\u17e6\\u1839\\u1850\\u170d\\u193d\\u1948\\u1970ot;\\u6aed\\u0100cr\\u16f6\\u171ek\\u0200ceps\\u1700\\u1705\\u170d\\u1713ong;\\u624cpsilon;\\u43f6rime;\\u6035im\\u0100;e\\u171a\\u171b\\u623dq;\\u62cd\\u0176\\u1722\\u1726ee;\\u62bded\\u0100;g\\u172c\\u172d\\u6305e\\xbb\\u172drk\\u0100;t\\u135c\\u1737brk;\\u63b6\\u0100oy\\u1701\\u1741;\\u4431quo;\\u601e\\u0280cmprt\\u1753\\u175b\\u1761\\u1764\\u1768aus\\u0100;e\\u010a\\u0109ptyv;\\u69b0s\\xe9\\u170cno\\xf5\\u0113\\u0180ahw\\u176f\\u1771\\u1773;\\u43b2;\\u6136een;\\u626cr;\\uc000\\ud835\\udd1fg\\u0380costuvw\\u178d\\u179d\\u17b3\\u17c1\\u17d5\\u17db\\u17de\\u0180aiu\\u1794\\u1796\\u179a\\xf0\\u0760rc;\\u65efp\\xbb\\u1371\\u0180dpt\\u17a4\\u17a8\\u17adot;\\u6a00lus;\\u6a01imes;\\u6a02\\u0271\\u17b9\\0\\0\\u17becup;\\u6a06ar;\\u6605riangle\\u0100du\\u17cd\\u17d2own;\\u65bdp;\\u65b3plus;\\u6a04e\\xe5\\u1444\\xe5\\u14adarow;\\u690d\\u0180ako\\u17ed\\u1826\\u1835\\u0100cn\\u17f2\\u1823k\\u0180lst\\u17fa\\u05ab\\u1802ozenge;\\u69ebriangle\\u0200;dlr\\u1812\\u1813\\u1818\\u181d\\u65b4own;\\u65beeft;\\u65c2ight;\\u65b8k;\\u6423\\u01b1\\u182b\\0\\u1833\\u01b2\\u182f\\0\\u1831;\\u6592;\\u65914;\\u6593ck;\\u6588\\u0100eo\\u183e\\u184d\\u0100;q\\u1843\\u1846\\uc000=\\u20e5uiv;\\uc000\\u2261\\u20e5t;\\u6310\\u0200ptwx\\u1859\\u185e\\u1867\\u186cf;\\uc000\\ud835\\udd53\\u0100;t\\u13cb\\u1863om\\xbb\\u13cctie;\\u62c8\\u0600DHUVbdhmptuv\\u1885\\u1896\\u18aa\\u18bb\\u18d7\\u18db\\u18ec\\u18ff\\u1905\\u190a\\u1910\\u1921\\u0200LRlr\\u188e\\u1890\\u1892\\u1894;\\u6557;\\u6554;\\u6556;\\u6553\\u0280;DUdu\\u18a1\\u18a2\\u18a4\\u18a6\\u18a8\\u6550;\\u6566;\\u6569;\\u6564;\\u6567\\u0200LRlr\\u18b3\\u18b5\\u18b7\\u18b9;\\u655d;\\u655a;\\u655c;\\u6559\\u0380;HLRhlr\\u18ca\\u18cb\\u18cd\\u18cf\\u18d1\\u18d3\\u18d5\\u6551;\\u656c;\\u6563;\\u6560;\\u656b;\\u6562;\\u655fox;\\u69c9\\u0200LRlr\\u18e4\\u18e6\\u18e8\\u18ea;\\u6555;\\u6552;\\u6510;\\u650c\\u0280;DUdu\\u06bd\\u18f7\\u18f9\\u18fb\\u18fd;\\u6565;\\u6568;\\u652c;\\u6534inus;\\u629flus;\\u629eimes;\\u62a0\\u0200LRlr\\u1919\\u191b\\u191d\\u191f;\\u655b;\\u6558;\\u6518;\\u6514\\u0380;HLRhlr\\u1930\\u1931\\u1933\\u1935\\u1937\\u1939\\u193b\\u6502;\\u656a;\\u6561;\\u655e;\\u653c;\\u6524;\\u651c\\u0100ev\\u0123\\u1942bar\\u803b\\xa6\\u40a6\\u0200ceio\\u1951\\u1956\\u195a\\u1960r;\\uc000\\ud835\\udcb7mi;\\u604fm\\u0100;e\\u171a\\u171cl\\u0180;bh\\u1968\\u1969\\u196b\\u405c;\\u69c5sub;\\u67c8\\u016c\\u1974\\u197el\\u0100;e\\u1979\\u197a\\u6022t\\xbb\\u197ap\\u0180;Ee\\u012f\\u1985\\u1987;\\u6aae\\u0100;q\\u06dc\\u06db\\u0ce1\\u19a7\\0\\u19e8\\u1a11\\u1a15\\u1a32\\0\\u1a37\\u1a50\\0\\0\\u1ab4\\0\\0\\u1ac1\\0\\0\\u1b21\\u1b2e\\u1b4d\\u1b52\\0\\u1bfd\\0\\u1c0c\\u0180cpr\\u19ad\\u19b2\\u19ddute;\\u4107\\u0300;abcds\\u19bf\\u19c0\\u19c4\\u19ca\\u19d5\\u19d9\\u6229nd;\\u6a44rcup;\\u6a49\\u0100au\\u19cf\\u19d2p;\\u6a4bp;\\u6a47ot;\\u6a40;\\uc000\\u2229\\ufe00\\u0100eo\\u19e2\\u19e5t;\\u6041\\xee\\u0693\\u0200aeiu\\u19f0\\u19fb\\u1a01\\u1a05\\u01f0\\u19f5\\0\\u19f8s;\\u6a4don;\\u410ddil\\u803b\\xe7\\u40e7rc;\\u4109ps\\u0100;s\\u1a0c\\u1a0d\\u6a4cm;\\u6a50ot;\\u410b\\u0180dmn\\u1a1b\\u1a20\\u1a26il\\u80bb\\xb8\\u01adptyv;\\u69b2t\\u8100\\xa2;e\\u1a2d\\u1a2e\\u40a2r\\xe4\\u01b2r;\\uc000\\ud835\\udd20\\u0180cei\\u1a3d\\u1a40\\u1a4dy;\\u4447ck\\u0100;m\\u1a47\\u1a48\\u6713ark\\xbb\\u1a48;\\u43c7r\\u0380;Ecefms\\u1a5f\\u1a60\\u1a62\\u1a6b\\u1aa4\\u1aaa\\u1aae\\u65cb;\\u69c3\\u0180;el\\u1a69\\u1a6a\\u1a6d\\u42c6q;\\u6257e\\u0261\\u1a74\\0\\0\\u1a88rrow\\u0100lr\\u1a7c\\u1a81eft;\\u61baight;\\u61bb\\u0280RSacd\\u1a92\\u1a94\\u1a96\\u1a9a\\u1a9f\\xbb\\u0f47;\\u64c8st;\\u629birc;\\u629aash;\\u629dnint;\\u6a10id;\\u6aefcir;\\u69c2ubs\\u0100;u\\u1abb\\u1abc\\u6663it\\xbb\\u1abc\\u02ec\\u1ac7\\u1ad4\\u1afa\\0\\u1b0aon\\u0100;e\\u1acd\\u1ace\\u403a\\u0100;q\\xc7\\xc6\\u026d\\u1ad9\\0\\0\\u1ae2a\\u0100;t\\u1ade\\u1adf\\u402c;\\u4040\\u0180;fl\\u1ae8\\u1ae9\\u1aeb\\u6201\\xee\\u1160e\\u0100mx\\u1af1\\u1af6ent\\xbb\\u1ae9e\\xf3\\u024d\\u01e7\\u1afe\\0\\u1b07\\u0100;d\\u12bb\\u1b02ot;\\u6a6dn\\xf4\\u0246\\u0180fry\\u1b10\\u1b14\\u1b17;\\uc000\\ud835\\udd54o\\xe4\\u0254\\u8100\\xa9;s\\u0155\\u1b1dr;\\u6117\\u0100ao\\u1b25\\u1b29rr;\\u61b5ss;\\u6717\\u0100cu\\u1b32\\u1b37r;\\uc000\\ud835\\udcb8\\u0100bp\\u1b3c\\u1b44\\u0100;e\\u1b41\\u1b42\\u6acf;\\u6ad1\\u0100;e\\u1b49\\u1b4a\\u6ad0;\\u6ad2dot;\\u62ef\\u0380delprvw\\u1b60\\u1b6c\\u1b77\\u1b82\\u1bac\\u1bd4\\u1bf9arr\\u0100lr\\u1b68\\u1b6a;\\u6938;\\u6935\\u0270\\u1b72\\0\\0\\u1b75r;\\u62dec;\\u62dfarr\\u0100;p\\u1b7f\\u1b80\\u61b6;\\u693d\\u0300;bcdos\\u1b8f\\u1b90\\u1b96\\u1ba1\\u1ba5\\u1ba8\\u622arcap;\\u6a48\\u0100au\\u1b9b\\u1b9ep;\\u6a46p;\\u6a4aot;\\u628dr;\\u6a45;\\uc000\\u222a\\ufe00\\u0200alrv\\u1bb5\\u1bbf\\u1bde\\u1be3rr\\u0100;m\\u1bbc\\u1bbd\\u61b7;\\u693cy\\u0180evw\\u1bc7\\u1bd4\\u1bd8q\\u0270\\u1bce\\0\\0\\u1bd2re\\xe3\\u1b73u\\xe3\\u1b75ee;\\u62ceedge;\\u62cfen\\u803b\\xa4\\u40a4earrow\\u0100lr\\u1bee\\u1bf3eft\\xbb\\u1b80ight\\xbb\\u1bbde\\xe4\\u1bdd\\u0100ci\\u1c01\\u1c07onin\\xf4\\u01f7nt;\\u6231lcty;\\u632d\\u0980AHabcdefhijlorstuwz\\u1c38\\u1c3b\\u1c3f\\u1c5d\\u1c69\\u1c75\\u1c8a\\u1c9e\\u1cac\\u1cb7\\u1cfb\\u1cff\\u1d0d\\u1d7b\\u1d91\\u1dab\\u1dbb\\u1dc6\\u1dcdr\\xf2\\u0381ar;\\u6965\\u0200glrs\\u1c48\\u1c4d\\u1c52\\u1c54ger;\\u6020eth;\\u6138\\xf2\\u1133h\\u0100;v\\u1c5a\\u1c5b\\u6010\\xbb\\u090a\\u016b\\u1c61\\u1c67arow;\\u690fa\\xe3\\u0315\\u0100ay\\u1c6e\\u1c73ron;\\u410f;\\u4434\\u0180;ao\\u0332\\u1c7c\\u1c84\\u0100gr\\u02bf\\u1c81r;\\u61catseq;\\u6a77\\u0180glm\\u1c91\\u1c94\\u1c98\\u803b\\xb0\\u40b0ta;\\u43b4ptyv;\\u69b1\\u0100ir\\u1ca3\\u1ca8sht;\\u697f;\\uc000\\ud835\\udd21ar\\u0100lr\\u1cb3\\u1cb5\\xbb\\u08dc\\xbb\\u101e\\u0280aegsv\\u1cc2\\u0378\\u1cd6\\u1cdc\\u1ce0m\\u0180;os\\u0326\\u1cca\\u1cd4nd\\u0100;s\\u0326\\u1cd1uit;\\u6666amma;\\u43ddin;\\u62f2\\u0180;io\\u1ce7\\u1ce8\\u1cf8\\u40f7de\\u8100\\xf7;o\\u1ce7\\u1cf0ntimes;\\u62c7n\\xf8\\u1cf7cy;\\u4452c\\u026f\\u1d06\\0\\0\\u1d0arn;\\u631eop;\\u630d\\u0280lptuw\\u1d18\\u1d1d\\u1d22\\u1d49\\u1d55lar;\\u4024f;\\uc000\\ud835\\udd55\\u0280;emps\\u030b\\u1d2d\\u1d37\\u1d3d\\u1d42q\\u0100;d\\u0352\\u1d33ot;\\u6251inus;\\u6238lus;\\u6214quare;\\u62a1blebarwedg\\xe5\\xfan\\u0180adh\\u112e\\u1d5d\\u1d67ownarrow\\xf3\\u1c83arpoon\\u0100lr\\u1d72\\u1d76ef\\xf4\\u1cb4igh\\xf4\\u1cb6\\u0162\\u1d7f\\u1d85karo\\xf7\\u0f42\\u026f\\u1d8a\\0\\0\\u1d8ern;\\u631fop;\\u630c\\u0180cot\\u1d98\\u1da3\\u1da6\\u0100ry\\u1d9d\\u1da1;\\uc000\\ud835\\udcb9;\\u4455l;\\u69f6rok;\\u4111\\u0100dr\\u1db0\\u1db4ot;\\u62f1i\\u0100;f\\u1dba\\u1816\\u65bf\\u0100ah\\u1dc0\\u1dc3r\\xf2\\u0429a\\xf2\\u0fa6angle;\\u69a6\\u0100ci\\u1dd2\\u1dd5y;\\u445fgrarr;\\u67ff\\u0900Dacdefglmnopqrstux\\u1e01\\u1e09\\u1e19\\u1e38\\u0578\\u1e3c\\u1e49\\u1e61\\u1e7e\\u1ea5\\u1eaf\\u1ebd\\u1ee1\\u1f2a\\u1f37\\u1f44\\u1f4e\\u1f5a\\u0100Do\\u1e06\\u1d34o\\xf4\\u1c89\\u0100cs\\u1e0e\\u1e14ute\\u803b\\xe9\\u40e9ter;\\u6a6e\\u0200aioy\\u1e22\\u1e27\\u1e31\\u1e36ron;\\u411br\\u0100;c\\u1e2d\\u1e2e\\u6256\\u803b\\xea\\u40ealon;\\u6255;\\u444dot;\\u4117\\u0100Dr\\u1e41\\u1e45ot;\\u6252;\\uc000\\ud835\\udd22\\u0180;rs\\u1e50\\u1e51\\u1e57\\u6a9aave\\u803b\\xe8\\u40e8\\u0100;d\\u1e5c\\u1e5d\\u6a96ot;\\u6a98\\u0200;ils\\u1e6a\\u1e6b\\u1e72\\u1e74\\u6a99nters;\\u63e7;\\u6113\\u0100;d\\u1e79\\u1e7a\\u6a95ot;\\u6a97\\u0180aps\\u1e85\\u1e89\\u1e97cr;\\u4113ty\\u0180;sv\\u1e92\\u1e93\\u1e95\\u6205et\\xbb\\u1e93p\\u01001;\\u1e9d\\u1ea4\\u0133\\u1ea1\\u1ea3;\\u6004;\\u6005\\u6003\\u0100gs\\u1eaa\\u1eac;\\u414bp;\\u6002\\u0100gp\\u1eb4\\u1eb8on;\\u4119f;\\uc000\\ud835\\udd56\\u0180als\\u1ec4\\u1ece\\u1ed2r\\u0100;s\\u1eca\\u1ecb\\u62d5l;\\u69e3us;\\u6a71i\\u0180;lv\\u1eda\\u1edb\\u1edf\\u43b5on\\xbb\\u1edb;\\u43f5\\u0200csuv\\u1eea\\u1ef3\\u1f0b\\u1f23\\u0100io\\u1eef\\u1e31rc\\xbb\\u1e2e\\u0269\\u1ef9\\0\\0\\u1efb\\xed\\u0548ant\\u0100gl\\u1f02\\u1f06tr\\xbb\\u1e5dess\\xbb\\u1e7a\\u0180aei\\u1f12\\u1f16\\u1f1als;\\u403dst;\\u625fv\\u0100;D\\u0235\\u1f20D;\\u6a78parsl;\\u69e5\\u0100Da\\u1f2f\\u1f33ot;\\u6253rr;\\u6971\\u0180cdi\\u1f3e\\u1f41\\u1ef8r;\\u612fo\\xf4\\u0352\\u0100ah\\u1f49\\u1f4b;\\u43b7\\u803b\\xf0\\u40f0\\u0100mr\\u1f53\\u1f57l\\u803b\\xeb\\u40ebo;\\u60ac\\u0180cip\\u1f61\\u1f64\\u1f67l;\\u4021s\\xf4\\u056e\\u0100eo\\u1f6c\\u1f74ctatio\\xee\\u0559nential\\xe5\\u0579\\u09e1\\u1f92\\0\\u1f9e\\0\\u1fa1\\u1fa7\\0\\0\\u1fc6\\u1fcc\\0\\u1fd3\\0\\u1fe6\\u1fea\\u2000\\0\\u2008\\u205allingdotse\\xf1\\u1e44y;\\u4444male;\\u6640\\u0180ilr\\u1fad\\u1fb3\\u1fc1lig;\\u8000\\ufb03\\u0269\\u1fb9\\0\\0\\u1fbdg;\\u8000\\ufb00ig;\\u8000\\ufb04;\\uc000\\ud835\\udd23lig;\\u8000\\ufb01lig;\\uc000fj\\u0180alt\\u1fd9\\u1fdc\\u1fe1t;\\u666dig;\\u8000\\ufb02ns;\\u65b1of;\\u4192\\u01f0\\u1fee\\0\\u1ff3f;\\uc000\\ud835\\udd57\\u0100ak\\u05bf\\u1ff7\\u0100;v\\u1ffc\\u1ffd\\u62d4;\\u6ad9artint;\\u6a0d\\u0100ao\\u200c\\u2055\\u0100cs\\u2011\\u2052\\u03b1\\u201a\\u2030\\u2038\\u2045\\u2048\\0\\u2050\\u03b2\\u2022\\u2025\\u2027\\u202a\\u202c\\0\\u202e\\u803b\\xbd\\u40bd;\\u6153\\u803b\\xbc\\u40bc;\\u6155;\\u6159;\\u615b\\u01b3\\u2034\\0\\u2036;\\u6154;\\u6156\\u02b4\\u203e\\u2041\\0\\0\\u2043\\u803b\\xbe\\u40be;\\u6157;\\u615c5;\\u6158\\u01b6\\u204c\\0\\u204e;\\u615a;\\u615d8;\\u615el;\\u6044wn;\\u6322cr;\\uc000\\ud835\\udcbb\\u0880Eabcdefgijlnorstv\\u2082\\u2089\\u209f\\u20a5\\u20b0\\u20b4\\u20f0\\u20f5\\u20fa\\u20ff\\u2103\\u2112\\u2138\\u0317\\u213e\\u2152\\u219e\\u0100;l\\u064d\\u2087;\\u6a8c\\u0180cmp\\u2090\\u2095\\u209dute;\\u41f5ma\\u0100;d\\u209c\\u1cda\\u43b3;\\u6a86reve;\\u411f\\u0100iy\\u20aa\\u20aerc;\\u411d;\\u4433ot;\\u4121\\u0200;lqs\\u063e\\u0642\\u20bd\\u20c9\\u0180;qs\\u063e\\u064c\\u20c4lan\\xf4\\u0665\\u0200;cdl\\u0665\\u20d2\\u20d5\\u20e5c;\\u6aa9ot\\u0100;o\\u20dc\\u20dd\\u6a80\\u0100;l\\u20e2\\u20e3\\u6a82;\\u6a84\\u0100;e\\u20ea\\u20ed\\uc000\\u22db\\ufe00s;\\u6a94r;\\uc000\\ud835\\udd24\\u0100;g\\u0673\\u061bmel;\\u6137cy;\\u4453\\u0200;Eaj\\u065a\\u210c\\u210e\\u2110;\\u6a92;\\u6aa5;\\u6aa4\\u0200Eaes\\u211b\\u211d\\u2129\\u2134;\\u6269p\\u0100;p\\u2123\\u2124\\u6a8arox\\xbb\\u2124\\u0100;q\\u212e\\u212f\\u6a88\\u0100;q\\u212e\\u211bim;\\u62e7pf;\\uc000\\ud835\\udd58\\u0100ci\\u2143\\u2146r;\\u610am\\u0180;el\\u066b\\u214e\\u2150;\\u6a8e;\\u6a90\\u8300>;cdlqr\\u05ee\\u2160\\u216a\\u216e\\u2173\\u2179\\u0100ci\\u2165\\u2167;\\u6aa7r;\\u6a7aot;\\u62d7Par;\\u6995uest;\\u6a7c\\u0280adels\\u2184\\u216a\\u2190\\u0656\\u219b\\u01f0\\u2189\\0\\u218epro\\xf8\\u209er;\\u6978q\\u0100lq\\u063f\\u2196les\\xf3\\u2088i\\xed\\u066b\\u0100en\\u21a3\\u21adrtneqq;\\uc000\\u2269\\ufe00\\xc5\\u21aa\\u0500Aabcefkosy\\u21c4\\u21c7\\u21f1\\u21f5\\u21fa\\u2218\\u221d\\u222f\\u2268\\u227dr\\xf2\\u03a0\\u0200ilmr\\u21d0\\u21d4\\u21d7\\u21dbrs\\xf0\\u1484f\\xbb\\u2024il\\xf4\\u06a9\\u0100dr\\u21e0\\u21e4cy;\\u444a\\u0180;cw\\u08f4\\u21eb\\u21efir;\\u6948;\\u61adar;\\u610firc;\\u4125\\u0180alr\\u2201\\u220e\\u2213rts\\u0100;u\\u2209\\u220a\\u6665it\\xbb\\u220alip;\\u6026con;\\u62b9r;\\uc000\\ud835\\udd25s\\u0100ew\\u2223\\u2229arow;\\u6925arow;\\u6926\\u0280amopr\\u223a\\u223e\\u2243\\u225e\\u2263rr;\\u61fftht;\\u623bk\\u0100lr\\u2249\\u2253eftarrow;\\u61a9ightarrow;\\u61aaf;\\uc000\\ud835\\udd59bar;\\u6015\\u0180clt\\u226f\\u2274\\u2278r;\\uc000\\ud835\\udcbdas\\xe8\\u21f4rok;\\u4127\\u0100bp\\u2282\\u2287ull;\\u6043hen\\xbb\\u1c5b\\u0ae1\\u22a3\\0\\u22aa\\0\\u22b8\\u22c5\\u22ce\\0\\u22d5\\u22f3\\0\\0\\u22f8\\u2322\\u2367\\u2362\\u237f\\0\\u2386\\u23aa\\u23b4cute\\u803b\\xed\\u40ed\\u0180;iy\\u0771\\u22b0\\u22b5rc\\u803b\\xee\\u40ee;\\u4438\\u0100cx\\u22bc\\u22bfy;\\u4435cl\\u803b\\xa1\\u40a1\\u0100fr\\u039f\\u22c9;\\uc000\\ud835\\udd26rave\\u803b\\xec\\u40ec\\u0200;ino\\u073e\\u22dd\\u22e9\\u22ee\\u0100in\\u22e2\\u22e6nt;\\u6a0ct;\\u622dfin;\\u69dcta;\\u6129lig;\\u4133\\u0180aop\\u22fe\\u231a\\u231d\\u0180cgt\\u2305\\u2308\\u2317r;\\u412b\\u0180elp\\u071f\\u230f\\u2313in\\xe5\\u078ear\\xf4\\u0720h;\\u4131f;\\u62b7ed;\\u41b5\\u0280;cfot\\u04f4\\u232c\\u2331\\u233d\\u2341are;\\u6105in\\u0100;t\\u2338\\u2339\\u621eie;\\u69dddo\\xf4\\u2319\\u0280;celp\\u0757\\u234c\\u2350\\u235b\\u2361al;\\u62ba\\u0100gr\\u2355\\u2359er\\xf3\\u1563\\xe3\\u234darhk;\\u6a17rod;\\u6a3c\\u0200cgpt\\u236f\\u2372\\u2376\\u237by;\\u4451on;\\u412ff;\\uc000\\ud835\\udd5aa;\\u43b9uest\\u803b\\xbf\\u40bf\\u0100ci\\u238a\\u238fr;\\uc000\\ud835\\udcben\\u0280;Edsv\\u04f4\\u239b\\u239d\\u23a1\\u04f3;\\u62f9ot;\\u62f5\\u0100;v\\u23a6\\u23a7\\u62f4;\\u62f3\\u0100;i\\u0777\\u23aelde;\\u4129\\u01eb\\u23b8\\0\\u23bccy;\\u4456l\\u803b\\xef\\u40ef\\u0300cfmosu\\u23cc\\u23d7\\u23dc\\u23e1\\u23e7\\u23f5\\u0100iy\\u23d1\\u23d5rc;\\u4135;\\u4439r;\\uc000\\ud835\\udd27ath;\\u4237pf;\\uc000\\ud835\\udd5b\\u01e3\\u23ec\\0\\u23f1r;\\uc000\\ud835\\udcbfrcy;\\u4458kcy;\\u4454\\u0400acfghjos\\u240b\\u2416\\u2422\\u2427\\u242d\\u2431\\u2435\\u243bppa\\u0100;v\\u2413\\u2414\\u43ba;\\u43f0\\u0100ey\\u241b\\u2420dil;\\u4137;\\u443ar;\\uc000\\ud835\\udd28reen;\\u4138cy;\\u4445cy;\\u445cpf;\\uc000\\ud835\\udd5ccr;\\uc000\\ud835\\udcc0\\u0b80ABEHabcdefghjlmnoprstuv\\u2470\\u2481\\u2486\\u248d\\u2491\\u250e\\u253d\\u255a\\u2580\\u264e\\u265e\\u2665\\u2679\\u267d\\u269a\\u26b2\\u26d8\\u275d\\u2768\\u278b\\u27c0\\u2801\\u2812\\u0180art\\u2477\\u247a\\u247cr\\xf2\\u09c6\\xf2\\u0395ail;\\u691barr;\\u690e\\u0100;g\\u0994\\u248b;\\u6a8bar;\\u6962\\u0963\\u24a5\\0\\u24aa\\0\\u24b1\\0\\0\\0\\0\\0\\u24b5\\u24ba\\0\\u24c6\\u24c8\\u24cd\\0\\u24f9ute;\\u413amptyv;\\u69b4ra\\xee\\u084cbda;\\u43bbg\\u0180;dl\\u088e\\u24c1\\u24c3;\\u6991\\xe5\\u088e;\\u6a85uo\\u803b\\xab\\u40abr\\u0400;bfhlpst\\u0899\\u24de\\u24e6\\u24e9\\u24eb\\u24ee\\u24f1\\u24f5\\u0100;f\\u089d\\u24e3s;\\u691fs;\\u691d\\xeb\\u2252p;\\u61abl;\\u6939im;\\u6973l;\\u61a2\\u0180;ae\\u24ff\\u2500\\u2504\\u6aabil;\\u6919\\u0100;s\\u2509\\u250a\\u6aad;\\uc000\\u2aad\\ufe00\\u0180abr\\u2515\\u2519\\u251drr;\\u690crk;\\u6772\\u0100ak\\u2522\\u252cc\\u0100ek\\u2528\\u252a;\\u407b;\\u405b\\u0100es\\u2531\\u2533;\\u698bl\\u0100du\\u2539\\u253b;\\u698f;\\u698d\\u0200aeuy\\u2546\\u254b\\u2556\\u2558ron;\\u413e\\u0100di\\u2550\\u2554il;\\u413c\\xec\\u08b0\\xe2\\u2529;\\u443b\\u0200cqrs\\u2563\\u2566\\u256d\\u257da;\\u6936uo\\u0100;r\\u0e19\\u1746\\u0100du\\u2572\\u2577har;\\u6967shar;\\u694bh;\\u61b2\\u0280;fgqs\\u258b\\u258c\\u0989\\u25f3\\u25ff\\u6264t\\u0280ahlrt\\u2598\\u25a4\\u25b7\\u25c2\\u25e8rrow\\u0100;t\\u0899\\u25a1a\\xe9\\u24f6arpoon\\u0100du\\u25af\\u25b4own\\xbb\\u045ap\\xbb\\u0966eftarrows;\\u61c7ight\\u0180ahs\\u25cd\\u25d6\\u25derrow\\u0100;s\\u08f4\\u08a7arpoon\\xf3\\u0f98quigarro\\xf7\\u21f0hreetimes;\\u62cb\\u0180;qs\\u258b\\u0993\\u25falan\\xf4\\u09ac\\u0280;cdgs\\u09ac\\u260a\\u260d\\u261d\\u2628c;\\u6aa8ot\\u0100;o\\u2614\\u2615\\u6a7f\\u0100;r\\u261a\\u261b\\u6a81;\\u6a83\\u0100;e\\u2622\\u2625\\uc000\\u22da\\ufe00s;\\u6a93\\u0280adegs\\u2633\\u2639\\u263d\\u2649\\u264bppro\\xf8\\u24c6ot;\\u62d6q\\u0100gq\\u2643\\u2645\\xf4\\u0989gt\\xf2\\u248c\\xf4\\u099bi\\xed\\u09b2\\u0180ilr\\u2655\\u08e1\\u265asht;\\u697c;\\uc000\\ud835\\udd29\\u0100;E\\u099c\\u2663;\\u6a91\\u0161\\u2669\\u2676r\\u0100du\\u25b2\\u266e\\u0100;l\\u0965\\u2673;\\u696alk;\\u6584cy;\\u4459\\u0280;acht\\u0a48\\u2688\\u268b\\u2691\\u2696r\\xf2\\u25c1orne\\xf2\\u1d08ard;\\u696bri;\\u65fa\\u0100io\\u269f\\u26a4dot;\\u4140ust\\u0100;a\\u26ac\\u26ad\\u63b0che\\xbb\\u26ad\\u0200Eaes\\u26bb\\u26bd\\u26c9\\u26d4;\\u6268p\\u0100;p\\u26c3\\u26c4\\u6a89rox\\xbb\\u26c4\\u0100;q\\u26ce\\u26cf\\u6a87\\u0100;q\\u26ce\\u26bbim;\\u62e6\\u0400abnoptwz\\u26e9\\u26f4\\u26f7\\u271a\\u272f\\u2741\\u2747\\u2750\\u0100nr\\u26ee\\u26f1g;\\u67ecr;\\u61fdr\\xeb\\u08c1g\\u0180lmr\\u26ff\\u270d\\u2714eft\\u0100ar\\u09e6\\u2707ight\\xe1\\u09f2apsto;\\u67fcight\\xe1\\u09fdparrow\\u0100lr\\u2725\\u2729ef\\xf4\\u24edight;\\u61ac\\u0180afl\\u2736\\u2739\\u273dr;\\u6985;\\uc000\\ud835\\udd5dus;\\u6a2dimes;\\u6a34\\u0161\\u274b\\u274fst;\\u6217\\xe1\\u134e\\u0180;ef\\u2757\\u2758\\u1800\\u65cange\\xbb\\u2758ar\\u0100;l\\u2764\\u2765\\u4028t;\\u6993\\u0280achmt\\u2773\\u2776\\u277c\\u2785\\u2787r\\xf2\\u08a8orne\\xf2\\u1d8car\\u0100;d\\u0f98\\u2783;\\u696d;\\u600eri;\\u62bf\\u0300achiqt\\u2798\\u279d\\u0a40\\u27a2\\u27ae\\u27bbquo;\\u6039r;\\uc000\\ud835\\udcc1m\\u0180;eg\\u09b2\\u27aa\\u27ac;\\u6a8d;\\u6a8f\\u0100bu\\u252a\\u27b3o\\u0100;r\\u0e1f\\u27b9;\\u601arok;\\u4142\\u8400<;cdhilqr\\u082b\\u27d2\\u2639\\u27dc\\u27e0\\u27e5\\u27ea\\u27f0\\u0100ci\\u27d7\\u27d9;\\u6aa6r;\\u6a79re\\xe5\\u25f2mes;\\u62c9arr;\\u6976uest;\\u6a7b\\u0100Pi\\u27f5\\u27f9ar;\\u6996\\u0180;ef\\u2800\\u092d\\u181b\\u65c3r\\u0100du\\u2807\\u280dshar;\\u694ahar;\\u6966\\u0100en\\u2817\\u2821rtneqq;\\uc000\\u2268\\ufe00\\xc5\\u281e\\u0700Dacdefhilnopsu\\u2840\\u2845\\u2882\\u288e\\u2893\\u28a0\\u28a5\\u28a8\\u28da\\u28e2\\u28e4\\u0a83\\u28f3\\u2902Dot;\\u623a\\u0200clpr\\u284e\\u2852\\u2863\\u287dr\\u803b\\xaf\\u40af\\u0100et\\u2857\\u2859;\\u6642\\u0100;e\\u285e\\u285f\\u6720se\\xbb\\u285f\\u0100;s\\u103b\\u2868to\\u0200;dlu\\u103b\\u2873\\u2877\\u287bow\\xee\\u048cef\\xf4\\u090f\\xf0\\u13d1ker;\\u65ae\\u0100oy\\u2887\\u288cmma;\\u6a29;\\u443cash;\\u6014asuredangle\\xbb\\u1626r;\\uc000\\ud835\\udd2ao;\\u6127\\u0180cdn\\u28af\\u28b4\\u28c9ro\\u803b\\xb5\\u40b5\\u0200;acd\\u1464\\u28bd\\u28c0\\u28c4s\\xf4\\u16a7ir;\\u6af0ot\\u80bb\\xb7\\u01b5us\\u0180;bd\\u28d2\\u1903\\u28d3\\u6212\\u0100;u\\u1d3c\\u28d8;\\u6a2a\\u0163\\u28de\\u28e1p;\\u6adb\\xf2\\u2212\\xf0\\u0a81\\u0100dp\\u28e9\\u28eeels;\\u62a7f;\\uc000\\ud835\\udd5e\\u0100ct\\u28f8\\u28fdr;\\uc000\\ud835\\udcc2pos\\xbb\\u159d\\u0180;lm\\u2909\\u290a\\u290d\\u43bctimap;\\u62b8\\u0c00GLRVabcdefghijlmoprstuvw\\u2942\\u2953\\u297e\\u2989\\u2998\\u29da\\u29e9\\u2a15\\u2a1a\\u2a58\\u2a5d\\u2a83\\u2a95\\u2aa4\\u2aa8\\u2b04\\u2b07\\u2b44\\u2b7f\\u2bae\\u2c34\\u2c67\\u2c7c\\u2ce9\\u0100gt\\u2947\\u294b;\\uc000\\u22d9\\u0338\\u0100;v\\u2950\\u0bcf\\uc000\\u226b\\u20d2\\u0180elt\\u295a\\u2972\\u2976ft\\u0100ar\\u2961\\u2967rrow;\\u61cdightarrow;\\u61ce;\\uc000\\u22d8\\u0338\\u0100;v\\u297b\\u0c47\\uc000\\u226a\\u20d2ightarrow;\\u61cf\\u0100Dd\\u298e\\u2993ash;\\u62afash;\\u62ae\\u0280bcnpt\\u29a3\\u29a7\\u29ac\\u29b1\\u29ccla\\xbb\\u02deute;\\u4144g;\\uc000\\u2220\\u20d2\\u0280;Eiop\\u0d84\\u29bc\\u29c0\\u29c5\\u29c8;\\uc000\\u2a70\\u0338d;\\uc000\\u224b\\u0338s;\\u4149ro\\xf8\\u0d84ur\\u0100;a\\u29d3\\u29d4\\u666el\\u0100;s\\u29d3\\u0b38\\u01f3\\u29df\\0\\u29e3p\\u80bb\\xa0\\u0b37mp\\u0100;e\\u0bf9\\u0c00\\u0280aeouy\\u29f4\\u29fe\\u2a03\\u2a10\\u2a13\\u01f0\\u29f9\\0\\u29fb;\\u6a43on;\\u4148dil;\\u4146ng\\u0100;d\\u0d7e\\u2a0aot;\\uc000\\u2a6d\\u0338p;\\u6a42;\\u443dash;\\u6013\\u0380;Aadqsx\\u0b92\\u2a29\\u2a2d\\u2a3b\\u2a41\\u2a45\\u2a50rr;\\u61d7r\\u0100hr\\u2a33\\u2a36k;\\u6924\\u0100;o\\u13f2\\u13f0ot;\\uc000\\u2250\\u0338ui\\xf6\\u0b63\\u0100ei\\u2a4a\\u2a4ear;\\u6928\\xed\\u0b98ist\\u0100;s\\u0ba0\\u0b9fr;\\uc000\\ud835\\udd2b\\u0200Eest\\u0bc5\\u2a66\\u2a79\\u2a7c\\u0180;qs\\u0bbc\\u2a6d\\u0be1\\u0180;qs\\u0bbc\\u0bc5\\u2a74lan\\xf4\\u0be2i\\xed\\u0bea\\u0100;r\\u0bb6\\u2a81\\xbb\\u0bb7\\u0180Aap\\u2a8a\\u2a8d\\u2a91r\\xf2\\u2971rr;\\u61aear;\\u6af2\\u0180;sv\\u0f8d\\u2a9c\\u0f8c\\u0100;d\\u2aa1\\u2aa2\\u62fc;\\u62facy;\\u445a\\u0380AEadest\\u2ab7\\u2aba\\u2abe\\u2ac2\\u2ac5\\u2af6\\u2af9r\\xf2\\u2966;\\uc000\\u2266\\u0338rr;\\u619ar;\\u6025\\u0200;fqs\\u0c3b\\u2ace\\u2ae3\\u2aeft\\u0100ar\\u2ad4\\u2ad9rro\\xf7\\u2ac1ightarro\\xf7\\u2a90\\u0180;qs\\u0c3b\\u2aba\\u2aealan\\xf4\\u0c55\\u0100;s\\u0c55\\u2af4\\xbb\\u0c36i\\xed\\u0c5d\\u0100;r\\u0c35\\u2afei\\u0100;e\\u0c1a\\u0c25i\\xe4\\u0d90\\u0100pt\\u2b0c\\u2b11f;\\uc000\\ud835\\udd5f\\u8180\\xac;in\\u2b19\\u2b1a\\u2b36\\u40acn\\u0200;Edv\\u0b89\\u2b24\\u2b28\\u2b2e;\\uc000\\u22f9\\u0338ot;\\uc000\\u22f5\\u0338\\u01e1\\u0b89\\u2b33\\u2b35;\\u62f7;\\u62f6i\\u0100;v\\u0cb8\\u2b3c\\u01e1\\u0cb8\\u2b41\\u2b43;\\u62fe;\\u62fd\\u0180aor\\u2b4b\\u2b63\\u2b69r\\u0200;ast\\u0b7b\\u2b55\\u2b5a\\u2b5flle\\xec\\u0b7bl;\\uc000\\u2afd\\u20e5;\\uc000\\u2202\\u0338lint;\\u6a14\\u0180;ce\\u0c92\\u2b70\\u2b73u\\xe5\\u0ca5\\u0100;c\\u0c98\\u2b78\\u0100;e\\u0c92\\u2b7d\\xf1\\u0c98\\u0200Aait\\u2b88\\u2b8b\\u2b9d\\u2ba7r\\xf2\\u2988rr\\u0180;cw\\u2b94\\u2b95\\u2b99\\u619b;\\uc000\\u2933\\u0338;\\uc000\\u219d\\u0338ghtarrow\\xbb\\u2b95ri\\u0100;e\\u0ccb\\u0cd6\\u0380chimpqu\\u2bbd\\u2bcd\\u2bd9\\u2b04\\u0b78\\u2be4\\u2bef\\u0200;cer\\u0d32\\u2bc6\\u0d37\\u2bc9u\\xe5\\u0d45;\\uc000\\ud835\\udcc3ort\\u026d\\u2b05\\0\\0\\u2bd6ar\\xe1\\u2b56m\\u0100;e\\u0d6e\\u2bdf\\u0100;q\\u0d74\\u0d73su\\u0100bp\\u2beb\\u2bed\\xe5\\u0cf8\\xe5\\u0d0b\\u0180bcp\\u2bf6\\u2c11\\u2c19\\u0200;Ees\\u2bff\\u2c00\\u0d22\\u2c04\\u6284;\\uc000\\u2ac5\\u0338et\\u0100;e\\u0d1b\\u2c0bq\\u0100;q\\u0d23\\u2c00c\\u0100;e\\u0d32\\u2c17\\xf1\\u0d38\\u0200;Ees\\u2c22\\u2c23\\u0d5f\\u2c27\\u6285;\\uc000\\u2ac6\\u0338et\\u0100;e\\u0d58\\u2c2eq\\u0100;q\\u0d60\\u2c23\\u0200gilr\\u2c3d\\u2c3f\\u2c45\\u2c47\\xec\\u0bd7lde\\u803b\\xf1\\u40f1\\xe7\\u0c43iangle\\u0100lr\\u2c52\\u2c5ceft\\u0100;e\\u0c1a\\u2c5a\\xf1\\u0c26ight\\u0100;e\\u0ccb\\u2c65\\xf1\\u0cd7\\u0100;m\\u2c6c\\u2c6d\\u43bd\\u0180;es\\u2c74\\u2c75\\u2c79\\u4023ro;\\u6116p;\\u6007\\u0480DHadgilrs\\u2c8f\\u2c94\\u2c99\\u2c9e\\u2ca3\\u2cb0\\u2cb6\\u2cd3\\u2ce3ash;\\u62adarr;\\u6904p;\\uc000\\u224d\\u20d2ash;\\u62ac\\u0100et\\u2ca8\\u2cac;\\uc000\\u2265\\u20d2;\\uc000>\\u20d2nfin;\\u69de\\u0180Aet\\u2cbd\\u2cc1\\u2cc5rr;\\u6902;\\uc000\\u2264\\u20d2\\u0100;r\\u2cca\\u2ccd\\uc000<\\u20d2ie;\\uc000\\u22b4\\u20d2\\u0100At\\u2cd8\\u2cdcrr;\\u6903rie;\\uc000\\u22b5\\u20d2im;\\uc000\\u223c\\u20d2\\u0180Aan\\u2cf0\\u2cf4\\u2d02rr;\\u61d6r\\u0100hr\\u2cfa\\u2cfdk;\\u6923\\u0100;o\\u13e7\\u13e5ear;\\u6927\\u1253\\u1a95\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\u2d2d\\0\\u2d38\\u2d48\\u2d60\\u2d65\\u2d72\\u2d84\\u1b07\\0\\0\\u2d8d\\u2dab\\0\\u2dc8\\u2dce\\0\\u2ddc\\u2e19\\u2e2b\\u2e3e\\u2e43\\u0100cs\\u2d31\\u1a97ute\\u803b\\xf3\\u40f3\\u0100iy\\u2d3c\\u2d45r\\u0100;c\\u1a9e\\u2d42\\u803b\\xf4\\u40f4;\\u443e\\u0280abios\\u1aa0\\u2d52\\u2d57\\u01c8\\u2d5alac;\\u4151v;\\u6a38old;\\u69bclig;\\u4153\\u0100cr\\u2d69\\u2d6dir;\\u69bf;\\uc000\\ud835\\udd2c\\u036f\\u2d79\\0\\0\\u2d7c\\0\\u2d82n;\\u42dbave\\u803b\\xf2\\u40f2;\\u69c1\\u0100bm\\u2d88\\u0df4ar;\\u69b5\\u0200acit\\u2d95\\u2d98\\u2da5\\u2da8r\\xf2\\u1a80\\u0100ir\\u2d9d\\u2da0r;\\u69beoss;\\u69bbn\\xe5\\u0e52;\\u69c0\\u0180aei\\u2db1\\u2db5\\u2db9cr;\\u414dga;\\u43c9\\u0180cdn\\u2dc0\\u2dc5\\u01cdron;\\u43bf;\\u69b6pf;\\uc000\\ud835\\udd60\\u0180ael\\u2dd4\\u2dd7\\u01d2r;\\u69b7rp;\\u69b9\\u0380;adiosv\\u2dea\\u2deb\\u2dee\\u2e08\\u2e0d\\u2e10\\u2e16\\u6228r\\xf2\\u1a86\\u0200;efm\\u2df7\\u2df8\\u2e02\\u2e05\\u6a5dr\\u0100;o\\u2dfe\\u2dff\\u6134f\\xbb\\u2dff\\u803b\\xaa\\u40aa\\u803b\\xba\\u40bagof;\\u62b6r;\\u6a56lope;\\u6a57;\\u6a5b\\u0180clo\\u2e1f\\u2e21\\u2e27\\xf2\\u2e01ash\\u803b\\xf8\\u40f8l;\\u6298i\\u016c\\u2e2f\\u2e34de\\u803b\\xf5\\u40f5es\\u0100;a\\u01db\\u2e3as;\\u6a36ml\\u803b\\xf6\\u40f6bar;\\u633d\\u0ae1\\u2e5e\\0\\u2e7d\\0\\u2e80\\u2e9d\\0\\u2ea2\\u2eb9\\0\\0\\u2ecb\\u0e9c\\0\\u2f13\\0\\0\\u2f2b\\u2fbc\\0\\u2fc8r\\u0200;ast\\u0403\\u2e67\\u2e72\\u0e85\\u8100\\xb6;l\\u2e6d\\u2e6e\\u40b6le\\xec\\u0403\\u0269\\u2e78\\0\\0\\u2e7bm;\\u6af3;\\u6afdy;\\u443fr\\u0280cimpt\\u2e8b\\u2e8f\\u2e93\\u1865\\u2e97nt;\\u4025od;\\u402eil;\\u6030enk;\\u6031r;\\uc000\\ud835\\udd2d\\u0180imo\\u2ea8\\u2eb0\\u2eb4\\u0100;v\\u2ead\\u2eae\\u43c6;\\u43d5ma\\xf4\\u0a76ne;\\u660e\\u0180;tv\\u2ebf\\u2ec0\\u2ec8\\u43c0chfork\\xbb\\u1ffd;\\u43d6\\u0100au\\u2ecf\\u2edfn\\u0100ck\\u2ed5\\u2eddk\\u0100;h\\u21f4\\u2edb;\\u610e\\xf6\\u21f4s\\u0480;abcdemst\\u2ef3\\u2ef4\\u1908\\u2ef9\\u2efd\\u2f04\\u2f06\\u2f0a\\u2f0e\\u402bcir;\\u6a23ir;\\u6a22\\u0100ou\\u1d40\\u2f02;\\u6a25;\\u6a72n\\u80bb\\xb1\\u0e9dim;\\u6a26wo;\\u6a27\\u0180ipu\\u2f19\\u2f20\\u2f25ntint;\\u6a15f;\\uc000\\ud835\\udd61nd\\u803b\\xa3\\u40a3\\u0500;Eaceinosu\\u0ec8\\u2f3f\\u2f41\\u2f44\\u2f47\\u2f81\\u2f89\\u2f92\\u2f7e\\u2fb6;\\u6ab3p;\\u6ab7u\\xe5\\u0ed9\\u0100;c\\u0ece\\u2f4c\\u0300;acens\\u0ec8\\u2f59\\u2f5f\\u2f66\\u2f68\\u2f7eppro\\xf8\\u2f43urlye\\xf1\\u0ed9\\xf1\\u0ece\\u0180aes\\u2f6f\\u2f76\\u2f7approx;\\u6ab9qq;\\u6ab5im;\\u62e8i\\xed\\u0edfme\\u0100;s\\u2f88\\u0eae\\u6032\\u0180Eas\\u2f78\\u2f90\\u2f7a\\xf0\\u2f75\\u0180dfp\\u0eec\\u2f99\\u2faf\\u0180als\\u2fa0\\u2fa5\\u2faalar;\\u632eine;\\u6312urf;\\u6313\\u0100;t\\u0efb\\u2fb4\\xef\\u0efbrel;\\u62b0\\u0100ci\\u2fc0\\u2fc5r;\\uc000\\ud835\\udcc5;\\u43c8ncsp;\\u6008\\u0300fiopsu\\u2fda\\u22e2\\u2fdf\\u2fe5\\u2feb\\u2ff1r;\\uc000\\ud835\\udd2epf;\\uc000\\ud835\\udd62rime;\\u6057cr;\\uc000\\ud835\\udcc6\\u0180aeo\\u2ff8\\u3009\\u3013t\\u0100ei\\u2ffe\\u3005rnion\\xf3\\u06b0nt;\\u6a16st\\u0100;e\\u3010\\u3011\\u403f\\xf1\\u1f19\\xf4\\u0f14\\u0a80ABHabcdefhilmnoprstux\\u3040\\u3051\\u3055\\u3059\\u30e0\\u310e\\u312b\\u3147\\u3162\\u3172\\u318e\\u3206\\u3215\\u3224\\u3229\\u3258\\u326e\\u3272\\u3290\\u32b0\\u32b7\\u0180art\\u3047\\u304a\\u304cr\\xf2\\u10b3\\xf2\\u03ddail;\\u691car\\xf2\\u1c65ar;\\u6964\\u0380cdenqrt\\u3068\\u3075\\u3078\\u307f\\u308f\\u3094\\u30cc\\u0100eu\\u306d\\u3071;\\uc000\\u223d\\u0331te;\\u4155i\\xe3\\u116emptyv;\\u69b3g\\u0200;del\\u0fd1\\u3089\\u308b\\u308d;\\u6992;\\u69a5\\xe5\\u0fd1uo\\u803b\\xbb\\u40bbr\\u0580;abcfhlpstw\\u0fdc\\u30ac\\u30af\\u30b7\\u30b9\\u30bc\\u30be\\u30c0\\u30c3\\u30c7\\u30cap;\\u6975\\u0100;f\\u0fe0\\u30b4s;\\u6920;\\u6933s;\\u691e\\xeb\\u225d\\xf0\\u272el;\\u6945im;\\u6974l;\\u61a3;\\u619d\\u0100ai\\u30d1\\u30d5il;\\u691ao\\u0100;n\\u30db\\u30dc\\u6236al\\xf3\\u0f1e\\u0180abr\\u30e7\\u30ea\\u30eer\\xf2\\u17e5rk;\\u6773\\u0100ak\\u30f3\\u30fdc\\u0100ek\\u30f9\\u30fb;\\u407d;\\u405d\\u0100es\\u3102\\u3104;\\u698cl\\u0100du\\u310a\\u310c;\\u698e;\\u6990\\u0200aeuy\\u3117\\u311c\\u3127\\u3129ron;\\u4159\\u0100di\\u3121\\u3125il;\\u4157\\xec\\u0ff2\\xe2\\u30fa;\\u4440\\u0200clqs\\u3134\\u3137\\u313d\\u3144a;\\u6937dhar;\\u6969uo\\u0100;r\\u020e\\u020dh;\\u61b3\\u0180acg\\u314e\\u315f\\u0f44l\\u0200;ips\\u0f78\\u3158\\u315b\\u109cn\\xe5\\u10bbar\\xf4\\u0fa9t;\\u65ad\\u0180ilr\\u3169\\u1023\\u316esht;\\u697d;\\uc000\\ud835\\udd2f\\u0100ao\\u3177\\u3186r\\u0100du\\u317d\\u317f\\xbb\\u047b\\u0100;l\\u1091\\u3184;\\u696c\\u0100;v\\u318b\\u318c\\u43c1;\\u43f1\\u0180gns\\u3195\\u31f9\\u31fcht\\u0300ahlrst\\u31a4\\u31b0\\u31c2\\u31d8\\u31e4\\u31eerrow\\u0100;t\\u0fdc\\u31ada\\xe9\\u30c8arpoon\\u0100du\\u31bb\\u31bfow\\xee\\u317ep\\xbb\\u1092eft\\u0100ah\\u31ca\\u31d0rrow\\xf3\\u0feaarpoon\\xf3\\u0551ightarrows;\\u61c9quigarro\\xf7\\u30cbhreetimes;\\u62ccg;\\u42daingdotse\\xf1\\u1f32\\u0180ahm\\u320d\\u3210\\u3213r\\xf2\\u0feaa\\xf2\\u0551;\\u600foust\\u0100;a\\u321e\\u321f\\u63b1che\\xbb\\u321fmid;\\u6aee\\u0200abpt\\u3232\\u323d\\u3240\\u3252\\u0100nr\\u3237\\u323ag;\\u67edr;\\u61fer\\xeb\\u1003\\u0180afl\\u3247\\u324a\\u324er;\\u6986;\\uc000\\ud835\\udd63us;\\u6a2eimes;\\u6a35\\u0100ap\\u325d\\u3267r\\u0100;g\\u3263\\u3264\\u4029t;\\u6994olint;\\u6a12ar\\xf2\\u31e3\\u0200achq\\u327b\\u3280\\u10bc\\u3285quo;\\u603ar;\\uc000\\ud835\\udcc7\\u0100bu\\u30fb\\u328ao\\u0100;r\\u0214\\u0213\\u0180hir\\u3297\\u329b\\u32a0re\\xe5\\u31f8mes;\\u62cai\\u0200;efl\\u32aa\\u1059\\u1821\\u32ab\\u65b9tri;\\u69celuhar;\\u6968;\\u611e\\u0d61\\u32d5\\u32db\\u32df\\u332c\\u3338\\u3371\\0\\u337a\\u33a4\\0\\0\\u33ec\\u33f0\\0\\u3428\\u3448\\u345a\\u34ad\\u34b1\\u34ca\\u34f1\\0\\u3616\\0\\0\\u3633cute;\\u415bqu\\xef\\u27ba\\u0500;Eaceinpsy\\u11ed\\u32f3\\u32f5\\u32ff\\u3302\\u330b\\u330f\\u331f\\u3326\\u3329;\\u6ab4\\u01f0\\u32fa\\0\\u32fc;\\u6ab8on;\\u4161u\\xe5\\u11fe\\u0100;d\\u11f3\\u3307il;\\u415frc;\\u415d\\u0180Eas\\u3316\\u3318\\u331b;\\u6ab6p;\\u6abaim;\\u62e9olint;\\u6a13i\\xed\\u1204;\\u4441ot\\u0180;be\\u3334\\u1d47\\u3335\\u62c5;\\u6a66\\u0380Aacmstx\\u3346\\u334a\\u3357\\u335b\\u335e\\u3363\\u336drr;\\u61d8r\\u0100hr\\u3350\\u3352\\xeb\\u2228\\u0100;o\\u0a36\\u0a34t\\u803b\\xa7\\u40a7i;\\u403bwar;\\u6929m\\u0100in\\u3369\\xf0nu\\xf3\\xf1t;\\u6736r\\u0100;o\\u3376\\u2055\\uc000\\ud835\\udd30\\u0200acoy\\u3382\\u3386\\u3391\\u33a0rp;\\u666f\\u0100hy\\u338b\\u338fcy;\\u4449;\\u4448rt\\u026d\\u3399\\0\\0\\u339ci\\xe4\\u1464ara\\xec\\u2e6f\\u803b\\xad\\u40ad\\u0100gm\\u33a8\\u33b4ma\\u0180;fv\\u33b1\\u33b2\\u33b2\\u43c3;\\u43c2\\u0400;deglnpr\\u12ab\\u33c5\\u33c9\\u33ce\\u33d6\\u33de\\u33e1\\u33e6ot;\\u6a6a\\u0100;q\\u12b1\\u12b0\\u0100;E\\u33d3\\u33d4\\u6a9e;\\u6aa0\\u0100;E\\u33db\\u33dc\\u6a9d;\\u6a9fe;\\u6246lus;\\u6a24arr;\\u6972ar\\xf2\\u113d\\u0200aeit\\u33f8\\u3408\\u340f\\u3417\\u0100ls\\u33fd\\u3404lsetm\\xe9\\u336ahp;\\u6a33parsl;\\u69e4\\u0100dl\\u1463\\u3414e;\\u6323\\u0100;e\\u341c\\u341d\\u6aaa\\u0100;s\\u3422\\u3423\\u6aac;\\uc000\\u2aac\\ufe00\\u0180flp\\u342e\\u3433\\u3442tcy;\\u444c\\u0100;b\\u3438\\u3439\\u402f\\u0100;a\\u343e\\u343f\\u69c4r;\\u633ff;\\uc000\\ud835\\udd64a\\u0100dr\\u344d\\u0402es\\u0100;u\\u3454\\u3455\\u6660it\\xbb\\u3455\\u0180csu\\u3460\\u3479\\u349f\\u0100au\\u3465\\u346fp\\u0100;s\\u1188\\u346b;\\uc000\\u2293\\ufe00p\\u0100;s\\u11b4\\u3475;\\uc000\\u2294\\ufe00u\\u0100bp\\u347f\\u348f\\u0180;es\\u1197\\u119c\\u3486et\\u0100;e\\u1197\\u348d\\xf1\\u119d\\u0180;es\\u11a8\\u11ad\\u3496et\\u0100;e\\u11a8\\u349d\\xf1\\u11ae\\u0180;af\\u117b\\u34a6\\u05b0r\\u0165\\u34ab\\u05b1\\xbb\\u117car\\xf2\\u1148\\u0200cemt\\u34b9\\u34be\\u34c2\\u34c5r;\\uc000\\ud835\\udcc8tm\\xee\\xf1i\\xec\\u3415ar\\xe6\\u11be\\u0100ar\\u34ce\\u34d5r\\u0100;f\\u34d4\\u17bf\\u6606\\u0100an\\u34da\\u34edight\\u0100ep\\u34e3\\u34eapsilo\\xee\\u1ee0h\\xe9\\u2eafs\\xbb\\u2852\\u0280bcmnp\\u34fb\\u355e\\u1209\\u358b\\u358e\\u0480;Edemnprs\\u350e\\u350f\\u3511\\u3515\\u351e\\u3523\\u352c\\u3531\\u3536\\u6282;\\u6ac5ot;\\u6abd\\u0100;d\\u11da\\u351aot;\\u6ac3ult;\\u6ac1\\u0100Ee\\u3528\\u352a;\\u6acb;\\u628alus;\\u6abfarr;\\u6979\\u0180eiu\\u353d\\u3552\\u3555t\\u0180;en\\u350e\\u3545\\u354bq\\u0100;q\\u11da\\u350feq\\u0100;q\\u352b\\u3528m;\\u6ac7\\u0100bp\\u355a\\u355c;\\u6ad5;\\u6ad3c\\u0300;acens\\u11ed\\u356c\\u3572\\u3579\\u357b\\u3326ppro\\xf8\\u32faurlye\\xf1\\u11fe\\xf1\\u11f3\\u0180aes\\u3582\\u3588\\u331bppro\\xf8\\u331aq\\xf1\\u3317g;\\u666a\\u0680123;Edehlmnps\\u35a9\\u35ac\\u35af\\u121c\\u35b2\\u35b4\\u35c0\\u35c9\\u35d5\\u35da\\u35df\\u35e8\\u35ed\\u803b\\xb9\\u40b9\\u803b\\xb2\\u40b2\\u803b\\xb3\\u40b3;\\u6ac6\\u0100os\\u35b9\\u35bct;\\u6abeub;\\u6ad8\\u0100;d\\u1222\\u35c5ot;\\u6ac4s\\u0100ou\\u35cf\\u35d2l;\\u67c9b;\\u6ad7arr;\\u697bult;\\u6ac2\\u0100Ee\\u35e4\\u35e6;\\u6acc;\\u628blus;\\u6ac0\\u0180eiu\\u35f4\\u3609\\u360ct\\u0180;en\\u121c\\u35fc\\u3602q\\u0100;q\\u1222\\u35b2eq\\u0100;q\\u35e7\\u35e4m;\\u6ac8\\u0100bp\\u3611\\u3613;\\u6ad4;\\u6ad6\\u0180Aan\\u361c\\u3620\\u362drr;\\u61d9r\\u0100hr\\u3626\\u3628\\xeb\\u222e\\u0100;o\\u0a2b\\u0a29war;\\u692alig\\u803b\\xdf\\u40df\\u0be1\\u3651\\u365d\\u3660\\u12ce\\u3673\\u3679\\0\\u367e\\u36c2\\0\\0\\0\\0\\0\\u36db\\u3703\\0\\u3709\\u376c\\0\\0\\0\\u3787\\u0272\\u3656\\0\\0\\u365bget;\\u6316;\\u43c4r\\xeb\\u0e5f\\u0180aey\\u3666\\u366b\\u3670ron;\\u4165dil;\\u4163;\\u4442lrec;\\u6315r;\\uc000\\ud835\\udd31\\u0200eiko\\u3686\\u369d\\u36b5\\u36bc\\u01f2\\u368b\\0\\u3691e\\u01004f\\u1284\\u1281a\\u0180;sv\\u3698\\u3699\\u369b\\u43b8ym;\\u43d1\\u0100cn\\u36a2\\u36b2k\\u0100as\\u36a8\\u36aeppro\\xf8\\u12c1im\\xbb\\u12acs\\xf0\\u129e\\u0100as\\u36ba\\u36ae\\xf0\\u12c1rn\\u803b\\xfe\\u40fe\\u01ec\\u031f\\u36c6\\u22e7es\\u8180\\xd7;bd\\u36cf\\u36d0\\u36d8\\u40d7\\u0100;a\\u190f\\u36d5r;\\u6a31;\\u6a30\\u0180eps\\u36e1\\u36e3\\u3700\\xe1\\u2a4d\\u0200;bcf\\u0486\\u36ec\\u36f0\\u36f4ot;\\u6336ir;\\u6af1\\u0100;o\\u36f9\\u36fc\\uc000\\ud835\\udd65rk;\\u6ada\\xe1\\u3362rime;\\u6034\\u0180aip\\u370f\\u3712\\u3764d\\xe5\\u1248\\u0380adempst\\u3721\\u374d\\u3740\\u3751\\u3757\\u375c\\u375fngle\\u0280;dlqr\\u3730\\u3731\\u3736\\u3740\\u3742\\u65b5own\\xbb\\u1dbbeft\\u0100;e\\u2800\\u373e\\xf1\\u092e;\\u625cight\\u0100;e\\u32aa\\u374b\\xf1\\u105aot;\\u65ecinus;\\u6a3alus;\\u6a39b;\\u69cdime;\\u6a3bezium;\\u63e2\\u0180cht\\u3772\\u377d\\u3781\\u0100ry\\u3777\\u377b;\\uc000\\ud835\\udcc9;\\u4446cy;\\u445brok;\\u4167\\u0100io\\u378b\\u378ex\\xf4\\u1777head\\u0100lr\\u3797\\u37a0eftarro\\xf7\\u084fightarrow\\xbb\\u0f5d\\u0900AHabcdfghlmoprstuw\\u37d0\\u37d3\\u37d7\\u37e4\\u37f0\\u37fc\\u380e\\u381c\\u3823\\u3834\\u3851\\u385d\\u386b\\u38a9\\u38cc\\u38d2\\u38ea\\u38f6r\\xf2\\u03edar;\\u6963\\u0100cr\\u37dc\\u37e2ute\\u803b\\xfa\\u40fa\\xf2\\u1150r\\u01e3\\u37ea\\0\\u37edy;\\u445eve;\\u416d\\u0100iy\\u37f5\\u37farc\\u803b\\xfb\\u40fb;\\u4443\\u0180abh\\u3803\\u3806\\u380br\\xf2\\u13adlac;\\u4171a\\xf2\\u13c3\\u0100ir\\u3813\\u3818sht;\\u697e;\\uc000\\ud835\\udd32rave\\u803b\\xf9\\u40f9\\u0161\\u3827\\u3831r\\u0100lr\\u382c\\u382e\\xbb\\u0957\\xbb\\u1083lk;\\u6580\\u0100ct\\u3839\\u384d\\u026f\\u383f\\0\\0\\u384arn\\u0100;e\\u3845\\u3846\\u631cr\\xbb\\u3846op;\\u630fri;\\u65f8\\u0100al\\u3856\\u385acr;\\u416b\\u80bb\\xa8\\u0349\\u0100gp\\u3862\\u3866on;\\u4173f;\\uc000\\ud835\\udd66\\u0300adhlsu\\u114b\\u3878\\u387d\\u1372\\u3891\\u38a0own\\xe1\\u13b3arpoon\\u0100lr\\u3888\\u388cef\\xf4\\u382digh\\xf4\\u382fi\\u0180;hl\\u3899\\u389a\\u389c\\u43c5\\xbb\\u13faon\\xbb\\u389aparrows;\\u61c8\\u0180cit\\u38b0\\u38c4\\u38c8\\u026f\\u38b6\\0\\0\\u38c1rn\\u0100;e\\u38bc\\u38bd\\u631dr\\xbb\\u38bdop;\\u630eng;\\u416fri;\\u65f9cr;\\uc000\\ud835\\udcca\\u0180dir\\u38d9\\u38dd\\u38e2ot;\\u62f0lde;\\u4169i\\u0100;f\\u3730\\u38e8\\xbb\\u1813\\u0100am\\u38ef\\u38f2r\\xf2\\u38a8l\\u803b\\xfc\\u40fcangle;\\u69a7\\u0780ABDacdeflnoprsz\\u391c\\u391f\\u3929\\u392d\\u39b5\\u39b8\\u39bd\\u39df\\u39e4\\u39e8\\u39f3\\u39f9\\u39fd\\u3a01\\u3a20r\\xf2\\u03f7ar\\u0100;v\\u3926\\u3927\\u6ae8;\\u6ae9as\\xe8\\u03e1\\u0100nr\\u3932\\u3937grt;\\u699c\\u0380eknprst\\u34e3\\u3946\\u394b\\u3952\\u395d\\u3964\\u3996app\\xe1\\u2415othin\\xe7\\u1e96\\u0180hir\\u34eb\\u2ec8\\u3959op\\xf4\\u2fb5\\u0100;h\\u13b7\\u3962\\xef\\u318d\\u0100iu\\u3969\\u396dgm\\xe1\\u33b3\\u0100bp\\u3972\\u3984setneq\\u0100;q\\u397d\\u3980\\uc000\\u228a\\ufe00;\\uc000\\u2acb\\ufe00setneq\\u0100;q\\u398f\\u3992\\uc000\\u228b\\ufe00;\\uc000\\u2acc\\ufe00\\u0100hr\\u399b\\u399fet\\xe1\\u369ciangle\\u0100lr\\u39aa\\u39afeft\\xbb\\u0925ight\\xbb\\u1051y;\\u4432ash\\xbb\\u1036\\u0180elr\\u39c4\\u39d2\\u39d7\\u0180;be\\u2dea\\u39cb\\u39cfar;\\u62bbq;\\u625alip;\\u62ee\\u0100bt\\u39dc\\u1468a\\xf2\\u1469r;\\uc000\\ud835\\udd33tr\\xe9\\u39aesu\\u0100bp\\u39ef\\u39f1\\xbb\\u0d1c\\xbb\\u0d59pf;\\uc000\\ud835\\udd67ro\\xf0\\u0efbtr\\xe9\\u39b4\\u0100cu\\u3a06\\u3a0br;\\uc000\\ud835\\udccb\\u0100bp\\u3a10\\u3a18n\\u0100Ee\\u3980\\u3a16\\xbb\\u397en\\u0100Ee\\u3992\\u3a1e\\xbb\\u3990igzag;\\u699a\\u0380cefoprs\\u3a36\\u3a3b\\u3a56\\u3a5b\\u3a54\\u3a61\\u3a6airc;\\u4175\\u0100di\\u3a40\\u3a51\\u0100bg\\u3a45\\u3a49ar;\\u6a5fe\\u0100;q\\u15fa\\u3a4f;\\u6259erp;\\u6118r;\\uc000\\ud835\\udd34pf;\\uc000\\ud835\\udd68\\u0100;e\\u1479\\u3a66at\\xe8\\u1479cr;\\uc000\\ud835\\udccc\\u0ae3\\u178e\\u3a87\\0\\u3a8b\\0\\u3a90\\u3a9b\\0\\0\\u3a9d\\u3aa8\\u3aab\\u3aaf\\0\\0\\u3ac3\\u3ace\\0\\u3ad8\\u17dc\\u17dftr\\xe9\\u17d1r;\\uc000\\ud835\\udd35\\u0100Aa\\u3a94\\u3a97r\\xf2\\u03c3r\\xf2\\u09f6;\\u43be\\u0100Aa\\u3aa1\\u3aa4r\\xf2\\u03b8r\\xf2\\u09eba\\xf0\\u2713is;\\u62fb\\u0180dpt\\u17a4\\u3ab5\\u3abe\\u0100fl\\u3aba\\u17a9;\\uc000\\ud835\\udd69im\\xe5\\u17b2\\u0100Aa\\u3ac7\\u3acar\\xf2\\u03cer\\xf2\\u0a01\\u0100cq\\u3ad2\\u17b8r;\\uc000\\ud835\\udccd\\u0100pt\\u17d6\\u3adcr\\xe9\\u17d4\\u0400acefiosu\\u3af0\\u3afd\\u3b08\\u3b0c\\u3b11\\u3b15\\u3b1b\\u3b21c\\u0100uy\\u3af6\\u3afbte\\u803b\\xfd\\u40fd;\\u444f\\u0100iy\\u3b02\\u3b06rc;\\u4177;\\u444bn\\u803b\\xa5\\u40a5r;\\uc000\\ud835\\udd36cy;\\u4457pf;\\uc000\\ud835\\udd6acr;\\uc000\\ud835\\udcce\\u0100cm\\u3b26\\u3b29y;\\u444el\\u803b\\xff\\u40ff\\u0500acdefhiosw\\u3b42\\u3b48\\u3b54\\u3b58\\u3b64\\u3b69\\u3b6d\\u3b74\\u3b7a\\u3b80cute;\\u417a\\u0100ay\\u3b4d\\u3b52ron;\\u417e;\\u4437ot;\\u417c\\u0100et\\u3b5d\\u3b61tr\\xe6\\u155fa;\\u43b6r;\\uc000\\ud835\\udd37cy;\\u4436grarr;\\u61ddpf;\\uc000\\ud835\\udd6bcr;\\uc000\\ud835\\udccf\\u0100jn\\u3b85\\u3b87;\\u600dj;\\u600c\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-html.js.map","\"use strict\";\n// Generated using scripts/write-decode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = new Uint16Array(\n// prettier-ignore\n\"\\u0200aglq\\t\\x15\\x18\\x1b\\u026d\\x0f\\0\\0\\x12p;\\u4026os;\\u4027t;\\u403et;\\u403cuot;\\u4022\"\n .split(\"\")\n .map(function (c) { return c.charCodeAt(0); }));\n//# sourceMappingURL=decode-data-xml.js.map","\"use strict\";\n// Generated using scripts/write-encode-map.ts\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction restoreDiff(arr) {\n for (var i = 1; i < arr.length; i++) {\n arr[i][0] += arr[i - 1][0] + 1;\n }\n return arr;\n}\n// prettier-ignore\nexports.default = new Map(/* #__PURE__ */ restoreDiff([[9, \"	\"], [0, \"
\"], [22, \"!\"], [0, \""\"], [0, \"#\"], [0, \"$\"], [0, \"%\"], [0, \"&\"], [0, \"'\"], [0, \"(\"], [0, \")\"], [0, \"*\"], [0, \"+\"], [0, \",\"], [1, \".\"], [0, \"/\"], [10, \":\"], [0, \";\"], [0, { v: \"<\", n: 8402, o: \"<⃒\" }], [0, { v: \"=\", n: 8421, o: \"=⃥\" }], [0, { v: \">\", n: 8402, o: \">⃒\" }], [0, \"?\"], [0, \"@\"], [26, \"[\"], [0, \"\\"], [0, \"]\"], [0, \"^\"], [0, \"_\"], [0, \"`\"], [5, { n: 106, o: \"fj\" }], [20, \"{\"], [0, \"|\"], [0, \"}\"], [34, \" \"], [0, \"¡\"], [0, \"¢\"], [0, \"£\"], [0, \"¤\"], [0, \"¥\"], [0, \"¦\"], [0, \"§\"], [0, \"¨\"], [0, \"©\"], [0, \"ª\"], [0, \"«\"], [0, \"¬\"], [0, \"­\"], [0, \"®\"], [0, \"¯\"], [0, \"°\"], [0, \"±\"], [0, \"²\"], [0, \"³\"], [0, \"´\"], [0, \"µ\"], [0, \"¶\"], [0, \"·\"], [0, \"¸\"], [0, \"¹\"], [0, \"º\"], [0, \"»\"], [0, \"¼\"], [0, \"½\"], [0, \"¾\"], [0, \"¿\"], [0, \"À\"], [0, \"Á\"], [0, \"Â\"], [0, \"Ã\"], [0, \"Ä\"], [0, \"Å\"], [0, \"Æ\"], [0, \"Ç\"], [0, \"È\"], [0, \"É\"], [0, \"Ê\"], [0, \"Ë\"], [0, \"Ì\"], [0, \"Í\"], [0, \"Î\"], [0, \"Ï\"], [0, \"Ð\"], [0, \"Ñ\"], [0, \"Ò\"], [0, \"Ó\"], [0, \"Ô\"], [0, \"Õ\"], [0, \"Ö\"], [0, \"×\"], [0, \"Ø\"], [0, \"Ù\"], [0, \"Ú\"], [0, \"Û\"], [0, \"Ü\"], [0, \"Ý\"], [0, \"Þ\"], [0, \"ß\"], [0, \"à\"], [0, \"á\"], [0, \"â\"], [0, \"ã\"], [0, \"ä\"], [0, \"å\"], [0, \"æ\"], [0, \"ç\"], [0, \"è\"], [0, \"é\"], [0, \"ê\"], [0, \"ë\"], [0, \"ì\"], [0, \"í\"], [0, \"î\"], [0, \"ï\"], [0, \"ð\"], [0, \"ñ\"], [0, \"ò\"], [0, \"ó\"], [0, \"ô\"], [0, \"õ\"], [0, \"ö\"], [0, \"÷\"], [0, \"ø\"], [0, \"ù\"], [0, \"ú\"], [0, \"û\"], [0, \"ü\"], [0, \"ý\"], [0, \"þ\"], [0, \"ÿ\"], [0, \"Ā\"], [0, \"ā\"], [0, \"Ă\"], [0, \"ă\"], [0, \"Ą\"], [0, \"ą\"], [0, \"Ć\"], [0, \"ć\"], [0, \"Ĉ\"], [0, \"ĉ\"], [0, \"Ċ\"], [0, \"ċ\"], [0, \"Č\"], [0, \"č\"], [0, \"Ď\"], [0, \"ď\"], [0, \"Đ\"], [0, \"đ\"], [0, \"Ē\"], [0, \"ē\"], [2, \"Ė\"], [0, \"ė\"], [0, \"Ę\"], [0, \"ę\"], [0, \"Ě\"], [0, \"ě\"], [0, \"Ĝ\"], [0, \"ĝ\"], [0, \"Ğ\"], [0, \"ğ\"], [0, \"Ġ\"], [0, \"ġ\"], [0, \"Ģ\"], [1, \"Ĥ\"], [0, \"ĥ\"], [0, \"Ħ\"], [0, \"ħ\"], [0, \"Ĩ\"], [0, \"ĩ\"], [0, \"Ī\"], [0, \"ī\"], [2, \"Į\"], [0, \"į\"], [0, \"İ\"], [0, \"ı\"], [0, \"IJ\"], [0, \"ij\"], [0, \"Ĵ\"], [0, \"ĵ\"], [0, \"Ķ\"], [0, \"ķ\"], [0, \"ĸ\"], [0, \"Ĺ\"], [0, \"ĺ\"], [0, \"Ļ\"], [0, \"ļ\"], [0, \"Ľ\"], [0, \"ľ\"], [0, \"Ŀ\"], [0, \"ŀ\"], [0, \"Ł\"], [0, \"ł\"], [0, \"Ń\"], [0, \"ń\"], [0, \"Ņ\"], [0, \"ņ\"], [0, \"Ň\"], [0, \"ň\"], [0, \"ʼn\"], [0, \"Ŋ\"], [0, \"ŋ\"], [0, \"Ō\"], [0, \"ō\"], [2, \"Ő\"], [0, \"ő\"], [0, \"Œ\"], [0, \"œ\"], [0, \"Ŕ\"], [0, \"ŕ\"], [0, \"Ŗ\"], [0, \"ŗ\"], [0, \"Ř\"], [0, \"ř\"], [0, \"Ś\"], [0, \"ś\"], [0, \"Ŝ\"], [0, \"ŝ\"], [0, \"Ş\"], [0, \"ş\"], [0, \"Š\"], [0, \"š\"], [0, \"Ţ\"], [0, \"ţ\"], [0, \"Ť\"], [0, \"ť\"], [0, \"Ŧ\"], [0, \"ŧ\"], [0, \"Ũ\"], [0, \"ũ\"], [0, \"Ū\"], [0, \"ū\"], [0, \"Ŭ\"], [0, \"ŭ\"], [0, \"Ů\"], [0, \"ů\"], [0, \"Ű\"], [0, \"ű\"], [0, \"Ų\"], [0, \"ų\"], [0, \"Ŵ\"], [0, \"ŵ\"], [0, \"Ŷ\"], [0, \"ŷ\"], [0, \"Ÿ\"], [0, \"Ź\"], [0, \"ź\"], [0, \"Ż\"], [0, \"ż\"], [0, \"Ž\"], [0, \"ž\"], [19, \"ƒ\"], [34, \"Ƶ\"], [63, \"ǵ\"], [65, \"ȷ\"], [142, \"ˆ\"], [0, \"ˇ\"], [16, \"˘\"], [0, \"˙\"], [0, \"˚\"], [0, \"˛\"], [0, \"˜\"], [0, \"˝\"], [51, \"̑\"], [127, \"Α\"], [0, \"Β\"], [0, \"Γ\"], [0, \"Δ\"], [0, \"Ε\"], [0, \"Ζ\"], [0, \"Η\"], [0, \"Θ\"], [0, \"Ι\"], [0, \"Κ\"], [0, \"Λ\"], [0, \"Μ\"], [0, \"Ν\"], [0, \"Ξ\"], [0, \"Ο\"], [0, \"Π\"], [0, \"Ρ\"], [1, \"Σ\"], [0, \"Τ\"], [0, \"Υ\"], [0, \"Φ\"], [0, \"Χ\"], [0, \"Ψ\"], [0, \"Ω\"], [7, \"α\"], [0, \"β\"], [0, \"γ\"], [0, \"δ\"], [0, \"ε\"], [0, \"ζ\"], [0, \"η\"], [0, \"θ\"], [0, \"ι\"], [0, \"κ\"], [0, \"λ\"], [0, \"μ\"], [0, \"ν\"], [0, \"ξ\"], [0, \"ο\"], [0, \"π\"], [0, \"ρ\"], [0, \"ς\"], [0, \"σ\"], [0, \"τ\"], [0, \"υ\"], [0, \"φ\"], [0, \"χ\"], [0, \"ψ\"], [0, \"ω\"], [7, \"ϑ\"], [0, \"ϒ\"], [2, \"ϕ\"], [0, \"ϖ\"], [5, \"Ϝ\"], [0, \"ϝ\"], [18, \"ϰ\"], [0, \"ϱ\"], [3, \"ϵ\"], [0, \"϶\"], [10, \"Ё\"], [0, \"Ђ\"], [0, \"Ѓ\"], [0, \"Є\"], [0, \"Ѕ\"], [0, \"І\"], [0, \"Ї\"], [0, \"Ј\"], [0, \"Љ\"], [0, \"Њ\"], [0, \"Ћ\"], [0, \"Ќ\"], [1, \"Ў\"], [0, \"Џ\"], [0, \"А\"], [0, \"Б\"], [0, \"В\"], [0, \"Г\"], [0, \"Д\"], [0, \"Е\"], [0, \"Ж\"], [0, \"З\"], [0, \"И\"], [0, \"Й\"], [0, \"К\"], [0, \"Л\"], [0, \"М\"], [0, \"Н\"], [0, \"О\"], [0, \"П\"], [0, \"Р\"], [0, \"С\"], [0, \"Т\"], [0, \"У\"], [0, \"Ф\"], [0, \"Х\"], [0, \"Ц\"], [0, \"Ч\"], [0, \"Ш\"], [0, \"Щ\"], [0, \"Ъ\"], [0, \"Ы\"], [0, \"Ь\"], [0, \"Э\"], [0, \"Ю\"], [0, \"Я\"], [0, \"а\"], [0, \"б\"], [0, \"в\"], [0, \"г\"], [0, \"д\"], [0, \"е\"], [0, \"ж\"], [0, \"з\"], [0, \"и\"], [0, \"й\"], [0, \"к\"], [0, \"л\"], [0, \"м\"], [0, \"н\"], [0, \"о\"], [0, \"п\"], [0, \"р\"], [0, \"с\"], [0, \"т\"], [0, \"у\"], [0, \"ф\"], [0, \"х\"], [0, \"ц\"], [0, \"ч\"], [0, \"ш\"], [0, \"щ\"], [0, \"ъ\"], [0, \"ы\"], [0, \"ь\"], [0, \"э\"], [0, \"ю\"], [0, \"я\"], [1, \"ё\"], [0, \"ђ\"], [0, \"ѓ\"], [0, \"є\"], [0, \"ѕ\"], [0, \"і\"], [0, \"ї\"], [0, \"ј\"], [0, \"љ\"], [0, \"њ\"], [0, \"ћ\"], [0, \"ќ\"], [1, \"ў\"], [0, \"џ\"], [7074, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [1, \" \"], [0, \" \"], [0, \" \"], [0, \" \"], [0, \"​\"], [0, \"‌\"], [0, \"‍\"], [0, \"‎\"], [0, \"‏\"], [0, \"‐\"], [2, \"–\"], [0, \"—\"], [0, \"―\"], [0, \"‖\"], [1, \"‘\"], [0, \"’\"], [0, \"‚\"], [1, \"“\"], [0, \"”\"], [0, \"„\"], [1, \"†\"], [0, \"‡\"], [0, \"•\"], [2, \"‥\"], [0, \"…\"], [9, \"‰\"], [0, \"‱\"], [0, \"′\"], [0, \"″\"], [0, \"‴\"], [0, \"‵\"], [3, \"‹\"], [0, \"›\"], [3, \"‾\"], [2, \"⁁\"], [1, \"⁃\"], [0, \"⁄\"], [10, \"⁏\"], [7, \"⁗\"], [7, { v: \" \", n: 8202, o: \"  \" }], [0, \"⁠\"], [0, \"⁡\"], [0, \"⁢\"], [0, \"⁣\"], [72, \"€\"], [46, \"⃛\"], [0, \"⃜\"], [37, \"ℂ\"], [2, \"℅\"], [4, \"ℊ\"], [0, \"ℋ\"], [0, \"ℌ\"], [0, \"ℍ\"], [0, \"ℎ\"], [0, \"ℏ\"], [0, \"ℐ\"], [0, \"ℑ\"], [0, \"ℒ\"], [0, \"ℓ\"], [1, \"ℕ\"], [0, \"№\"], [0, \"℗\"], [0, \"℘\"], [0, \"ℙ\"], [0, \"ℚ\"], [0, \"ℛ\"], [0, \"ℜ\"], [0, \"ℝ\"], [0, \"℞\"], [3, \"™\"], [1, \"ℤ\"], [2, \"℧\"], [0, \"ℨ\"], [0, \"℩\"], [2, \"ℬ\"], [0, \"ℭ\"], [1, \"ℯ\"], [0, \"ℰ\"], [0, \"ℱ\"], [1, \"ℳ\"], [0, \"ℴ\"], [0, \"ℵ\"], [0, \"ℶ\"], [0, \"ℷ\"], [0, \"ℸ\"], [12, \"ⅅ\"], [0, \"ⅆ\"], [0, \"ⅇ\"], [0, \"ⅈ\"], [10, \"⅓\"], [0, \"⅔\"], [0, \"⅕\"], [0, \"⅖\"], [0, \"⅗\"], [0, \"⅘\"], [0, \"⅙\"], [0, \"⅚\"], [0, \"⅛\"], [0, \"⅜\"], [0, \"⅝\"], [0, \"⅞\"], [49, \"←\"], [0, \"↑\"], [0, \"→\"], [0, \"↓\"], [0, \"↔\"], [0, \"↕\"], [0, \"↖\"], [0, \"↗\"], [0, \"↘\"], [0, \"↙\"], [0, \"↚\"], [0, \"↛\"], [1, { v: \"↝\", n: 824, o: \"↝̸\" }], [0, \"↞\"], [0, \"↟\"], [0, \"↠\"], [0, \"↡\"], [0, \"↢\"], [0, \"↣\"], [0, \"↤\"], [0, \"↥\"], [0, \"↦\"], [0, \"↧\"], [1, \"↩\"], [0, \"↪\"], [0, \"↫\"], [0, \"↬\"], [0, \"↭\"], [0, \"↮\"], [1, \"↰\"], [0, \"↱\"], [0, \"↲\"], [0, \"↳\"], [1, \"↵\"], [0, \"↶\"], [0, \"↷\"], [2, \"↺\"], [0, \"↻\"], [0, \"↼\"], [0, \"↽\"], [0, \"↾\"], [0, \"↿\"], [0, \"⇀\"], [0, \"⇁\"], [0, \"⇂\"], [0, \"⇃\"], [0, \"⇄\"], [0, \"⇅\"], [0, \"⇆\"], [0, \"⇇\"], [0, \"⇈\"], [0, \"⇉\"], [0, \"⇊\"], [0, \"⇋\"], [0, \"⇌\"], [0, \"⇍\"], [0, \"⇎\"], [0, \"⇏\"], [0, \"⇐\"], [0, \"⇑\"], [0, \"⇒\"], [0, \"⇓\"], [0, \"⇔\"], [0, \"⇕\"], [0, \"⇖\"], [0, \"⇗\"], [0, \"⇘\"], [0, \"⇙\"], [0, \"⇚\"], [0, \"⇛\"], [1, \"⇝\"], [6, \"⇤\"], [0, \"⇥\"], [15, \"⇵\"], [7, \"⇽\"], [0, \"⇾\"], [0, \"⇿\"], [0, \"∀\"], [0, \"∁\"], [0, { v: \"∂\", n: 824, o: \"∂̸\" }], [0, \"∃\"], [0, \"∄\"], [0, \"∅\"], [1, \"∇\"], [0, \"∈\"], [0, \"∉\"], [1, \"∋\"], [0, \"∌\"], [2, \"∏\"], [0, \"∐\"], [0, \"∑\"], [0, \"−\"], [0, \"∓\"], [0, \"∔\"], [1, \"∖\"], [0, \"∗\"], [0, \"∘\"], [1, \"√\"], [2, \"∝\"], [0, \"∞\"], [0, \"∟\"], [0, { v: \"∠\", n: 8402, o: \"∠⃒\" }], [0, \"∡\"], [0, \"∢\"], [0, \"∣\"], [0, \"∤\"], [0, \"∥\"], [0, \"∦\"], [0, \"∧\"], [0, \"∨\"], [0, { v: \"∩\", n: 65024, o: \"∩︀\" }], [0, { v: \"∪\", n: 65024, o: \"∪︀\" }], [0, \"∫\"], [0, \"∬\"], [0, \"∭\"], [0, \"∮\"], [0, \"∯\"], [0, \"∰\"], [0, \"∱\"], [0, \"∲\"], [0, \"∳\"], [0, \"∴\"], [0, \"∵\"], [0, \"∶\"], [0, \"∷\"], [0, \"∸\"], [1, \"∺\"], [0, \"∻\"], [0, { v: \"∼\", n: 8402, o: \"∼⃒\" }], [0, { v: \"∽\", n: 817, o: \"∽̱\" }], [0, { v: \"∾\", n: 819, o: \"∾̳\" }], [0, \"∿\"], [0, \"≀\"], [0, \"≁\"], [0, { v: \"≂\", n: 824, o: \"≂̸\" }], [0, \"≃\"], [0, \"≄\"], [0, \"≅\"], [0, \"≆\"], [0, \"≇\"], [0, \"≈\"], [0, \"≉\"], [0, \"≊\"], [0, { v: \"≋\", n: 824, o: \"≋̸\" }], [0, \"≌\"], [0, { v: \"≍\", n: 8402, o: \"≍⃒\" }], [0, { v: \"≎\", n: 824, o: \"≎̸\" }], [0, { v: \"≏\", n: 824, o: \"≏̸\" }], [0, { v: \"≐\", n: 824, o: \"≐̸\" }], [0, \"≑\"], [0, \"≒\"], [0, \"≓\"], [0, \"≔\"], [0, \"≕\"], [0, \"≖\"], [0, \"≗\"], [1, \"≙\"], [0, \"≚\"], [1, \"≜\"], [2, \"≟\"], [0, \"≠\"], [0, { v: \"≡\", n: 8421, o: \"≡⃥\" }], [0, \"≢\"], [1, { v: \"≤\", n: 8402, o: \"≤⃒\" }], [0, { v: \"≥\", n: 8402, o: \"≥⃒\" }], [0, { v: \"≦\", n: 824, o: \"≦̸\" }], [0, { v: \"≧\", n: 824, o: \"≧̸\" }], [0, { v: \"≨\", n: 65024, o: \"≨︀\" }], [0, { v: \"≩\", n: 65024, o: \"≩︀\" }], [0, { v: \"≪\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≪̸\"], [7577, \"≪⃒\"]])) }], [0, { v: \"≫\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"≫̸\"], [7577, \"≫⃒\"]])) }], [0, \"≬\"], [0, \"≭\"], [0, \"≮\"], [0, \"≯\"], [0, \"≰\"], [0, \"≱\"], [0, \"≲\"], [0, \"≳\"], [0, \"≴\"], [0, \"≵\"], [0, \"≶\"], [0, \"≷\"], [0, \"≸\"], [0, \"≹\"], [0, \"≺\"], [0, \"≻\"], [0, \"≼\"], [0, \"≽\"], [0, \"≾\"], [0, { v: \"≿\", n: 824, o: \"≿̸\" }], [0, \"⊀\"], [0, \"⊁\"], [0, { v: \"⊂\", n: 8402, o: \"⊂⃒\" }], [0, { v: \"⊃\", n: 8402, o: \"⊃⃒\" }], [0, \"⊄\"], [0, \"⊅\"], [0, \"⊆\"], [0, \"⊇\"], [0, \"⊈\"], [0, \"⊉\"], [0, { v: \"⊊\", n: 65024, o: \"⊊︀\" }], [0, { v: \"⊋\", n: 65024, o: \"⊋︀\" }], [1, \"⊍\"], [0, \"⊎\"], [0, { v: \"⊏\", n: 824, o: \"⊏̸\" }], [0, { v: \"⊐\", n: 824, o: \"⊐̸\" }], [0, \"⊑\"], [0, \"⊒\"], [0, { v: \"⊓\", n: 65024, o: \"⊓︀\" }], [0, { v: \"⊔\", n: 65024, o: \"⊔︀\" }], [0, \"⊕\"], [0, \"⊖\"], [0, \"⊗\"], [0, \"⊘\"], [0, \"⊙\"], [0, \"⊚\"], [0, \"⊛\"], [1, \"⊝\"], [0, \"⊞\"], [0, \"⊟\"], [0, \"⊠\"], [0, \"⊡\"], [0, \"⊢\"], [0, \"⊣\"], [0, \"⊤\"], [0, \"⊥\"], [1, \"⊧\"], [0, \"⊨\"], [0, \"⊩\"], [0, \"⊪\"], [0, \"⊫\"], [0, \"⊬\"], [0, \"⊭\"], [0, \"⊮\"], [0, \"⊯\"], [0, \"⊰\"], [1, \"⊲\"], [0, \"⊳\"], [0, { v: \"⊴\", n: 8402, o: \"⊴⃒\" }], [0, { v: \"⊵\", n: 8402, o: \"⊵⃒\" }], [0, \"⊶\"], [0, \"⊷\"], [0, \"⊸\"], [0, \"⊹\"], [0, \"⊺\"], [0, \"⊻\"], [1, \"⊽\"], [0, \"⊾\"], [0, \"⊿\"], [0, \"⋀\"], [0, \"⋁\"], [0, \"⋂\"], [0, \"⋃\"], [0, \"⋄\"], [0, \"⋅\"], [0, \"⋆\"], [0, \"⋇\"], [0, \"⋈\"], [0, \"⋉\"], [0, \"⋊\"], [0, \"⋋\"], [0, \"⋌\"], [0, \"⋍\"], [0, \"⋎\"], [0, \"⋏\"], [0, \"⋐\"], [0, \"⋑\"], [0, \"⋒\"], [0, \"⋓\"], [0, \"⋔\"], [0, \"⋕\"], [0, \"⋖\"], [0, \"⋗\"], [0, { v: \"⋘\", n: 824, o: \"⋘̸\" }], [0, { v: \"⋙\", n: 824, o: \"⋙̸\" }], [0, { v: \"⋚\", n: 65024, o: \"⋚︀\" }], [0, { v: \"⋛\", n: 65024, o: \"⋛︀\" }], [2, \"⋞\"], [0, \"⋟\"], [0, \"⋠\"], [0, \"⋡\"], [0, \"⋢\"], [0, \"⋣\"], [2, \"⋦\"], [0, \"⋧\"], [0, \"⋨\"], [0, \"⋩\"], [0, \"⋪\"], [0, \"⋫\"], [0, \"⋬\"], [0, \"⋭\"], [0, \"⋮\"], [0, \"⋯\"], [0, \"⋰\"], [0, \"⋱\"], [0, \"⋲\"], [0, \"⋳\"], [0, \"⋴\"], [0, { v: \"⋵\", n: 824, o: \"⋵̸\" }], [0, \"⋶\"], [0, \"⋷\"], [1, { v: \"⋹\", n: 824, o: \"⋹̸\" }], [0, \"⋺\"], [0, \"⋻\"], [0, \"⋼\"], [0, \"⋽\"], [0, \"⋾\"], [6, \"⌅\"], [0, \"⌆\"], [1, \"⌈\"], [0, \"⌉\"], [0, \"⌊\"], [0, \"⌋\"], [0, \"⌌\"], [0, \"⌍\"], [0, \"⌎\"], [0, \"⌏\"], [0, \"⌐\"], [1, \"⌒\"], [0, \"⌓\"], [1, \"⌕\"], [0, \"⌖\"], [5, \"⌜\"], [0, \"⌝\"], [0, \"⌞\"], [0, \"⌟\"], [2, \"⌢\"], [0, \"⌣\"], [9, \"⌭\"], [0, \"⌮\"], [7, \"⌶\"], [6, \"⌽\"], [1, \"⌿\"], [60, \"⍼\"], [51, \"⎰\"], [0, \"⎱\"], [2, \"⎴\"], [0, \"⎵\"], [0, \"⎶\"], [37, \"⏜\"], [0, \"⏝\"], [0, \"⏞\"], [0, \"⏟\"], [2, \"⏢\"], [4, \"⏧\"], [59, \"␣\"], [164, \"Ⓢ\"], [55, \"─\"], [1, \"│\"], [9, \"┌\"], [3, \"┐\"], [3, \"└\"], [3, \"┘\"], [3, \"├\"], [7, \"┤\"], [7, \"┬\"], [7, \"┴\"], [7, \"┼\"], [19, \"═\"], [0, \"║\"], [0, \"╒\"], [0, \"╓\"], [0, \"╔\"], [0, \"╕\"], [0, \"╖\"], [0, \"╗\"], [0, \"╘\"], [0, \"╙\"], [0, \"╚\"], [0, \"╛\"], [0, \"╜\"], [0, \"╝\"], [0, \"╞\"], [0, \"╟\"], [0, \"╠\"], [0, \"╡\"], [0, \"╢\"], [0, \"╣\"], [0, \"╤\"], [0, \"╥\"], [0, \"╦\"], [0, \"╧\"], [0, \"╨\"], [0, \"╩\"], [0, \"╪\"], [0, \"╫\"], [0, \"╬\"], [19, \"▀\"], [3, \"▄\"], [3, \"█\"], [8, \"░\"], [0, \"▒\"], [0, \"▓\"], [13, \"□\"], [8, \"▪\"], [0, \"▫\"], [1, \"▭\"], [0, \"▮\"], [2, \"▱\"], [1, \"△\"], [0, \"▴\"], [0, \"▵\"], [2, \"▸\"], [0, \"▹\"], [3, \"▽\"], [0, \"▾\"], [0, \"▿\"], [2, \"◂\"], [0, \"◃\"], [6, \"◊\"], [0, \"○\"], [32, \"◬\"], [2, \"◯\"], [8, \"◸\"], [0, \"◹\"], [0, \"◺\"], [0, \"◻\"], [0, \"◼\"], [8, \"★\"], [0, \"☆\"], [7, \"☎\"], [49, \"♀\"], [1, \"♂\"], [29, \"♠\"], [2, \"♣\"], [1, \"♥\"], [0, \"♦\"], [3, \"♪\"], [2, \"♭\"], [0, \"♮\"], [0, \"♯\"], [163, \"✓\"], [3, \"✗\"], [8, \"✠\"], [21, \"✶\"], [33, \"❘\"], [25, \"❲\"], [0, \"❳\"], [84, \"⟈\"], [0, \"⟉\"], [28, \"⟦\"], [0, \"⟧\"], [0, \"⟨\"], [0, \"⟩\"], [0, \"⟪\"], [0, \"⟫\"], [0, \"⟬\"], [0, \"⟭\"], [7, \"⟵\"], [0, \"⟶\"], [0, \"⟷\"], [0, \"⟸\"], [0, \"⟹\"], [0, \"⟺\"], [1, \"⟼\"], [2, \"⟿\"], [258, \"⤂\"], [0, \"⤃\"], [0, \"⤄\"], [0, \"⤅\"], [6, \"⤌\"], [0, \"⤍\"], [0, \"⤎\"], [0, \"⤏\"], [0, \"⤐\"], [0, \"⤑\"], [0, \"⤒\"], [0, \"⤓\"], [2, \"⤖\"], [2, \"⤙\"], [0, \"⤚\"], [0, \"⤛\"], [0, \"⤜\"], [0, \"⤝\"], [0, \"⤞\"], [0, \"⤟\"], [0, \"⤠\"], [2, \"⤣\"], [0, \"⤤\"], [0, \"⤥\"], [0, \"⤦\"], [0, \"⤧\"], [0, \"⤨\"], [0, \"⤩\"], [0, \"⤪\"], [8, { v: \"⤳\", n: 824, o: \"⤳̸\" }], [1, \"⤵\"], [0, \"⤶\"], [0, \"⤷\"], [0, \"⤸\"], [0, \"⤹\"], [2, \"⤼\"], [0, \"⤽\"], [7, \"⥅\"], [2, \"⥈\"], [0, \"⥉\"], [0, \"⥊\"], [0, \"⥋\"], [2, \"⥎\"], [0, \"⥏\"], [0, \"⥐\"], [0, \"⥑\"], [0, \"⥒\"], [0, \"⥓\"], [0, \"⥔\"], [0, \"⥕\"], [0, \"⥖\"], [0, \"⥗\"], [0, \"⥘\"], [0, \"⥙\"], [0, \"⥚\"], [0, \"⥛\"], [0, \"⥜\"], [0, \"⥝\"], [0, \"⥞\"], [0, \"⥟\"], [0, \"⥠\"], [0, \"⥡\"], [0, \"⥢\"], [0, \"⥣\"], [0, \"⥤\"], [0, \"⥥\"], [0, \"⥦\"], [0, \"⥧\"], [0, \"⥨\"], [0, \"⥩\"], [0, \"⥪\"], [0, \"⥫\"], [0, \"⥬\"], [0, \"⥭\"], [0, \"⥮\"], [0, \"⥯\"], [0, \"⥰\"], [0, \"⥱\"], [0, \"⥲\"], [0, \"⥳\"], [0, \"⥴\"], [0, \"⥵\"], [0, \"⥶\"], [1, \"⥸\"], [0, \"⥹\"], [1, \"⥻\"], [0, \"⥼\"], [0, \"⥽\"], [0, \"⥾\"], [0, \"⥿\"], [5, \"⦅\"], [0, \"⦆\"], [4, \"⦋\"], [0, \"⦌\"], [0, \"⦍\"], [0, \"⦎\"], [0, \"⦏\"], [0, \"⦐\"], [0, \"⦑\"], [0, \"⦒\"], [0, \"⦓\"], [0, \"⦔\"], [0, \"⦕\"], [0, \"⦖\"], [3, \"⦚\"], [1, \"⦜\"], [0, \"⦝\"], [6, \"⦤\"], [0, \"⦥\"], [0, \"⦦\"], [0, \"⦧\"], [0, \"⦨\"], [0, \"⦩\"], [0, \"⦪\"], [0, \"⦫\"], [0, \"⦬\"], [0, \"⦭\"], [0, \"⦮\"], [0, \"⦯\"], [0, \"⦰\"], [0, \"⦱\"], [0, \"⦲\"], [0, \"⦳\"], [0, \"⦴\"], [0, \"⦵\"], [0, \"⦶\"], [0, \"⦷\"], [1, \"⦹\"], [1, \"⦻\"], [0, \"⦼\"], [1, \"⦾\"], [0, \"⦿\"], [0, \"⧀\"], [0, \"⧁\"], [0, \"⧂\"], [0, \"⧃\"], [0, \"⧄\"], [0, \"⧅\"], [3, \"⧉\"], [3, \"⧍\"], [0, \"⧎\"], [0, { v: \"⧏\", n: 824, o: \"⧏̸\" }], [0, { v: \"⧐\", n: 824, o: \"⧐̸\" }], [11, \"⧜\"], [0, \"⧝\"], [0, \"⧞\"], [4, \"⧣\"], [0, \"⧤\"], [0, \"⧥\"], [5, \"⧫\"], [8, \"⧴\"], [1, \"⧶\"], [9, \"⨀\"], [0, \"⨁\"], [0, \"⨂\"], [1, \"⨄\"], [1, \"⨆\"], [5, \"⨌\"], [0, \"⨍\"], [2, \"⨐\"], [0, \"⨑\"], [0, \"⨒\"], [0, \"⨓\"], [0, \"⨔\"], [0, \"⨕\"], [0, \"⨖\"], [0, \"⨗\"], [10, \"⨢\"], [0, \"⨣\"], [0, \"⨤\"], [0, \"⨥\"], [0, \"⨦\"], [0, \"⨧\"], [1, \"⨩\"], [0, \"⨪\"], [2, \"⨭\"], [0, \"⨮\"], [0, \"⨯\"], [0, \"⨰\"], [0, \"⨱\"], [1, \"⨳\"], [0, \"⨴\"], [0, \"⨵\"], [0, \"⨶\"], [0, \"⨷\"], [0, \"⨸\"], [0, \"⨹\"], [0, \"⨺\"], [0, \"⨻\"], [0, \"⨼\"], [2, \"⨿\"], [0, \"⩀\"], [1, \"⩂\"], [0, \"⩃\"], [0, \"⩄\"], [0, \"⩅\"], [0, \"⩆\"], [0, \"⩇\"], [0, \"⩈\"], [0, \"⩉\"], [0, \"⩊\"], [0, \"⩋\"], [0, \"⩌\"], [0, \"⩍\"], [2, \"⩐\"], [2, \"⩓\"], [0, \"⩔\"], [0, \"⩕\"], [0, \"⩖\"], [0, \"⩗\"], [0, \"⩘\"], [1, \"⩚\"], [0, \"⩛\"], [0, \"⩜\"], [0, \"⩝\"], [1, \"⩟\"], [6, \"⩦\"], [3, \"⩪\"], [2, { v: \"⩭\", n: 824, o: \"⩭̸\" }], [0, \"⩮\"], [0, \"⩯\"], [0, { v: \"⩰\", n: 824, o: \"⩰̸\" }], [0, \"⩱\"], [0, \"⩲\"], [0, \"⩳\"], [0, \"⩴\"], [0, \"⩵\"], [1, \"⩷\"], [0, \"⩸\"], [0, \"⩹\"], [0, \"⩺\"], [0, \"⩻\"], [0, \"⩼\"], [0, { v: \"⩽\", n: 824, o: \"⩽̸\" }], [0, { v: \"⩾\", n: 824, o: \"⩾̸\" }], [0, \"⩿\"], [0, \"⪀\"], [0, \"⪁\"], [0, \"⪂\"], [0, \"⪃\"], [0, \"⪄\"], [0, \"⪅\"], [0, \"⪆\"], [0, \"⪇\"], [0, \"⪈\"], [0, \"⪉\"], [0, \"⪊\"], [0, \"⪋\"], [0, \"⪌\"], [0, \"⪍\"], [0, \"⪎\"], [0, \"⪏\"], [0, \"⪐\"], [0, \"⪑\"], [0, \"⪒\"], [0, \"⪓\"], [0, \"⪔\"], [0, \"⪕\"], [0, \"⪖\"], [0, \"⪗\"], [0, \"⪘\"], [0, \"⪙\"], [0, \"⪚\"], [2, \"⪝\"], [0, \"⪞\"], [0, \"⪟\"], [0, \"⪠\"], [0, { v: \"⪡\", n: 824, o: \"⪡̸\" }], [0, { v: \"⪢\", n: 824, o: \"⪢̸\" }], [1, \"⪤\"], [0, \"⪥\"], [0, \"⪦\"], [0, \"⪧\"], [0, \"⪨\"], [0, \"⪩\"], [0, \"⪪\"], [0, \"⪫\"], [0, { v: \"⪬\", n: 65024, o: \"⪬︀\" }], [0, { v: \"⪭\", n: 65024, o: \"⪭︀\" }], [0, \"⪮\"], [0, { v: \"⪯\", n: 824, o: \"⪯̸\" }], [0, { v: \"⪰\", n: 824, o: \"⪰̸\" }], [2, \"⪳\"], [0, \"⪴\"], [0, \"⪵\"], [0, \"⪶\"], [0, \"⪷\"], [0, \"⪸\"], [0, \"⪹\"], [0, \"⪺\"], [0, \"⪻\"], [0, \"⪼\"], [0, \"⪽\"], [0, \"⪾\"], [0, \"⪿\"], [0, \"⫀\"], [0, \"⫁\"], [0, \"⫂\"], [0, \"⫃\"], [0, \"⫄\"], [0, { v: \"⫅\", n: 824, o: \"⫅̸\" }], [0, { v: \"⫆\", n: 824, o: \"⫆̸\" }], [0, \"⫇\"], [0, \"⫈\"], [2, { v: \"⫋\", n: 65024, o: \"⫋︀\" }], [0, { v: \"⫌\", n: 65024, o: \"⫌︀\" }], [2, \"⫏\"], [0, \"⫐\"], [0, \"⫑\"], [0, \"⫒\"], [0, \"⫓\"], [0, \"⫔\"], [0, \"⫕\"], [0, \"⫖\"], [0, \"⫗\"], [0, \"⫘\"], [0, \"⫙\"], [0, \"⫚\"], [0, \"⫛\"], [8, \"⫤\"], [1, \"⫦\"], [0, \"⫧\"], [0, \"⫨\"], [0, \"⫩\"], [1, \"⫫\"], [0, \"⫬\"], [0, \"⫭\"], [0, \"⫮\"], [0, \"⫯\"], [0, \"⫰\"], [0, \"⫱\"], [0, \"⫲\"], [0, \"⫳\"], [9, { v: \"⫽\", n: 8421, o: \"⫽⃥\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"𝒜\"], [1, \"𝒞\"], [0, \"𝒟\"], [2, \"𝒢\"], [2, \"𝒥\"], [0, \"𝒦\"], [2, \"𝒩\"], [0, \"𝒪\"], [0, \"𝒫\"], [0, \"𝒬\"], [1, \"𝒮\"], [0, \"𝒯\"], [0, \"𝒰\"], [0, \"𝒱\"], [0, \"𝒲\"], [0, \"𝒳\"], [0, \"𝒴\"], [0, \"𝒵\"], [0, \"𝒶\"], [0, \"𝒷\"], [0, \"𝒸\"], [0, \"𝒹\"], [1, \"𝒻\"], [1, \"𝒽\"], [0, \"𝒾\"], [0, \"𝒿\"], [0, \"𝓀\"], [0, \"𝓁\"], [0, \"𝓂\"], [0, \"𝓃\"], [1, \"𝓅\"], [0, \"𝓆\"], [0, \"𝓇\"], [0, \"𝓈\"], [0, \"𝓉\"], [0, \"𝓊\"], [0, \"𝓋\"], [0, \"𝓌\"], [0, \"𝓍\"], [0, \"𝓎\"], [0, \"𝓏\"], [52, \"𝔄\"], [0, \"𝔅\"], [1, \"𝔇\"], [0, \"𝔈\"], [0, \"𝔉\"], [0, \"𝔊\"], [2, \"𝔍\"], [0, \"𝔎\"], [0, \"𝔏\"], [0, \"𝔐\"], [0, \"𝔑\"], [0, \"𝔒\"], [0, \"𝔓\"], [0, \"𝔔\"], [1, \"𝔖\"], [0, \"𝔗\"], [0, \"𝔘\"], [0, \"𝔙\"], [0, \"𝔚\"], [0, \"𝔛\"], [0, \"𝔜\"], [1, \"𝔞\"], [0, \"𝔟\"], [0, \"𝔠\"], [0, \"𝔡\"], [0, \"𝔢\"], [0, \"𝔣\"], [0, \"𝔤\"], [0, \"𝔥\"], [0, \"𝔦\"], [0, \"𝔧\"], [0, \"𝔨\"], [0, \"𝔩\"], [0, \"𝔪\"], [0, \"𝔫\"], [0, \"𝔬\"], [0, \"𝔭\"], [0, \"𝔮\"], [0, \"𝔯\"], [0, \"𝔰\"], [0, \"𝔱\"], [0, \"𝔲\"], [0, \"𝔳\"], [0, \"𝔴\"], [0, \"𝔵\"], [0, \"𝔶\"], [0, \"𝔷\"], [0, \"𝔸\"], [0, \"𝔹\"], [1, \"𝔻\"], [0, \"𝔼\"], [0, \"𝔽\"], [0, \"𝔾\"], [1, \"𝕀\"], [0, \"𝕁\"], [0, \"𝕂\"], [0, \"𝕃\"], [0, \"𝕄\"], [1, \"𝕆\"], [3, \"𝕊\"], [0, \"𝕋\"], [0, \"𝕌\"], [0, \"𝕍\"], [0, \"𝕎\"], [0, \"𝕏\"], [0, \"𝕐\"], [1, \"𝕒\"], [0, \"𝕓\"], [0, \"𝕔\"], [0, \"𝕕\"], [0, \"𝕖\"], [0, \"𝕗\"], [0, \"𝕘\"], [0, \"𝕙\"], [0, \"𝕚\"], [0, \"𝕛\"], [0, \"𝕜\"], [0, \"𝕝\"], [0, \"𝕞\"], [0, \"𝕟\"], [0, \"𝕠\"], [0, \"𝕡\"], [0, \"𝕢\"], [0, \"𝕣\"], [0, \"𝕤\"], [0, \"𝕥\"], [0, \"𝕦\"], [0, \"𝕧\"], [0, \"𝕨\"], [0, \"𝕩\"], [0, \"𝕪\"], [0, \"𝕫\"]])) }], [8906, \"ff\"], [0, \"fi\"], [0, \"fl\"], [0, \"ffi\"], [0, \"ffl\"]]));\n//# sourceMappingURL=encode-html.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLAttribute = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.DecodingMode = exports.EntityDecoder = exports.encodeHTML5 = exports.encodeHTML4 = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.escapeText = exports.escapeAttribute = exports.escapeUTF8 = exports.escape = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = exports.EncodingMode = exports.EntityLevel = void 0;\nvar decode_js_1 = require(\"./decode.js\");\nvar encode_js_1 = require(\"./encode.js\");\nvar escape_js_1 = require(\"./escape.js\");\n/** The level of entities to support. */\nvar EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel = exports.EntityLevel || (exports.EntityLevel = {}));\nvar EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode = exports.EncodingMode || (exports.EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n */\nfunction decode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n var mode = typeof options === \"object\" ? options.mode : undefined;\n return (0, decode_js_1.decodeHTML)(data, mode);\n }\n return (0, decode_js_1.decodeXML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nfunction decodeStrict(data, options) {\n var _a;\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n (_a = opts.mode) !== null && _a !== void 0 ? _a : (opts.mode = decode_js_1.DecodingMode.Strict);\n return decode(data, opts);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param options Encoding options.\n */\nfunction encode(data, options) {\n if (options === void 0) { options = EntityLevel.XML; }\n var opts = typeof options === \"number\" ? { level: options } : options;\n // Mode `UTF8` just escapes XML entities\n if (opts.mode === EncodingMode.UTF8)\n return (0, escape_js_1.escapeUTF8)(data);\n if (opts.mode === EncodingMode.Attribute)\n return (0, escape_js_1.escapeAttribute)(data);\n if (opts.mode === EncodingMode.Text)\n return (0, escape_js_1.escapeText)(data);\n if (opts.level === EntityLevel.HTML) {\n if (opts.mode === EncodingMode.ASCII) {\n return (0, encode_js_1.encodeNonAsciiHTML)(data);\n }\n return (0, encode_js_1.encodeHTML)(data);\n }\n // ASCII and Extensive are equivalent\n return (0, escape_js_1.encodeXML)(data);\n}\nexports.encode = encode;\nvar escape_js_2 = require(\"./escape.js\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return escape_js_2.encodeXML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return escape_js_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return escape_js_2.escapeUTF8; } });\nObject.defineProperty(exports, \"escapeAttribute\", { enumerable: true, get: function () { return escape_js_2.escapeAttribute; } });\nObject.defineProperty(exports, \"escapeText\", { enumerable: true, get: function () { return escape_js_2.escapeText; } });\nvar encode_js_2 = require(\"./encode.js\");\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_js_2.encodeNonAsciiHTML; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_js_2.encodeHTML; } });\nvar decode_js_2 = require(\"./decode.js\");\nObject.defineProperty(exports, \"EntityDecoder\", { enumerable: true, get: function () { return decode_js_2.EntityDecoder; } });\nObject.defineProperty(exports, \"DecodingMode\", { enumerable: true, get: function () { return decode_js_2.DecodingMode; } });\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTMLAttribute\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLAttribute; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_js_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_js_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_js_2.decodeXML; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parser = void 0;\nvar Tokenizer_js_1 = __importStar(require(\"./Tokenizer.js\"));\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar formTags = new Set([\n \"input\",\n \"option\",\n \"optgroup\",\n \"select\",\n \"button\",\n \"datalist\",\n \"textarea\",\n]);\nvar pTag = new Set([\"p\"]);\nvar tableSectionTags = new Set([\"thead\", \"tbody\"]);\nvar ddtTags = new Set([\"dd\", \"dt\"]);\nvar rtpTags = new Set([\"rt\", \"rp\"]);\nvar openImpliesClose = new Map([\n [\"tr\", new Set([\"tr\", \"th\", \"td\"])],\n [\"th\", new Set([\"th\"])],\n [\"td\", new Set([\"thead\", \"th\", \"td\"])],\n [\"body\", new Set([\"head\", \"link\", \"script\"])],\n [\"li\", new Set([\"li\"])],\n [\"p\", pTag],\n [\"h1\", pTag],\n [\"h2\", pTag],\n [\"h3\", pTag],\n [\"h4\", pTag],\n [\"h5\", pTag],\n [\"h6\", pTag],\n [\"select\", formTags],\n [\"input\", formTags],\n [\"output\", formTags],\n [\"button\", formTags],\n [\"datalist\", formTags],\n [\"textarea\", formTags],\n [\"option\", new Set([\"option\"])],\n [\"optgroup\", new Set([\"optgroup\", \"option\"])],\n [\"dd\", ddtTags],\n [\"dt\", ddtTags],\n [\"address\", pTag],\n [\"article\", pTag],\n [\"aside\", pTag],\n [\"blockquote\", pTag],\n [\"details\", pTag],\n [\"div\", pTag],\n [\"dl\", pTag],\n [\"fieldset\", pTag],\n [\"figcaption\", pTag],\n [\"figure\", pTag],\n [\"footer\", pTag],\n [\"form\", pTag],\n [\"header\", pTag],\n [\"hr\", pTag],\n [\"main\", pTag],\n [\"nav\", pTag],\n [\"ol\", pTag],\n [\"pre\", pTag],\n [\"section\", pTag],\n [\"table\", pTag],\n [\"ul\", pTag],\n [\"rt\", rtpTags],\n [\"rp\", rtpTags],\n [\"tbody\", tableSectionTags],\n [\"tfoot\", tableSectionTags],\n]);\nvar voidElements = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\nvar foreignContextElements = new Set([\"math\", \"svg\"]);\nvar htmlIntegrationElements = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignobject\",\n \"desc\",\n \"title\",\n]);\nvar reNameEnd = /\\s|\\//;\nvar Parser = /** @class */ (function () {\n function Parser(cbs, options) {\n if (options === void 0) { options = {}; }\n var _a, _b, _c, _d, _e;\n this.options = options;\n /** The start index of the last event. */\n this.startIndex = 0;\n /** The end index of the last event. */\n this.endIndex = 0;\n /**\n * Store the start index of the current open tag,\n * so we can update the start index for attributes.\n */\n this.openTagStart = 0;\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribvalue = \"\";\n this.attribs = null;\n this.stack = [];\n this.foreignContext = [];\n this.buffers = [];\n this.bufferOffset = 0;\n /** The index of the last written buffer. Used when resuming after a `pause()`. */\n this.writeIndex = 0;\n /** Indicates whether the parser has finished running / `.end` has been called. */\n this.ended = false;\n this.cbs = cbs !== null && cbs !== void 0 ? cbs : {};\n this.lowerCaseTagNames = (_a = options.lowerCaseTags) !== null && _a !== void 0 ? _a : !options.xmlMode;\n this.lowerCaseAttributeNames =\n (_b = options.lowerCaseAttributeNames) !== null && _b !== void 0 ? _b : !options.xmlMode;\n this.tokenizer = new ((_c = options.Tokenizer) !== null && _c !== void 0 ? _c : Tokenizer_js_1.default)(this.options, this);\n (_e = (_d = this.cbs).onparserinit) === null || _e === void 0 ? void 0 : _e.call(_d, this);\n }\n // Tokenizer event handlers\n /** @internal */\n Parser.prototype.ontext = function (start, endIndex) {\n var _a, _b;\n var data = this.getSlice(start, endIndex);\n this.endIndex = endIndex - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, data);\n this.startIndex = endIndex;\n };\n /** @internal */\n Parser.prototype.ontextentity = function (cp) {\n var _a, _b;\n /*\n * Entities can be emitted on the character, or directly after.\n * We use the section start here to get accurate indices.\n */\n var index = this.tokenizer.getSectionStart();\n this.endIndex = index - 1;\n (_b = (_a = this.cbs).ontext) === null || _b === void 0 ? void 0 : _b.call(_a, (0, decode_js_1.fromCodePoint)(cp));\n this.startIndex = index;\n };\n Parser.prototype.isVoidElement = function (name) {\n return !this.options.xmlMode && voidElements.has(name);\n };\n /** @internal */\n Parser.prototype.onopentagname = function (start, endIndex) {\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n this.emitOpenTag(name);\n };\n Parser.prototype.emitOpenTag = function (name) {\n var _a, _b, _c, _d;\n this.openTagStart = this.startIndex;\n this.tagname = name;\n var impliesClose = !this.options.xmlMode && openImpliesClose.get(name);\n if (impliesClose) {\n while (this.stack.length > 0 &&\n impliesClose.has(this.stack[this.stack.length - 1])) {\n var element = this.stack.pop();\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, element, true);\n }\n }\n if (!this.isVoidElement(name)) {\n this.stack.push(name);\n if (foreignContextElements.has(name)) {\n this.foreignContext.push(true);\n }\n else if (htmlIntegrationElements.has(name)) {\n this.foreignContext.push(false);\n }\n }\n (_d = (_c = this.cbs).onopentagname) === null || _d === void 0 ? void 0 : _d.call(_c, name);\n if (this.cbs.onopentag)\n this.attribs = {};\n };\n Parser.prototype.endOpenTag = function (isImplied) {\n var _a, _b;\n this.startIndex = this.openTagStart;\n if (this.attribs) {\n (_b = (_a = this.cbs).onopentag) === null || _b === void 0 ? void 0 : _b.call(_a, this.tagname, this.attribs, isImplied);\n this.attribs = null;\n }\n if (this.cbs.onclosetag && this.isVoidElement(this.tagname)) {\n this.cbs.onclosetag(this.tagname, true);\n }\n this.tagname = \"\";\n };\n /** @internal */\n Parser.prototype.onopentagend = function (endIndex) {\n this.endIndex = endIndex;\n this.endOpenTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onclosetag = function (start, endIndex) {\n var _a, _b, _c, _d, _e, _f;\n this.endIndex = endIndex;\n var name = this.getSlice(start, endIndex);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n if (foreignContextElements.has(name) ||\n htmlIntegrationElements.has(name)) {\n this.foreignContext.pop();\n }\n if (!this.isVoidElement(name)) {\n var pos = this.stack.lastIndexOf(name);\n if (pos !== -1) {\n if (this.cbs.onclosetag) {\n var count = this.stack.length - pos;\n while (count--) {\n // We know the stack has sufficient elements.\n this.cbs.onclosetag(this.stack.pop(), count !== 0);\n }\n }\n else\n this.stack.length = pos;\n }\n else if (!this.options.xmlMode && name === \"p\") {\n // Implicit open before close\n this.emitOpenTag(\"p\");\n this.closeCurrentTag(true);\n }\n }\n else if (!this.options.xmlMode && name === \"br\") {\n // We can't use `emitOpenTag` for implicit open, as `br` would be implicitly closed.\n (_b = (_a = this.cbs).onopentagname) === null || _b === void 0 ? void 0 : _b.call(_a, \"br\");\n (_d = (_c = this.cbs).onopentag) === null || _d === void 0 ? void 0 : _d.call(_c, \"br\", {}, true);\n (_f = (_e = this.cbs).onclosetag) === null || _f === void 0 ? void 0 : _f.call(_e, \"br\", false);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onselfclosingtag = function (endIndex) {\n this.endIndex = endIndex;\n if (this.options.xmlMode ||\n this.options.recognizeSelfClosing ||\n this.foreignContext[this.foreignContext.length - 1]) {\n this.closeCurrentTag(false);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n }\n else {\n // Ignore the fact that the tag is self-closing.\n this.onopentagend(endIndex);\n }\n };\n Parser.prototype.closeCurrentTag = function (isOpenImplied) {\n var _a, _b;\n var name = this.tagname;\n this.endOpenTag(isOpenImplied);\n // Self-closing tags will be on the top of the stack\n if (this.stack[this.stack.length - 1] === name) {\n // If the opening tag isn't implied, the closing tag has to be implied.\n (_b = (_a = this.cbs).onclosetag) === null || _b === void 0 ? void 0 : _b.call(_a, name, !isOpenImplied);\n this.stack.pop();\n }\n };\n /** @internal */\n Parser.prototype.onattribname = function (start, endIndex) {\n this.startIndex = start;\n var name = this.getSlice(start, endIndex);\n this.attribname = this.lowerCaseAttributeNames\n ? name.toLowerCase()\n : name;\n };\n /** @internal */\n Parser.prototype.onattribdata = function (start, endIndex) {\n this.attribvalue += this.getSlice(start, endIndex);\n };\n /** @internal */\n Parser.prototype.onattribentity = function (cp) {\n this.attribvalue += (0, decode_js_1.fromCodePoint)(cp);\n };\n /** @internal */\n Parser.prototype.onattribend = function (quote, endIndex) {\n var _a, _b;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).onattribute) === null || _b === void 0 ? void 0 : _b.call(_a, this.attribname, this.attribvalue, quote === Tokenizer_js_1.QuoteType.Double\n ? '\"'\n : quote === Tokenizer_js_1.QuoteType.Single\n ? \"'\"\n : quote === Tokenizer_js_1.QuoteType.NoValue\n ? undefined\n : null);\n if (this.attribs &&\n !Object.prototype.hasOwnProperty.call(this.attribs, this.attribname)) {\n this.attribs[this.attribname] = this.attribvalue;\n }\n this.attribvalue = \"\";\n };\n Parser.prototype.getInstructionName = function (value) {\n var index = value.search(reNameEnd);\n var name = index < 0 ? value : value.substr(0, index);\n if (this.lowerCaseTagNames) {\n name = name.toLowerCase();\n }\n return name;\n };\n /** @internal */\n Parser.prototype.ondeclaration = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"!\".concat(name), \"!\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onprocessinginstruction = function (start, endIndex) {\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex);\n if (this.cbs.onprocessinginstruction) {\n var name = this.getInstructionName(value);\n this.cbs.onprocessinginstruction(\"?\".concat(name), \"?\".concat(value));\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncomment = function (start, endIndex, offset) {\n var _a, _b, _c, _d;\n this.endIndex = endIndex;\n (_b = (_a = this.cbs).oncomment) === null || _b === void 0 ? void 0 : _b.call(_a, this.getSlice(start, endIndex - offset));\n (_d = (_c = this.cbs).oncommentend) === null || _d === void 0 ? void 0 : _d.call(_c);\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.oncdata = function (start, endIndex, offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n this.endIndex = endIndex;\n var value = this.getSlice(start, endIndex - offset);\n if (this.options.xmlMode || this.options.recognizeCDATA) {\n (_b = (_a = this.cbs).oncdatastart) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.cbs).ontext) === null || _d === void 0 ? void 0 : _d.call(_c, value);\n (_f = (_e = this.cbs).oncdataend) === null || _f === void 0 ? void 0 : _f.call(_e);\n }\n else {\n (_h = (_g = this.cbs).oncomment) === null || _h === void 0 ? void 0 : _h.call(_g, \"[CDATA[\".concat(value, \"]]\"));\n (_k = (_j = this.cbs).oncommentend) === null || _k === void 0 ? void 0 : _k.call(_j);\n }\n // Set `startIndex` for next node\n this.startIndex = endIndex + 1;\n };\n /** @internal */\n Parser.prototype.onend = function () {\n var _a, _b;\n if (this.cbs.onclosetag) {\n // Set the end index for all remaining tags\n this.endIndex = this.startIndex;\n for (var index = this.stack.length; index > 0; this.cbs.onclosetag(this.stack[--index], true))\n ;\n }\n (_b = (_a = this.cbs).onend) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n /**\n * Resets the parser to a blank state, ready to parse a new HTML document\n */\n Parser.prototype.reset = function () {\n var _a, _b, _c, _d;\n (_b = (_a = this.cbs).onreset) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.tokenizer.reset();\n this.tagname = \"\";\n this.attribname = \"\";\n this.attribs = null;\n this.stack.length = 0;\n this.startIndex = 0;\n this.endIndex = 0;\n (_d = (_c = this.cbs).onparserinit) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this.buffers.length = 0;\n this.bufferOffset = 0;\n this.writeIndex = 0;\n this.ended = false;\n };\n /**\n * Resets the parser, then parses a complete document and\n * pushes it to the handler.\n *\n * @param data Document to parse.\n */\n Parser.prototype.parseComplete = function (data) {\n this.reset();\n this.end(data);\n };\n Parser.prototype.getSlice = function (start, end) {\n while (start - this.bufferOffset >= this.buffers[0].length) {\n this.shiftBuffer();\n }\n var slice = this.buffers[0].slice(start - this.bufferOffset, end - this.bufferOffset);\n while (end - this.bufferOffset > this.buffers[0].length) {\n this.shiftBuffer();\n slice += this.buffers[0].slice(0, end - this.bufferOffset);\n }\n return slice;\n };\n Parser.prototype.shiftBuffer = function () {\n this.bufferOffset += this.buffers[0].length;\n this.writeIndex--;\n this.buffers.shift();\n };\n /**\n * Parses a chunk of data and calls the corresponding callbacks.\n *\n * @param chunk Chunk to parse.\n */\n Parser.prototype.write = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".write() after done!\"));\n return;\n }\n this.buffers.push(chunk);\n if (this.tokenizer.running) {\n this.tokenizer.write(chunk);\n this.writeIndex++;\n }\n };\n /**\n * Parses the end of the buffer and clears the stack, calls onend.\n *\n * @param chunk Optional final chunk to parse.\n */\n Parser.prototype.end = function (chunk) {\n var _a, _b;\n if (this.ended) {\n (_b = (_a = this.cbs).onerror) === null || _b === void 0 ? void 0 : _b.call(_a, new Error(\".end() after done!\"));\n return;\n }\n if (chunk)\n this.write(chunk);\n this.ended = true;\n this.tokenizer.end();\n };\n /**\n * Pauses parsing. The parser won't emit events until `resume` is called.\n */\n Parser.prototype.pause = function () {\n this.tokenizer.pause();\n };\n /**\n * Resumes parsing after `pause` was called.\n */\n Parser.prototype.resume = function () {\n this.tokenizer.resume();\n while (this.tokenizer.running &&\n this.writeIndex < this.buffers.length) {\n this.tokenizer.write(this.buffers[this.writeIndex++]);\n }\n if (this.ended)\n this.tokenizer.end();\n };\n /**\n * Alias of `write`, for backwards compatibility.\n *\n * @param chunk Chunk to parse.\n * @deprecated\n */\n Parser.prototype.parseChunk = function (chunk) {\n this.write(chunk);\n };\n /**\n * Alias of `end`, for backwards compatibility.\n *\n * @param chunk Optional final chunk to parse.\n * @deprecated\n */\n Parser.prototype.done = function (chunk) {\n this.end(chunk);\n };\n return Parser;\n}());\nexports.Parser = Parser;\n//# sourceMappingURL=Parser.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuoteType = void 0;\nvar decode_js_1 = require(\"entities/lib/decode.js\");\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"Tab\"] = 9] = \"Tab\";\n CharCodes[CharCodes[\"NewLine\"] = 10] = \"NewLine\";\n CharCodes[CharCodes[\"FormFeed\"] = 12] = \"FormFeed\";\n CharCodes[CharCodes[\"CarriageReturn\"] = 13] = \"CarriageReturn\";\n CharCodes[CharCodes[\"Space\"] = 32] = \"Space\";\n CharCodes[CharCodes[\"ExclamationMark\"] = 33] = \"ExclamationMark\";\n CharCodes[CharCodes[\"Number\"] = 35] = \"Number\";\n CharCodes[CharCodes[\"Amp\"] = 38] = \"Amp\";\n CharCodes[CharCodes[\"SingleQuote\"] = 39] = \"SingleQuote\";\n CharCodes[CharCodes[\"DoubleQuote\"] = 34] = \"DoubleQuote\";\n CharCodes[CharCodes[\"Dash\"] = 45] = \"Dash\";\n CharCodes[CharCodes[\"Slash\"] = 47] = \"Slash\";\n CharCodes[CharCodes[\"Zero\"] = 48] = \"Zero\";\n CharCodes[CharCodes[\"Nine\"] = 57] = \"Nine\";\n CharCodes[CharCodes[\"Semi\"] = 59] = \"Semi\";\n CharCodes[CharCodes[\"Lt\"] = 60] = \"Lt\";\n CharCodes[CharCodes[\"Eq\"] = 61] = \"Eq\";\n CharCodes[CharCodes[\"Gt\"] = 62] = \"Gt\";\n CharCodes[CharCodes[\"Questionmark\"] = 63] = \"Questionmark\";\n CharCodes[CharCodes[\"UpperA\"] = 65] = \"UpperA\";\n CharCodes[CharCodes[\"LowerA\"] = 97] = \"LowerA\";\n CharCodes[CharCodes[\"UpperF\"] = 70] = \"UpperF\";\n CharCodes[CharCodes[\"LowerF\"] = 102] = \"LowerF\";\n CharCodes[CharCodes[\"UpperZ\"] = 90] = \"UpperZ\";\n CharCodes[CharCodes[\"LowerZ\"] = 122] = \"LowerZ\";\n CharCodes[CharCodes[\"LowerX\"] = 120] = \"LowerX\";\n CharCodes[CharCodes[\"OpeningSquareBracket\"] = 91] = \"OpeningSquareBracket\";\n})(CharCodes || (CharCodes = {}));\n/** All the states the tokenizer can be in. */\nvar State;\n(function (State) {\n State[State[\"Text\"] = 1] = \"Text\";\n State[State[\"BeforeTagName\"] = 2] = \"BeforeTagName\";\n State[State[\"InTagName\"] = 3] = \"InTagName\";\n State[State[\"InSelfClosingTag\"] = 4] = \"InSelfClosingTag\";\n State[State[\"BeforeClosingTagName\"] = 5] = \"BeforeClosingTagName\";\n State[State[\"InClosingTagName\"] = 6] = \"InClosingTagName\";\n State[State[\"AfterClosingTagName\"] = 7] = \"AfterClosingTagName\";\n // Attributes\n State[State[\"BeforeAttributeName\"] = 8] = \"BeforeAttributeName\";\n State[State[\"InAttributeName\"] = 9] = \"InAttributeName\";\n State[State[\"AfterAttributeName\"] = 10] = \"AfterAttributeName\";\n State[State[\"BeforeAttributeValue\"] = 11] = \"BeforeAttributeValue\";\n State[State[\"InAttributeValueDq\"] = 12] = \"InAttributeValueDq\";\n State[State[\"InAttributeValueSq\"] = 13] = \"InAttributeValueSq\";\n State[State[\"InAttributeValueNq\"] = 14] = \"InAttributeValueNq\";\n // Declarations\n State[State[\"BeforeDeclaration\"] = 15] = \"BeforeDeclaration\";\n State[State[\"InDeclaration\"] = 16] = \"InDeclaration\";\n // Processing instructions\n State[State[\"InProcessingInstruction\"] = 17] = \"InProcessingInstruction\";\n // Comments & CDATA\n State[State[\"BeforeComment\"] = 18] = \"BeforeComment\";\n State[State[\"CDATASequence\"] = 19] = \"CDATASequence\";\n State[State[\"InSpecialComment\"] = 20] = \"InSpecialComment\";\n State[State[\"InCommentLike\"] = 21] = \"InCommentLike\";\n // Special tags\n State[State[\"BeforeSpecialS\"] = 22] = \"BeforeSpecialS\";\n State[State[\"SpecialStartSequence\"] = 23] = \"SpecialStartSequence\";\n State[State[\"InSpecialTag\"] = 24] = \"InSpecialTag\";\n State[State[\"BeforeEntity\"] = 25] = \"BeforeEntity\";\n State[State[\"BeforeNumericEntity\"] = 26] = \"BeforeNumericEntity\";\n State[State[\"InNamedEntity\"] = 27] = \"InNamedEntity\";\n State[State[\"InNumericEntity\"] = 28] = \"InNumericEntity\";\n State[State[\"InHexEntity\"] = 29] = \"InHexEntity\";\n})(State || (State = {}));\nfunction isWhitespace(c) {\n return (c === CharCodes.Space ||\n c === CharCodes.NewLine ||\n c === CharCodes.Tab ||\n c === CharCodes.FormFeed ||\n c === CharCodes.CarriageReturn);\n}\nfunction isEndOfTagSection(c) {\n return c === CharCodes.Slash || c === CharCodes.Gt || isWhitespace(c);\n}\nfunction isNumber(c) {\n return c >= CharCodes.Zero && c <= CharCodes.Nine;\n}\nfunction isASCIIAlpha(c) {\n return ((c >= CharCodes.LowerA && c <= CharCodes.LowerZ) ||\n (c >= CharCodes.UpperA && c <= CharCodes.UpperZ));\n}\nfunction isHexDigit(c) {\n return ((c >= CharCodes.UpperA && c <= CharCodes.UpperF) ||\n (c >= CharCodes.LowerA && c <= CharCodes.LowerF));\n}\nvar QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"NoValue\"] = 0] = \"NoValue\";\n QuoteType[QuoteType[\"Unquoted\"] = 1] = \"Unquoted\";\n QuoteType[QuoteType[\"Single\"] = 2] = \"Single\";\n QuoteType[QuoteType[\"Double\"] = 3] = \"Double\";\n})(QuoteType = exports.QuoteType || (exports.QuoteType = {}));\n/**\n * Sequences used to match longer strings.\n *\n * We don't have `Script`, `Style`, or `Title` here. Instead, we re-use the *End\n * sequences with an increased offset.\n */\nvar Sequences = {\n Cdata: new Uint8Array([0x43, 0x44, 0x41, 0x54, 0x41, 0x5b]),\n CdataEnd: new Uint8Array([0x5d, 0x5d, 0x3e]),\n CommentEnd: new Uint8Array([0x2d, 0x2d, 0x3e]),\n ScriptEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74]),\n StyleEnd: new Uint8Array([0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65]),\n TitleEnd: new Uint8Array([0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65]), // `</title`\n};\nvar Tokenizer = /** @class */ (function () {\n function Tokenizer(_a, cbs) {\n var _b = _a.xmlMode, xmlMode = _b === void 0 ? false : _b, _c = _a.decodeEntities, decodeEntities = _c === void 0 ? true : _c;\n this.cbs = cbs;\n /** The current state the tokenizer is in. */\n this.state = State.Text;\n /** The read buffer. */\n this.buffer = \"\";\n /** The beginning of the section that is currently being read. */\n this.sectionStart = 0;\n /** The index within the buffer that we are currently looking at. */\n this.index = 0;\n /** Some behavior, eg. when decoding entities, is done while we are in another state. This keeps track of the other state type. */\n this.baseState = State.Text;\n /** For special parsing behavior inside of script and style tags. */\n this.isSpecial = false;\n /** Indicates whether the tokenizer has been paused. */\n this.running = true;\n /** The offset of the current buffer. */\n this.offset = 0;\n this.currentSequence = undefined;\n this.sequenceIndex = 0;\n this.trieIndex = 0;\n this.trieCurrent = 0;\n /** For named entities, the index of the value. For numeric entities, the code point. */\n this.entityResult = 0;\n this.entityExcess = 0;\n this.xmlMode = xmlMode;\n this.decodeEntities = decodeEntities;\n this.entityTrie = xmlMode ? decode_js_1.xmlDecodeTree : decode_js_1.htmlDecodeTree;\n }\n Tokenizer.prototype.reset = function () {\n this.state = State.Text;\n this.buffer = \"\";\n this.sectionStart = 0;\n this.index = 0;\n this.baseState = State.Text;\n this.currentSequence = undefined;\n this.running = true;\n this.offset = 0;\n };\n Tokenizer.prototype.write = function (chunk) {\n this.offset += this.buffer.length;\n this.buffer = chunk;\n this.parse();\n };\n Tokenizer.prototype.end = function () {\n if (this.running)\n this.finish();\n };\n Tokenizer.prototype.pause = function () {\n this.running = false;\n };\n Tokenizer.prototype.resume = function () {\n this.running = true;\n if (this.index < this.buffer.length + this.offset) {\n this.parse();\n }\n };\n /**\n * The current index within all of the written data.\n */\n Tokenizer.prototype.getIndex = function () {\n return this.index;\n };\n /**\n * The start of the current section.\n */\n Tokenizer.prototype.getSectionStart = function () {\n return this.sectionStart;\n };\n Tokenizer.prototype.stateText = function (c) {\n if (c === CharCodes.Lt ||\n (!this.decodeEntities && this.fastForwardTo(CharCodes.Lt))) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = State.BeforeTagName;\n this.sectionStart = this.index;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateSpecialStartSequence = function (c) {\n var isEnd = this.sequenceIndex === this.currentSequence.length;\n var isMatch = isEnd\n ? // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n : // Otherwise, do a case-insensitive comparison\n (c | 0x20) === this.currentSequence[this.sequenceIndex];\n if (!isMatch) {\n this.isSpecial = false;\n }\n else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = State.InTagName;\n this.stateInTagName(c);\n };\n /** Look for an end tag. For <title> tags, also decode entities. */\n Tokenizer.prototype.stateInSpecialTag = function (c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n var endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n // Spoof the index so that reported locations match up.\n var actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.isSpecial = false;\n this.sectionStart = endOfText + 2; // Skip over the `</`\n this.stateInClosingTagName(c);\n return; // We are done; skip the rest of the function.\n }\n this.sequenceIndex = 0;\n }\n if ((c | 0x20) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n }\n else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd) {\n // We have to parse entities in <title> tags.\n if (this.decodeEntities && c === CharCodes.Amp) {\n this.state = State.BeforeEntity;\n }\n }\n else if (this.fastForwardTo(CharCodes.Lt)) {\n // Outside of <title> tags, we can fast-forward.\n this.sequenceIndex = 1;\n }\n }\n else {\n // If we see a `<`, set the sequence index to 1; useful for eg. `<</script>`.\n this.sequenceIndex = Number(c === CharCodes.Lt);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this.state = State.InDeclaration;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this.index < this.buffer.length + this.offset) {\n if (this.buffer.charCodeAt(this.index - this.offset) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this.index = this.buffer.length + this.offset - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index, 2);\n }\n else {\n this.cbs.oncomment(this.sectionStart, this.index, 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = State.Text;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this.state = State.SpecialStartSequence;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === CharCodes.ExclamationMark) {\n this.state = State.BeforeDeclaration;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Questionmark) {\n this.state = State.InProcessingInstruction;\n this.sectionStart = this.index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this.index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this.state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? State.BeforeSpecialS\n : State.InTagName;\n }\n }\n else if (c === CharCodes.Slash) {\n this.state = State.BeforeClosingTagName;\n }\n else {\n this.state = State.Text;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === CharCodes.Gt) {\n this.state = State.Text;\n }\n else {\n this.state = this.isTagStartChar(c)\n ? State.InClosingTagName\n : State.InSpecialComment;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === CharCodes.Gt || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterClosingTagName;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onopentagend(this.index);\n if (this.isSpecial) {\n this.state = State.InSpecialTag;\n this.sequenceIndex = 0;\n }\n else {\n this.state = State.Text;\n }\n this.baseState = this.state;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.Slash) {\n this.state = State.InSelfClosingTag;\n }\n else if (!isWhitespace(c)) {\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === CharCodes.Gt) {\n this.cbs.onselfclosingtag(this.index);\n this.state = State.Text;\n this.baseState = State.Text;\n this.sectionStart = this.index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === CharCodes.Eq || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = State.AfterAttributeName;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === CharCodes.Eq) {\n this.state = State.BeforeAttributeValue;\n }\n else if (c === CharCodes.Slash || c === CharCodes.Gt) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(QuoteType.NoValue, this.index);\n this.state = State.InAttributeName;\n this.sectionStart = this.index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === CharCodes.DoubleQuote) {\n this.state = State.InAttributeValueDq;\n this.sectionStart = this.index + 1;\n }\n else if (c === CharCodes.SingleQuote) {\n this.state = State.InAttributeValueSq;\n this.sectionStart = this.index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = State.InAttributeValueNq;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(quote === CharCodes.DoubleQuote\n ? QuoteType.Double\n : QuoteType.Single, this.index);\n this.state = State.BeforeAttributeName;\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.DoubleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, CharCodes.SingleQuote);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === CharCodes.Gt) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(QuoteType.Unquoted, this.index);\n this.state = State.BeforeAttributeName;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === CharCodes.Amp) {\n this.baseState = this.state;\n this.state = State.BeforeEntity;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === CharCodes.OpeningSquareBracket) {\n this.state = State.CDATASequence;\n this.sequenceIndex = 0;\n }\n else {\n this.state =\n c === CharCodes.Dash\n ? State.BeforeComment\n : State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.ondeclaration(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === CharCodes.Dash) {\n this.state = State.InCommentLike;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. <!-->)\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n }\n else {\n this.state = State.InDeclaration;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === CharCodes.Gt || this.fastForwardTo(CharCodes.Gt)) {\n this.cbs.oncomment(this.sectionStart, this.index, 0);\n this.state = State.Text;\n this.sectionStart = this.index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this.state = State.InTagName;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n this.entityResult = 0;\n if (c === CharCodes.Number) {\n this.state = State.BeforeNumericEntity;\n }\n else if (c === CharCodes.Amp) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.state = State.InNamedEntity;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_js_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this.index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n var masked = this.trieCurrent & decode_js_1.BinTrieFlags.VALUE_LENGTH;\n // If the branch is a value, store it and continue\n if (masked) {\n // The mask is the number of bytes of the value, including the current byte.\n var valueLength = (masked >> 14) - 1;\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== CharCodes.Semi) {\n this.trieIndex += valueLength;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this.index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n // If this is a surrogate pair, consume the next two bytes\n this.entityResult = this.trieIndex;\n this.trieIndex += valueLength;\n this.entityExcess = 0;\n this.sectionStart = this.index + 1;\n if (valueLength === 0) {\n this.emitNamedEntity();\n }\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n this.state = this.baseState;\n if (this.entityResult === 0) {\n return;\n }\n var valueLength = (this.entityTrie[this.entityResult] & decode_js_1.BinTrieFlags.VALUE_LENGTH) >>\n 14;\n switch (valueLength) {\n case 1: {\n this.emitCodePoint(this.entityTrie[this.entityResult] &\n ~decode_js_1.BinTrieFlags.VALUE_LENGTH);\n break;\n }\n case 2: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n break;\n }\n case 3: {\n this.emitCodePoint(this.entityTrie[this.entityResult + 1]);\n this.emitCodePoint(this.entityTrie[this.entityResult + 2]);\n }\n }\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === CharCodes.LowerX) {\n this.entityExcess++;\n this.state = State.InHexEntity;\n }\n else {\n this.state = State.InNumericEntity;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.emitNumericEntity = function (strict) {\n var entityStart = this.index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + Number(this.state === State.InHexEntity);\n if (numberStart !== this.index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.sectionStart, entityStart);\n }\n this.sectionStart = this.index + Number(strict);\n this.emitCodePoint((0, decode_js_1.replaceCodePoint)(this.entityResult));\n }\n this.state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 10 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === CharCodes.Semi) {\n this.emitNumericEntity(true);\n }\n else if (isNumber(c)) {\n this.entityResult = this.entityResult * 16 + (c - CharCodes.Zero);\n this.entityExcess++;\n }\n else if (isHexDigit(c)) {\n this.entityResult =\n this.entityResult * 16 + ((c | 0x20) - CharCodes.LowerA + 10);\n this.entityExcess++;\n }\n else {\n if (this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n }\n else {\n this.state = this.baseState;\n }\n this.index--;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === State.Text ||\n this.baseState === State.InSpecialTag));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text or attributes, emit what we already have.\n if (this.running && this.sectionStart !== this.index) {\n if (this.state === State.Text ||\n (this.state === State.InSpecialTag && this.sequenceIndex === 0)) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n else if (this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueNq) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this.index < this.buffer.length + this.offset && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this.index - this.offset);\n switch (this.state) {\n case State.Text: {\n this.stateText(c);\n break;\n }\n case State.SpecialStartSequence: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case State.InSpecialTag: {\n this.stateInSpecialTag(c);\n break;\n }\n case State.CDATASequence: {\n this.stateCDATASequence(c);\n break;\n }\n case State.InAttributeValueDq: {\n this.stateInAttributeValueDoubleQuotes(c);\n break;\n }\n case State.InAttributeName: {\n this.stateInAttributeName(c);\n break;\n }\n case State.InCommentLike: {\n this.stateInCommentLike(c);\n break;\n }\n case State.InSpecialComment: {\n this.stateInSpecialComment(c);\n break;\n }\n case State.BeforeAttributeName: {\n this.stateBeforeAttributeName(c);\n break;\n }\n case State.InTagName: {\n this.stateInTagName(c);\n break;\n }\n case State.InClosingTagName: {\n this.stateInClosingTagName(c);\n break;\n }\n case State.BeforeTagName: {\n this.stateBeforeTagName(c);\n break;\n }\n case State.AfterAttributeName: {\n this.stateAfterAttributeName(c);\n break;\n }\n case State.InAttributeValueSq: {\n this.stateInAttributeValueSingleQuotes(c);\n break;\n }\n case State.BeforeAttributeValue: {\n this.stateBeforeAttributeValue(c);\n break;\n }\n case State.BeforeClosingTagName: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case State.AfterClosingTagName: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case State.BeforeSpecialS: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case State.InAttributeValueNq: {\n this.stateInAttributeValueNoQuotes(c);\n break;\n }\n case State.InSelfClosingTag: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case State.InDeclaration: {\n this.stateInDeclaration(c);\n break;\n }\n case State.BeforeDeclaration: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case State.BeforeComment: {\n this.stateBeforeComment(c);\n break;\n }\n case State.InProcessingInstruction: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case State.InNamedEntity: {\n this.stateInNamedEntity(c);\n break;\n }\n case State.BeforeEntity: {\n this.stateBeforeEntity(c);\n break;\n }\n case State.InHexEntity: {\n this.stateInHexEntity(c);\n break;\n }\n case State.InNumericEntity: {\n this.stateInNumericEntity(c);\n break;\n }\n default: {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n }\n this.index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this.state === State.InNamedEntity) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this.index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var endIndex = this.buffer.length + this.offset;\n if (this.state === State.InCommentLike) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex, 0);\n }\n else {\n this.cbs.oncomment(this.sectionStart, endIndex, 0);\n }\n }\n else if (this.state === State.InNumericEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InHexEntity &&\n this.allowLegacyEntity()) {\n this.emitNumericEntity(false);\n // All trailing data will have been consumed\n }\n else if (this.state === State.InTagName ||\n this.state === State.BeforeAttributeName ||\n this.state === State.BeforeAttributeValue ||\n this.state === State.AfterAttributeName ||\n this.state === State.InAttributeName ||\n this.state === State.InAttributeValueSq ||\n this.state === State.InAttributeValueDq ||\n this.state === State.InAttributeValueNq ||\n this.state === State.InClosingTagName) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n };\n Tokenizer.prototype.emitPartial = function (start, endIndex) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribdata(start, endIndex);\n }\n else {\n this.cbs.ontext(start, endIndex);\n }\n };\n Tokenizer.prototype.emitCodePoint = function (cp) {\n if (this.baseState !== State.Text &&\n this.baseState !== State.InSpecialTag) {\n this.cbs.onattribentity(cp);\n }\n else {\n this.cbs.ontextentity(cp);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n//# sourceMappingURL=Tokenizer.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\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 (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomUtils = exports.parseFeed = exports.getFeed = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DefaultHandler = exports.DomHandler = exports.Parser = void 0;\nvar Parser_js_1 = require(\"./Parser.js\");\nvar Parser_js_2 = require(\"./Parser.js\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_js_2.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nvar domhandler_2 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Old name for DomHandler\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_2.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_js_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param callback A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCallback An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(callback, options, elementCallback) {\n var handler = new domhandler_1.DomHandler(callback, options, elementCallback);\n return new Parser_js_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_js_1 = require(\"./Tokenizer.js\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_js_1).default; } });\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\nexports.ElementType = __importStar(require(\"domelementtype\"));\nvar domutils_1 = require(\"domutils\");\nvar domutils_2 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_2.getFeed; } });\nvar parseFeedDefaultOptions = { xmlMode: true };\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = parseFeedDefaultOptions; }\n return (0, domutils_1.getFeed)(parseDOM(feed, options));\n}\nexports.parseFeed = parseFeed;\nexports.DomUtils = __importStar(require(\"domutils\"));\n//# sourceMappingURL=index.js.map","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexports.isPlainObject = isPlainObject;\n","/**\n * Srcset Parser\n *\n * By Alex Bell | MIT License\n *\n * JS Parser for the string value that appears in markup <img srcset=\"here\">\n *\n * @returns Array [{url: _, d: _, w: _, h:_}, ...]\n *\n * Based super duper closely on the reference algorithm at:\n * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n *\n * Most comments are copied in directly from the spec\n * (except for comments in parens).\n */\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof module === 'object' && module.exports) {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.parseSrcset = factory();\n\t}\n}(this, function () {\n\n\t// 1. Let input be the value passed to this algorithm.\n\treturn function (input) {\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// Manual is faster than RegEx\n\t\t// http://bjorn.tipling.com/state-and-regular-expressions-in-javascript\n\t\t// http://jsperf.com/whitespace-character/5\n\t\tfunction isSpace(c) {\n\t\t\treturn (c === \"\\u0020\" || // space\n\t\t\tc === \"\\u0009\" || // horizontal tab\n\t\t\tc === \"\\u000A\" || // new line\n\t\t\tc === \"\\u000C\" || // form feed\n\t\t\tc === \"\\u000D\"); // carriage return\n\t\t}\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t\tmatch = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\n\t\t\t// (Don't use \\s, to avoid matching non-breaking space)\n\t\t\tregexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t\t\tregexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t\t\tregexTrailingCommas = /[,]+$/,\n\t\t\tregexNonNegativeInteger = /^\\d+$/,\n\n\t\t\t// ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t\t\t// Must include at least one digit.\n\t\t\t// According to spec tests any decimal point must be followed by a digit.\n\t\t\t// No leading plus sign is allowed.)\n\t\t\t// https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t\t\tregexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,\n\n\t\t\turl,\n\t\t\tdescriptors,\n\t\t\tcurrentDescriptor,\n\t\t\tstate,\n\t\t\tc,\n\n\t\t\t// 2. Let position be a pointer into input, initially pointing at the start\n\t\t\t// of the string.\n\t\t\tpos = 0,\n\n\t\t\t// 3. Let candidates be an initially empty source set.\n\t\t\tcandidates = [];\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\n\t\t/**\n\t\t * Tokenizes descriptor properties prior to parsing\n\t\t * Returns undefined.\n\t\t */\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t\t// Space character\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors and let current descriptor be the empty string.\n\t\t\t\t\t// Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t\t// EOF\n\t\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t// Anything else\n\t\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t/**\n\t\t * Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t * @return undefined\n\t\t */\n\t\t// Declared outside of the while loop so that it's only created once.\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t\t// 10. Let width be absent.\n\t\t\t\t// 11. Let density be absent.\n\t\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t\tw, d, h, i,\n\t\t\t\tcandidate = {},\n\t\t\t\tdesc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tcandidates.push(candidate);\n\t\t\t} else if (console && console.log) {\n\t\t\t\tconsole.log(\"Invalid srcset descriptor found in '\" +\n\t\t\t\t\tinput + \"' at '\" + desc + \"'.\");\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t}\n}));\n","var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n","const htmlparser = require('htmlparser2');\nconst escapeStringRegexp = require('escape-string-regexp');\nconst { isPlainObject } = require('is-plain-object');\nconst deepmerge = require('deepmerge');\nconst parseSrcset = require('parse-srcset');\nconst { parse: postcssParse } = require('postcss');\n// Tags that can conceivably represent stand-alone media.\nconst mediaTags = [\n 'img', 'audio', 'video', 'picture', 'svg',\n 'object', 'map', 'iframe', 'embed'\n];\n// Tags that are inherently vulnerable to being used in XSS attacks.\nconst vulnerableTags = [ 'script', 'style' ];\n\nfunction each(obj, cb) {\n if (obj) {\n Object.keys(obj).forEach(function (key) {\n cb(obj[key], key);\n });\n }\n}\n\n// Avoid false positives with .__proto__, .hasOwnProperty, etc.\nfunction has(obj, key) {\n return ({}).hasOwnProperty.call(obj, key);\n}\n\n// Returns those elements of `a` for which `cb(a)` returns truthy\nfunction filter(a, cb) {\n const n = [];\n each(a, function(v) {\n if (cb(v)) {\n n.push(v);\n }\n });\n return n;\n}\n\nfunction isEmptyObject(obj) {\n for (const key in obj) {\n if (has(obj, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction stringifySrcset(parsedSrcset) {\n return parsedSrcset.map(function(part) {\n if (!part.url) {\n throw new Error('URL missing');\n }\n\n return (\n part.url +\n (part.w ? ` ${part.w}w` : '') +\n (part.h ? ` ${part.h}h` : '') +\n (part.d ? ` ${part.d}x` : '')\n );\n }).join(', ');\n}\n\nmodule.exports = sanitizeHtml;\n\n// A valid attribute name.\n// We use a tolerant definition based on the set of strings defined by\n// html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state\n// and html.spec.whatwg.org/multipage/parsing.html#attribute-name-state .\n// The characters accepted are ones which can be appended to the attribute\n// name buffer without triggering a parse error:\n// * unexpected-equals-sign-before-attribute-name\n// * unexpected-null-character\n// * unexpected-character-in-attribute-name\n// We exclude the empty string because it's impossible to get to the after\n// attribute name state with an empty attribute name buffer.\nconst VALID_HTML_ATTRIBUTE_NAME = /^[^\\0\\t\\n\\f\\r /<=>]+$/;\n\n// Ignore the _recursing flag; it's there for recursive\n// invocation as a guard against this exploit:\n// https://github.com/fb55/htmlparser2/issues/105\n\nfunction sanitizeHtml(html, options, _recursing) {\n if (html == null) {\n return '';\n }\n if (typeof html === 'number') {\n html = html.toString();\n }\n\n let result = '';\n // Used for hot swapping the result variable with an empty string in order to \"capture\" the text written to it.\n let tempResult = '';\n\n function Frame(tag, attribs) {\n const that = this;\n this.tag = tag;\n this.attribs = attribs || {};\n this.tagPosition = result.length;\n this.text = ''; // Node inner text\n this.mediaChildren = [];\n\n this.updateParentNodeText = function() {\n if (stack.length) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.text += that.text;\n }\n };\n\n this.updateParentNodeMediaChildren = function() {\n if (stack.length && mediaTags.includes(this.tag)) {\n const parentFrame = stack[stack.length - 1];\n parentFrame.mediaChildren.push(this.tag);\n }\n };\n }\n\n options = Object.assign({}, sanitizeHtml.defaults, options);\n options.parser = Object.assign({}, htmlParserDefaults, options.parser);\n\n const tagAllowed = function (name) {\n return options.allowedTags === false || (options.allowedTags || []).indexOf(name) > -1;\n };\n\n // vulnerableTags\n vulnerableTags.forEach(function (tag) {\n if (tagAllowed(tag) && !options.allowVulnerableTags) {\n console.warn(`\\n\\n⚠️ Your \\`allowedTags\\` option includes, \\`${tag}\\`, which is inherently\\nvulnerable to XSS attacks. Please remove it from \\`allowedTags\\`.\\nOr, to disable this warning, add the \\`allowVulnerableTags\\` option\\nand ensure you are accounting for this risk.\\n\\n`);\n }\n });\n\n // Tags that contain something other than HTML, or where discarding\n // the text when the tag is disallowed makes sense for other reasons.\n // If we are not allowing these tags, we should drop their content too.\n // For other tags you would drop the tag but keep its content.\n const nonTextTagsArray = options.nonTextTags || [\n 'script',\n 'style',\n 'textarea',\n 'option'\n ];\n let allowedAttributesMap;\n let allowedAttributesGlobMap;\n if (options.allowedAttributes) {\n allowedAttributesMap = {};\n allowedAttributesGlobMap = {};\n each(options.allowedAttributes, function(attributes, tag) {\n allowedAttributesMap[tag] = [];\n const globRegex = [];\n attributes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else {\n allowedAttributesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedAttributesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n });\n }\n const allowedClassesMap = {};\n const allowedClassesGlobMap = {};\n const allowedClassesRegexMap = {};\n each(options.allowedClasses, function(classes, tag) {\n // Implicitly allows the class attribute\n if (allowedAttributesMap) {\n if (!has(allowedAttributesMap, tag)) {\n allowedAttributesMap[tag] = [];\n }\n allowedAttributesMap[tag].push('class');\n }\n\n allowedClassesMap[tag] = classes;\n\n if (Array.isArray(classes)) {\n const globRegex = [];\n allowedClassesMap[tag] = [];\n allowedClassesRegexMap[tag] = [];\n classes.forEach(function(obj) {\n if (typeof obj === 'string' && obj.indexOf('*') >= 0) {\n globRegex.push(escapeStringRegexp(obj).replace(/\\\\\\*/g, '.*'));\n } else if (obj instanceof RegExp) {\n allowedClassesRegexMap[tag].push(obj);\n } else {\n allowedClassesMap[tag].push(obj);\n }\n });\n if (globRegex.length) {\n allowedClassesGlobMap[tag] = new RegExp('^(' + globRegex.join('|') + ')$');\n }\n }\n });\n\n const transformTagsMap = {};\n let transformTagsAll;\n each(options.transformTags, function(transform, tag) {\n let transFun;\n if (typeof transform === 'function') {\n transFun = transform;\n } else if (typeof transform === 'string') {\n transFun = sanitizeHtml.simpleTransform(transform);\n }\n if (tag === '*') {\n transformTagsAll = transFun;\n } else {\n transformTagsMap[tag] = transFun;\n }\n });\n\n let depth;\n let stack;\n let skipMap;\n let transformMap;\n let skipText;\n let skipTextDepth;\n let addedText = false;\n\n initializeState();\n\n const parser = new htmlparser.Parser({\n onopentag: function(name, attribs) {\n // If `enforceHtmlBoundary` is `true` and this has found the opening\n // `html` tag, reset the state.\n if (options.enforceHtmlBoundary && name === 'html') {\n initializeState();\n }\n\n if (skipText) {\n skipTextDepth++;\n return;\n }\n const frame = new Frame(name, attribs);\n stack.push(frame);\n\n let skip = false;\n const hasText = !!frame.text;\n let transformedTag;\n if (has(transformTagsMap, name)) {\n transformedTag = transformTagsMap[name](name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n\n if (transformedTag.text !== undefined) {\n frame.innerText = transformedTag.text;\n }\n\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n if (transformTagsAll) {\n transformedTag = transformTagsAll(name, attribs);\n\n frame.attribs = attribs = transformedTag.attribs;\n if (name !== transformedTag.tagName) {\n frame.name = name = transformedTag.tagName;\n transformMap[depth] = transformedTag.tagName;\n }\n }\n\n if (!tagAllowed(name) || (options.disallowedTagsMode === 'recursiveEscape' && !isEmptyObject(skipMap)) || (options.nestingLimit != null && depth >= options.nestingLimit)) {\n skip = true;\n skipMap[depth] = true;\n if (options.disallowedTagsMode === 'discard') {\n if (nonTextTagsArray.indexOf(name) !== -1) {\n skipText = true;\n skipTextDepth = 1;\n }\n }\n skipMap[depth] = true;\n }\n depth++;\n if (skip) {\n if (options.disallowedTagsMode === 'discard') {\n // We want the contents but not this tag\n return;\n }\n tempResult = result;\n result = '';\n }\n result += '<' + name;\n\n if (name === 'script') {\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n frame.innerText = '';\n }\n }\n\n if (!allowedAttributesMap || has(allowedAttributesMap, name) || allowedAttributesMap['*']) {\n each(attribs, function(value, a) {\n if (!VALID_HTML_ATTRIBUTE_NAME.test(a)) {\n // This prevents part of an attribute name in the output from being\n // interpreted as the end of an attribute, or end of a tag.\n delete frame.attribs[a];\n return;\n }\n // If the value is empty, and this is a known non-boolean attribute, delete it\n // List taken from https://html.spec.whatwg.org/multipage/indices.html#attributes-3\n if (value === '' && (options.nonBooleanAttributes.includes(a) || options.nonBooleanAttributes.includes('*'))) {\n delete frame.attribs[a];\n return;\n }\n // check allowedAttributesMap for the element and attribute and modify the value\n // as necessary if there are specific values defined.\n let passedAllowedAttributesMapCheck = false;\n if (!allowedAttributesMap ||\n (has(allowedAttributesMap, name) && allowedAttributesMap[name].indexOf(a) !== -1) ||\n (allowedAttributesMap['*'] && allowedAttributesMap['*'].indexOf(a) !== -1) ||\n (has(allowedAttributesGlobMap, name) && allowedAttributesGlobMap[name].test(a)) ||\n (allowedAttributesGlobMap['*'] && allowedAttributesGlobMap['*'].test(a))) {\n passedAllowedAttributesMapCheck = true;\n } else if (allowedAttributesMap && allowedAttributesMap[name]) {\n for (const o of allowedAttributesMap[name]) {\n if (isPlainObject(o) && o.name && (o.name === a)) {\n passedAllowedAttributesMapCheck = true;\n let newValue = '';\n if (o.multiple === true) {\n // verify the values that are allowed\n const splitStrArray = value.split(' ');\n for (const s of splitStrArray) {\n if (o.values.indexOf(s) !== -1) {\n if (newValue === '') {\n newValue = s;\n } else {\n newValue += ' ' + s;\n }\n }\n }\n } else if (o.values.indexOf(value) >= 0) {\n // verified an allowed value matches the entire attribute value\n newValue = value;\n }\n value = newValue;\n }\n }\n }\n if (passedAllowedAttributesMapCheck) {\n if (options.allowedSchemesAppliedToAttributes.indexOf(a) !== -1) {\n if (naughtyHref(name, value)) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'script' && a === 'src') {\n\n let allowed = true;\n\n try {\n const parsed = parseUrl(value);\n\n if (options.allowedScriptHostnames || options.allowedScriptDomains) {\n const allowedHostname = (options.allowedScriptHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedScriptDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n allowed = false;\n }\n\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n\n if (name === 'iframe' && a === 'src') {\n let allowed = true;\n try {\n const parsed = parseUrl(value);\n\n if (parsed.isRelativeUrl) {\n // default value of allowIframeRelativeUrls is true\n // unless allowedIframeHostnames or allowedIframeDomains specified\n allowed = has(options, 'allowIframeRelativeUrls')\n ? options.allowIframeRelativeUrls\n : (!options.allowedIframeHostnames && !options.allowedIframeDomains);\n } else if (options.allowedIframeHostnames || options.allowedIframeDomains) {\n const allowedHostname = (options.allowedIframeHostnames || []).find(function (hostname) {\n return hostname === parsed.url.hostname;\n });\n const allowedDomain = (options.allowedIframeDomains || []).find(function(domain) {\n return parsed.url.hostname === domain || parsed.url.hostname.endsWith(`.${domain}`);\n });\n allowed = allowedHostname || allowedDomain;\n }\n } catch (e) {\n // Unparseable iframe src\n allowed = false;\n }\n if (!allowed) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'srcset') {\n try {\n let parsed = parseSrcset(value);\n parsed.forEach(function(value) {\n if (naughtyHref('srcset', value.url)) {\n value.evil = true;\n }\n });\n parsed = filter(parsed, function(v) {\n return !v.evil;\n });\n if (!parsed.length) {\n delete frame.attribs[a];\n return;\n } else {\n value = stringifySrcset(filter(parsed, function(v) {\n return !v.evil;\n }));\n frame.attribs[a] = value;\n }\n } catch (e) {\n // Unparseable srcset\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'class') {\n const allowedSpecificClasses = allowedClassesMap[name];\n const allowedWildcardClasses = allowedClassesMap['*'];\n const allowedSpecificClassesGlob = allowedClassesGlobMap[name];\n const allowedSpecificClassesRegex = allowedClassesRegexMap[name];\n const allowedWildcardClassesGlob = allowedClassesGlobMap['*'];\n const allowedClassesGlobs = [\n allowedSpecificClassesGlob,\n allowedWildcardClassesGlob\n ]\n .concat(allowedSpecificClassesRegex)\n .filter(function (t) {\n return t;\n });\n if (allowedSpecificClasses && allowedWildcardClasses) {\n value = filterClasses(value, deepmerge(allowedSpecificClasses, allowedWildcardClasses), allowedClassesGlobs);\n } else {\n value = filterClasses(value, allowedSpecificClasses || allowedWildcardClasses, allowedClassesGlobs);\n }\n if (!value.length) {\n delete frame.attribs[a];\n return;\n }\n }\n if (a === 'style') {\n if (options.parseStyleAttributes) {\n try {\n const abstractSyntaxTree = postcssParse(name + ' {' + value + '}');\n const filteredAST = filterCss(abstractSyntaxTree, options.allowedStyles);\n\n value = stringifyStyleAttributes(filteredAST);\n\n if (value.length === 0) {\n delete frame.attribs[a];\n return;\n }\n } catch (e) {\n if (typeof window !== 'undefined') {\n console.warn('Failed to parse \"' + name + ' {' + value + '}' + '\", If you\\'re running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547');\n }\n delete frame.attribs[a];\n return;\n }\n } else if (options.allowedStyles) {\n throw new Error('allowedStyles option cannot be used together with parseStyleAttributes: false.');\n }\n }\n result += ' ' + a;\n if (value && value.length) {\n result += '=\"' + escapeHtml(value, true) + '\"';\n }\n } else {\n delete frame.attribs[a];\n }\n });\n }\n if (options.selfClosing.indexOf(name) !== -1) {\n result += ' />';\n } else {\n result += '>';\n if (frame.innerText && !hasText && !options.textFilter) {\n result += escapeHtml(frame.innerText);\n addedText = true;\n }\n }\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n },\n ontext: function(text) {\n if (skipText) {\n return;\n }\n const lastFrame = stack[stack.length - 1];\n let tag;\n\n if (lastFrame) {\n tag = lastFrame.tag;\n // If inner text was set by transform function then let's use it\n text = lastFrame.innerText !== undefined ? lastFrame.innerText : text;\n }\n\n if (options.disallowedTagsMode === 'discard' && ((tag === 'script') || (tag === 'style'))) {\n // htmlparser2 gives us these as-is. Escaping them ruins the content. Allowing\n // script tags is, by definition, game over for XSS protection, so if that's\n // your concern, don't allow them. The same is essentially true for style tags\n // which have their own collection of XSS vectors.\n result += text;\n } else {\n const escaped = escapeHtml(text, false);\n if (options.textFilter && !addedText) {\n result += options.textFilter(escaped, tag);\n } else if (!addedText) {\n result += escaped;\n }\n }\n if (stack.length) {\n const frame = stack[stack.length - 1];\n frame.text += text;\n }\n },\n onclosetag: function(name, isImplied) {\n\n if (skipText) {\n skipTextDepth--;\n if (!skipTextDepth) {\n skipText = false;\n } else {\n return;\n }\n }\n\n const frame = stack.pop();\n if (!frame) {\n // Do not crash on bad markup\n return;\n }\n\n if (frame.tag !== name) {\n // Another case of bad markup.\n // Push to stack, so that it will be used in future closing tags.\n stack.push(frame);\n return;\n }\n\n skipText = options.enforceHtmlBoundary ? name === 'html' : false;\n depth--;\n const skip = skipMap[depth];\n if (skip) {\n delete skipMap[depth];\n if (options.disallowedTagsMode === 'discard') {\n frame.updateParentNodeText();\n return;\n }\n tempResult = result;\n result = '';\n }\n\n if (transformMap[depth]) {\n name = transformMap[depth];\n delete transformMap[depth];\n }\n\n if (options.exclusiveFilter && options.exclusiveFilter(frame)) {\n result = result.substr(0, frame.tagPosition);\n return;\n }\n\n frame.updateParentNodeMediaChildren();\n frame.updateParentNodeText();\n\n if (\n // Already output />\n options.selfClosing.indexOf(name) !== -1 ||\n // Escaped tag, closing tag is implied\n (isImplied && !tagAllowed(name) && [ 'escape', 'recursiveEscape' ].indexOf(options.disallowedTagsMode) >= 0)\n ) {\n if (skip) {\n result = tempResult;\n tempResult = '';\n }\n return;\n }\n\n result += '</' + name + '>';\n if (skip) {\n result = tempResult + escapeHtml(result);\n tempResult = '';\n }\n addedText = false;\n }\n }, options.parser);\n parser.write(html);\n parser.end();\n\n return result;\n\n function initializeState() {\n result = '';\n depth = 0;\n stack = [];\n skipMap = {};\n transformMap = {};\n skipText = false;\n skipTextDepth = 0;\n }\n\n function escapeHtml(s, quote) {\n if (typeof (s) !== 'string') {\n s = s + '';\n }\n if (options.parser.decodeEntities) {\n s = s.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n }\n // TODO: this is inadequate because it will pass `&0;`. This approach\n // will not work, each & must be considered with regard to whether it\n // is followed by a 100% syntactically valid entity or not, and escaped\n // if it is not. If this bothers you, don't set parser.decodeEntities\n // to false. (The default is true.)\n s = s.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, '&') // Match ampersands not part of existing HTML entity\n .replace(/</g, '<')\n .replace(/>/g, '>');\n if (quote) {\n s = s.replace(/\"/g, '"');\n }\n return s;\n }\n\n function naughtyHref(name, href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n // eslint-disable-next-line no-control-regex\n href = href.replace(/[\\x00-\\x20]+/g, '');\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n while (true) {\n const firstIndex = href.indexOf('<!--');\n if (firstIndex === -1) {\n break;\n }\n const lastIndex = href.indexOf('-->', firstIndex + 4);\n if (lastIndex === -1) {\n break;\n }\n href = href.substring(0, firstIndex) + href.substring(lastIndex + 3);\n }\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n // Allow more characters after the first so we don't get faked\n // out by certain schemes browsers accept\n const matches = href.match(/^([a-zA-Z][a-zA-Z0-9.\\-+]*):/);\n if (!matches) {\n // Protocol-relative URL starting with any combination of '/' and '\\'\n if (href.match(/^[/\\\\]{2}/)) {\n return !options.allowProtocolRelative;\n }\n\n // No scheme\n return false;\n }\n const scheme = matches[1].toLowerCase();\n\n if (has(options.allowedSchemesByTag, name)) {\n return options.allowedSchemesByTag[name].indexOf(scheme) === -1;\n }\n\n return !options.allowedSchemes || options.allowedSchemes.indexOf(scheme) === -1;\n }\n\n function parseUrl(value) {\n value = value.replace(/^(\\w+:)?\\s*[\\\\/]\\s*[\\\\/]/, '$1//');\n if (value.startsWith('relative:')) {\n // An attempt to exploit our workaround for base URLs being\n // mandatory for relative URL validation in the WHATWG\n // URL parser, reject it\n throw new Error('relative: exploit attempt');\n }\n // naughtyHref is in charge of whether protocol relative URLs\n // are cool. Here we are concerned just with allowed hostnames and\n // whether to allow relative URLs.\n //\n // Build a placeholder \"base URL\" against which any reasonable\n // relative URL may be parsed successfully\n let base = 'relative://relative-site';\n for (let i = 0; (i < 100); i++) {\n base += `/${i}`;\n }\n\n const parsed = new URL(value, base);\n\n const isRelativeUrl = parsed && parsed.hostname === 'relative-site' && parsed.protocol === 'relative:';\n return {\n isRelativeUrl,\n url: parsed\n };\n }\n /**\n * Filters user input css properties by allowlisted regex attributes.\n * Modifies the abstractSyntaxTree object.\n *\n * @param {object} abstractSyntaxTree - Object representation of CSS attributes.\n * @property {array[Declaration]} abstractSyntaxTree.nodes[0] - Each object cointains prop and value key, i.e { prop: 'color', value: 'red' }.\n * @param {object} allowedStyles - Keys are properties (i.e color), value is list of permitted regex rules (i.e /green/i).\n * @return {object} - The modified tree.\n */\n function filterCss(abstractSyntaxTree, allowedStyles) {\n if (!allowedStyles) {\n return abstractSyntaxTree;\n }\n\n const astRules = abstractSyntaxTree.nodes[0];\n let selectedRule;\n\n // Merge global and tag-specific styles into new AST.\n if (allowedStyles[astRules.selector] && allowedStyles['*']) {\n selectedRule = deepmerge(\n allowedStyles[astRules.selector],\n allowedStyles['*']\n );\n } else {\n selectedRule = allowedStyles[astRules.selector] || allowedStyles['*'];\n }\n\n if (selectedRule) {\n abstractSyntaxTree.nodes[0].nodes = astRules.nodes.reduce(filterDeclarations(selectedRule), []);\n }\n\n return abstractSyntaxTree;\n }\n\n /**\n * Extracts the style attributes from an AbstractSyntaxTree and formats those\n * values in the inline style attribute format.\n *\n * @param {AbstractSyntaxTree} filteredAST\n * @return {string} - Example: \"color:yellow;text-align:center !important;font-family:helvetica;\"\n */\n function stringifyStyleAttributes(filteredAST) {\n return filteredAST.nodes[0].nodes\n .reduce(function(extractedAttributes, attrObject) {\n extractedAttributes.push(\n `${attrObject.prop}:${attrObject.value}${attrObject.important ? ' !important' : ''}`\n );\n return extractedAttributes;\n }, [])\n .join(';');\n }\n\n /**\n * Filters the existing attributes for the given property. Discards any attributes\n * which don't match the allowlist.\n *\n * @param {object} selectedRule - Example: { color: red, font-family: helvetica }\n * @param {array} allowedDeclarationsList - List of declarations which pass the allowlist.\n * @param {object} attributeObject - Object representing the current css property.\n * @property {string} attributeObject.type - Typically 'declaration'.\n * @property {string} attributeObject.prop - The CSS property, i.e 'color'.\n * @property {string} attributeObject.value - The corresponding value to the css property, i.e 'red'.\n * @return {function} - When used in Array.reduce, will return an array of Declaration objects\n */\n function filterDeclarations(selectedRule) {\n return function (allowedDeclarationsList, attributeObject) {\n // If this property is allowlisted...\n if (has(selectedRule, attributeObject.prop)) {\n const matchesRegex = selectedRule[attributeObject.prop].some(function(regularExpression) {\n return regularExpression.test(attributeObject.value);\n });\n\n if (matchesRegex) {\n allowedDeclarationsList.push(attributeObject);\n }\n }\n return allowedDeclarationsList;\n };\n }\n\n function filterClasses(classes, allowed, allowedGlobs) {\n if (!allowed) {\n // The class attribute is allowed without filtering on this tag\n return classes;\n }\n classes = classes.split(/\\s+/);\n return classes.filter(function(clss) {\n return allowed.indexOf(clss) !== -1 || allowedGlobs.some(function(glob) {\n return glob.test(clss);\n });\n }).join(' ');\n }\n}\n\n// Defaults are accessible to you so that you can use them as a starting point\n// programmatically if you wish\n\nconst htmlParserDefaults = {\n decodeEntities: true\n};\nsanitizeHtml.defaults = {\n allowedTags: [\n // Sections derived from MDN element categories and limited to the more\n // benign categories.\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Element\n // Content sectioning\n 'address', 'article', 'aside', 'footer', 'header',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup',\n 'main', 'nav', 'section',\n // Text content\n 'blockquote', 'dd', 'div', 'dl', 'dt', 'figcaption', 'figure',\n 'hr', 'li', 'main', 'ol', 'p', 'pre', 'ul',\n // Inline text semantics\n 'a', 'abbr', 'b', 'bdi', 'bdo', 'br', 'cite', 'code', 'data', 'dfn',\n 'em', 'i', 'kbd', 'mark', 'q',\n 'rb', 'rp', 'rt', 'rtc', 'ruby',\n 's', 'samp', 'small', 'span', 'strong', 'sub', 'sup', 'time', 'u', 'var', 'wbr',\n // Table content\n 'caption', 'col', 'colgroup', 'table', 'tbody', 'td', 'tfoot', 'th',\n 'thead', 'tr'\n ],\n // Tags that cannot be boolean\n nonBooleanAttributes: [\n 'abbr', 'accept', 'accept-charset', 'accesskey', 'action',\n 'allow', 'alt', 'as', 'autocapitalize', 'autocomplete',\n 'blocking', 'charset', 'cite', 'class', 'color', 'cols',\n 'colspan', 'content', 'contenteditable', 'coords', 'crossorigin',\n 'data', 'datetime', 'decoding', 'dir', 'dirname', 'download',\n 'draggable', 'enctype', 'enterkeyhint', 'fetchpriority', 'for',\n 'form', 'formaction', 'formenctype', 'formmethod', 'formtarget',\n 'headers', 'height', 'hidden', 'high', 'href', 'hreflang',\n 'http-equiv', 'id', 'imagesizes', 'imagesrcset', 'inputmode',\n 'integrity', 'is', 'itemid', 'itemprop', 'itemref', 'itemtype',\n 'kind', 'label', 'lang', 'list', 'loading', 'low', 'max',\n 'maxlength', 'media', 'method', 'min', 'minlength', 'name',\n 'nonce', 'optimum', 'pattern', 'ping', 'placeholder', 'popover',\n 'popovertarget', 'popovertargetaction', 'poster', 'preload',\n 'referrerpolicy', 'rel', 'rows', 'rowspan', 'sandbox', 'scope',\n 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src',\n 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'style',\n 'tabindex', 'target', 'title', 'translate', 'type', 'usemap',\n 'value', 'width', 'wrap',\n // Event handlers\n 'onauxclick', 'onafterprint', 'onbeforematch', 'onbeforeprint',\n 'onbeforeunload', 'onbeforetoggle', 'onblur', 'oncancel',\n 'oncanplay', 'oncanplaythrough', 'onchange', 'onclick', 'onclose',\n 'oncontextlost', 'oncontextmenu', 'oncontextrestored', 'oncopy',\n 'oncuechange', 'oncut', 'ondblclick', 'ondrag', 'ondragend',\n 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart',\n 'ondrop', 'ondurationchange', 'onemptied', 'onended',\n 'onerror', 'onfocus', 'onformdata', 'onhashchange', 'oninput',\n 'oninvalid', 'onkeydown', 'onkeypress', 'onkeyup',\n 'onlanguagechange', 'onload', 'onloadeddata', 'onloadedmetadata',\n 'onloadstart', 'onmessage', 'onmessageerror', 'onmousedown',\n 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout',\n 'onmouseover', 'onmouseup', 'onoffline', 'ononline', 'onpagehide',\n 'onpageshow', 'onpaste', 'onpause', 'onplay', 'onplaying',\n 'onpopstate', 'onprogress', 'onratechange', 'onreset', 'onresize',\n 'onrejectionhandled', 'onscroll', 'onscrollend',\n 'onsecuritypolicyviolation', 'onseeked', 'onseeking', 'onselect',\n 'onslotchange', 'onstalled', 'onstorage', 'onsubmit', 'onsuspend',\n 'ontimeupdate', 'ontoggle', 'onunhandledrejection', 'onunload',\n 'onvolumechange', 'onwaiting', 'onwheel'\n ],\n disallowedTagsMode: 'discard',\n allowedAttributes: {\n a: [ 'href', 'name', 'target' ],\n // We don't currently allow img itself by default, but\n // these attributes would make sense if we did.\n img: [ 'src', 'srcset', 'alt', 'title', 'width', 'height', 'loading' ]\n },\n // Lots of these won't come up by default because we don't allow them\n selfClosing: [ 'img', 'br', 'hr', 'area', 'base', 'basefont', 'input', 'link', 'meta' ],\n // URL schemes we permit\n allowedSchemes: [ 'http', 'https', 'ftp', 'mailto', 'tel' ],\n allowedSchemesByTag: {},\n allowedSchemesAppliedToAttributes: [ 'href', 'src', 'cite' ],\n allowProtocolRelative: true,\n enforceHtmlBoundary: false,\n parseStyleAttributes: true\n};\n\nsanitizeHtml.simpleTransform = function(newTagName, newAttribs, merge) {\n merge = (merge === undefined) ? true : merge;\n newAttribs = newAttribs || {};\n\n return function(tagName, attribs) {\n let attrib;\n if (merge) {\n for (attrib in newAttribs) {\n attribs[attrib] = newAttribs[attrib];\n }\n } else {\n attribs = newAttribs;\n }\n\n return {\n tagName: newTagName,\n attribs: attribs\n };\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","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markDirtyUp(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markDirtyUp(i)\n }\n }\n}\n\nclass Container extends Node {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markDirtyUp(i)\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : '<css input>'\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + line\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { isAbsolute, resolve } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { column: origin.column, line: origin.line },\n origin.endLine === undefined\n ? origin.column\n : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { column, line },\n endLine === undefined ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { column, endColumn, endLine, line, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n }\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ column, line })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n\n get from() {\n return this.file || this.id\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n atrule: 'AtRule',\n comment: 'Comment',\n decl: 'Declaration',\n document: 'Document',\n root: 'Root',\n rule: 'Rule'\n}\n\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n}\n\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node,\n visitorIndex: 0,\n visitors: []\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, postcss, result: this.result }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this.css\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n get content() {\n return this.stringify().content\n }\n\n get css() {\n return this.stringify().css\n }\n\n get map() {\n return this.stringify().map\n }\n\n get messages() {\n return this.sync().messages\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n return this.sync().root\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet list = {\n comma(string) {\n return list.split(string, [','], true)\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, relative, resolve, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n this.memoizedFileURLs = new Map()\n this.memoizedPaths = new Map()\n this.memoizedURLs = new Map()\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = map.sourcesContent.map(() => null)\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/(\\n)?\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev)\n } else {\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({ file: this.outputFile() })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n path(file) {\n if (this.mapOpts.absolute) return file\n if (file.charCodeAt(0) === 60 /* `<` */) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n let cached = this.memoizedPaths.get(file)\n if (cached) return cached\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n let path = relative(from, file)\n this.memoizedPaths.set(file, path)\n\n return path\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.css, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path)\n if (cached) return cached\n\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString()\n this.memoizedFileURLs.set(path, fileURL)\n\n return fileURL\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n toUrl(path) {\n let cached = this.memoizedURLs.get(path)\n if (cached) return cached\n\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n this.memoizedURLs.set(path, url)\n\n return url\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n }\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this._css\n }\n\n warnings() {\n return []\n }\n\n get content() {\n return this.result.css\n }\n\n get css() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get messages() {\n return []\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation)\n } else if (opts.word) {\n stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index, stringRepresentation)\n }\n return pos\n }\n\n positionInside(index, stringRepresentation) {\n let string = stringRepresentation || this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { column, line }\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n }\n let end = this.source.end\n ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n }\n : {\n column: start.column + 1,\n line: start.line\n }\n\n if (opts.word) {\n let stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index, stringRepresentation)\n end = this.positionInside(index + opts.word.length, stringRepresentation)\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n }\n } else if (opts.endIndex) {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { column: start.column + 1, line: start.line }\n }\n\n return { end, start }\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n this.customProperty = false\n\n this.createTokenizer()\n this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n node.source.end.offset++\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n node.source.end.offset++\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n\n colon(tokens) {\n let brackets = 0\n let token, type, prev\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n node.source.end.offset++\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current.source.end.offset++\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.root.source.end = this.getPosition(this.tokenizer.position())\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n column: pos.col,\n line: pos.line,\n offset\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n input: this.input,\n start: this.getPosition(offset)\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { raw, value }\n }\n node[prop] = value\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n // Errors\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.31'\n this.plugins = this.normalize(plugins)\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n\n process(css, opts = {}) {\n if (\n this.plugins.length === 0 &&\n typeof opts.parser === 'undefined' &&\n typeof opts.stringifier === 'undefined' &&\n typeof opts.syntax === 'undefined'\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nconst DEFAULT_RAW = {\n after: '\\n',\n beforeClose: '\\n',\n beforeComment: '\\n',\n beforeDecl: '\\n',\n beforeOpen: ' ',\n beforeRule: '\\n',\n colon: ': ',\n commentLeft: ' ',\n commentRight: ' ',\n emptyBody: '',\n indent: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n document(node) {\n this.body(node)\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n endOfFile,\n nextToken,\n position\n }\n}\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","var api = require(\"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../../sass-loader/dist/cjs.js!./Button.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../../sass-loader/dist/cjs.js!./InputField.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../sass-loader/dist/cjs.js!./icon.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../../css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../../../sass-loader/dist/cjs.js!./spinner.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./autoscroll-button.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./captionList.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./caption.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./plugin-button.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./popover-menu.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./small-screen-slate.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./spinner.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!../../../node_modules/sass-loader/dist/cjs.js!./transcript.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","import {h} from 'preact';\nimport * as styles from './autoscroll-button.scss';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {Button, ButtonType} from '@playkit-js/common/dist/components/button';\n\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\ninterface AutoscrollButtonProps {\n onClick: OnClick;\n isAutoScrollEnabled: boolean;\n setAutoscrollButtonRef: (node: HTMLButtonElement | null) => void;\n autoScrollLabel?: string;\n}\n\nconst translates = {\n autoScrollLabel: <Text id=\"transcript.auto_scroll\">Resume AutoScroll</Text>\n};\n\nexport const AutoscrollButton = withText(translates)(\n ({onClick, isAutoScrollEnabled, setAutoscrollButtonRef, autoScrollLabel}: AutoscrollButtonProps) => {\n return (\n <div className={styles.autoscrollRoot} tabIndex={isAutoScrollEnabled ? -1 : 1}>\n <Button\n onClick={onClick}\n setRef={setAutoscrollButtonRef}\n className={`${styles.autoscrollButton} ${isAutoScrollEnabled ? '' : styles.autoscrollButtonVisible}`}\n type={ButtonType.primary}\n icon=\"autoScroll\"\n tooltip={{label: autoScrollLabel!, type: 'left'}}\n ariaLabel={autoScrollLabel}\n />\n </div>\n );\n }\n);\n","export * from './autoscroll-button';\n","import {h, Component} from 'preact';\nimport {HOUR} from '../../utils';\nimport {Caption} from '../caption';\nimport * as styles from './captionList.scss';\nimport {HighlightedMap, CuePointData} from '../../types';\n\nconst {END, HOME} = KalturaPlayer.ui.utils.KeyMap;\n\nexport interface CaptionProps {\n showTime: boolean;\n searchLength: number;\n scrollTo(el: HTMLElement): void;\n scrollToSearchMatch(el: HTMLElement): void;\n videoDuration: number;\n}\n\nexport interface Props {\n data: Array<CuePointData>;\n onSeek: (n: CuePointData) => void;\n autoScroll?: boolean;\n onScroll: (n: number) => void;\n widgetWidth: number;\n highlightedMap: HighlightedMap;\n showItemsIcons: boolean;\n listDataContainCaptions?: boolean;\n searchActive: boolean;\n isAutoScrollEnabled: boolean;\n activeSearchIndex: number;\n searchMap: Record<string, Record<string, number>>;\n captionProps: CaptionProps;\n}\nexport class CaptionList extends Component<Props> {\n private _currentCaptionRef: any = null;\n private _firstCaptionRef: any = null;\n private _lastCaptionRef: any = null;\n shouldComponentUpdate(nextProps: Readonly<Props>) {\n const {highlightedMap, data, searchMap, activeSearchIndex, isAutoScrollEnabled, captionProps} = this.props;\n if (\n highlightedMap !== nextProps.highlightedMap ||\n data !== nextProps.data ||\n searchMap !== nextProps.searchMap ||\n activeSearchIndex !== nextProps.activeSearchIndex ||\n isAutoScrollEnabled !== nextProps.isAutoScrollEnabled ||\n captionProps.videoDuration !== nextProps.captionProps.videoDuration\n ) {\n return true;\n }\n return false;\n }\n\n private _handleClick = (caption: CuePointData) => () => {\n const {onSeek} = this.props;\n onSeek(caption);\n };\n\n private _getShouldScroll = (captionId: string) => {\n const {isAutoScrollEnabled, highlightedMap} = this.props;\n return isAutoScrollEnabled && highlightedMap[captionId];\n };\n\n private _getShouldScrollToSearchMatch = (captionId: string) => {\n const {isAutoScrollEnabled, searchMap, activeSearchIndex} = this.props;\n return !isAutoScrollEnabled && searchMap[captionId] && searchMap[captionId][activeSearchIndex] !== undefined;\n };\n\n private _getSearchProps = (captionId: string) => {\n const {searchMap, activeSearchIndex, captionProps} = this.props;\n const searchProps: any = {};\n if (searchMap[captionId]) {\n searchProps.indexMap = searchMap[captionId];\n searchProps.activeSearchIndex = activeSearchIndex;\n searchProps.searchLength = captionProps.searchLength;\n }\n return searchProps;\n };\n\n private _getCaptionProps = (captionData: CuePointData) => {\n const {highlightedMap, captionProps, isAutoScrollEnabled} = this.props;\n const {id}: {id: string} = captionData;\n const newCaptionProps = {\n showTime: captionProps.showTime,\n scrollTo: captionProps.scrollTo,\n scrollToSearchMatch: captionProps.scrollToSearchMatch,\n key: id,\n onClick: this._handleClick(captionData),\n caption: captionData,\n highlighted: highlightedMap,\n longerThanHour: captionProps.videoDuration >= HOUR,\n shouldScroll: this._getShouldScroll(id),\n shouldScrollToSearchMatch: this._getShouldScrollToSearchMatch(id),\n isAutoScrollEnabled,\n searchCaption: this.props.searchMap[captionData.id],\n ...this._getSearchProps(id)\n };\n return newCaptionProps;\n };\n\n private _handleKeyUp = (event: KeyboardEvent) => {\n if (event.keyCode === END) {\n this._lastCaptionRef?._hotspotRef?.focus();\n } else if (event.keyCode === HOME) {\n this._firstCaptionRef?._hotspotRef?.focus();\n }\n };\n\n render() {\n const {data} = this.props;\n let isSearchCaption = false;\n return (\n <div className={styles.transcriptWrapper} onKeyUp={this._handleKeyUp}>\n {data.map((captionData, index) => {\n const captionProps = this._getCaptionProps(captionData);\n return (\n <Caption\n ref={node => {\n if (index === 0) {\n this._firstCaptionRef = node;\n } else if (index === data.length - 1) {\n this._lastCaptionRef = node;\n }\n if (captionProps.searchCaption){\n Object.keys(captionProps.searchCaption).forEach(key => {\n if (parseInt(key) === this.props.activeSearchIndex) {\n this._currentCaptionRef = node\n isSearchCaption = true;\n }\n });\n }\n if (!isSearchCaption && captionProps.highlighted[captionData.id]) {\n this._currentCaptionRef = node;\n }\n }}\n {...captionProps}\n />\n );\n })}\n </div>\n );\n }\n}\n","export * from './captionList';\n","import {Component, h} from 'preact';\nimport {A11yWrapper} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {secondsToTime} from '../../utils';\nimport {CuePointData} from '../../types';\nimport * as styles from './caption.scss';\n\nexport interface CaptionProps {\n showTime: boolean;\n searchLength: number;\n scrollTo(el: HTMLElement): void;\n scrollToSearchMatch(el: HTMLElement): void;\n videoDuration: number;\n}\n\ninterface ExtendedCaptionProps extends CaptionProps {\n caption: CuePointData;\n onClick: () => void;\n highlighted: boolean;\n shouldScroll: boolean;\n shouldScrollToSearchMatch: boolean;\n indexMap: Record<string, number> | undefined;\n activeSearchIndex: number;\n longerThanHour: boolean;\n isAutoScrollEnabled: boolean;\n}\n\nexport class Caption extends Component<ExtendedCaptionProps> {\n private _hotspotRef: HTMLElement | null = null;\n\n componentDidUpdate() {\n if (this._hotspotRef && this.props.shouldScroll) {\n this.props.scrollTo(this._hotspotRef);\n } else if (this._hotspotRef && this.props.shouldScrollToSearchMatch) {\n this.props.scrollToSearchMatch(this._hotspotRef);\n }\n }\n\n shouldComponentUpdate(nextProps: ExtendedCaptionProps) {\n const {indexMap, highlighted, isAutoScrollEnabled, activeSearchIndex, longerThanHour} = this.props;\n if (longerThanHour !== nextProps.longerThanHour) {\n return true;\n }\n if (highlighted !== nextProps.highlighted) {\n return true;\n }\n if (highlighted && isAutoScrollEnabled !== nextProps.isAutoScrollEnabled) {\n return true;\n }\n if (indexMap !== nextProps.indexMap) {\n return true;\n }\n if (indexMap && nextProps.indexMap && indexMap[activeSearchIndex] !== nextProps.indexMap[nextProps.activeSearchIndex]) {\n return true;\n }\n return false;\n }\n\n private _handleClick = () => {\n this._gotoCurrentTime();\n };\n\n private _gotoCurrentTime = () => {\n const {caption, onClick} = this.props;\n if (caption.text.length) {\n onClick();\n }\n };\n\n private _renderText = (text: string) => {\n const {activeSearchIndex, searchLength, indexMap} = this.props;\n let indexArray: string[] = [];\n if (indexMap) {\n indexArray = Object.keys(indexMap).sort((a, b) => Number(a) - Number(b));\n }\n if (text?.length === 0) {\n return null;\n }\n return (\n <span className={styles.captionSpan}>\n {indexMap\n ? indexArray.map((el: string, index: number) => {\n const preSelected = index === 0 ? text.substring(0, indexMap[el]) : '';\n const selected = text.substring(indexMap[el], indexMap[el] + searchLength);\n const postSelected = text.substring(\n indexMap[el] + searchLength,\n index - 1 === indexArray.length ? text.length : indexMap[indexArray[index + 1]]\n );\n return (\n <span>\n {preSelected}\n <span className={Number(el) === activeSearchIndex ? styles.activeSearch : styles.highlightSearch}>{selected}</span>\n {postSelected}\n </span>\n );\n })\n : text}\n </span>\n );\n };\n\n render() {\n const {caption, highlighted, showTime, longerThanHour} = this.props;\n const {startTime, id} = caption;\n const isHighlighted = Object.keys(highlighted)[0] === id;\n const time = showTime ? secondsToTime(startTime, longerThanHour) : '';\n\n const captionA11yProps: Record<string, any> = {\n ariaCurrent: isHighlighted,\n tabIndex: 0,\n ariaLabel: `${time}${showTime ? ' ' : ''}${caption.text}`,\n role: 'button'\n };\n\n return (\n <A11yWrapper onClick={this._handleClick}>\n <div\n className={styles.caption}\n ref={node => {\n this._hotspotRef = node;\n }}\n {...captionA11yProps}>\n {showTime && (\n <div className={styles.captionTime} aria-hidden=\"true\">\n {time}\n </div>\n )}\n <div\n aria-hidden=\"true\"\n className={`${styles.captionContent} ${isHighlighted ? styles.highlighted : ''} ${showTime ? '' : styles.withoutTime}`}>\n {this._renderText(caption.text)}\n </div>\n </div>\n </A11yWrapper>\n );\n }\n}\n","export * from './caption';\n","export namespace icons {\n export const PLUGIN_ICON =\n 'M23.1111111,19 C23.6020309,19 24,19.4477153 24,20 C24,20.5522847 23.6020309,21 23.1111111,21 L8.88888889,21 C8.39796911,21 8,20.5522847 8,20 C8,19.4477153 8.39796911,19 8.88888889,19 L23.1111111,19 Z M24.8695652,3 C26.5984566,3 28,4.24720677 28,5.78571429 L28,26.2142857 C28,27.7527932 26.5984566,29 24.8695652,29 L7.13043478,29 C5.40154339,29 4,27.7527932 4,26.2142857 L4,5.78571429 C4,4.24720677 5.40154339,3 7.13043478,3 L24.8695652,3 Z M26,17 L6,17 L6,26.0833333 C6,26.5895944 6.47127921,27 7.05263158,27 L24.9473684,27 C25.5287208,27 26,26.5895944 26,26.0833333 L26,17 Z M8.88888889,23 L23.1111111,23 C23.6020309,23 24,23.4477153 24,24 C24,24.5128358 23.6568532,24.9355072 23.2147743,24.9932723 L23.1111111,25 L8.88888889,25 C8.39796911,25 8,24.5522847 8,24 C8,23.4871642 8.34314684,23.0644928 8.78522567,23.0067277 L8.88888889,23 L23.1111111,23 L8.88888889,23 Z M24.9473684,5 L7.05263158,5 C6.47127921,5 6,5.41040565 6,5.91666667 L6,15 L26,15 L26,5.91666667 C26,5.41040565 25.5287208,5 24.9473684,5 Z';\n export const BigSize = 32;\n export const MediumSize = 24;\n export const SmallSize = 16;\n}\n","import {h} from 'preact';\nimport * as styles from './plugin-button.scss';\nimport {ui} from '@playkit-js/kaltura-player-js';\nimport {icons} from '../icons';\nimport {A11yWrapper, OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\n\nconst {Tooltip, Icon} = KalturaPlayer.ui.components;\n\ninterface PluginButtonProps {\n isActive: boolean;\n setRef?: (ref: HTMLButtonElement | null) => void;\n id: string;\n icon: string;\n label?: string;\n dataTestId?: string;\n}\n\nexport const PluginButton = ({isActive, label, id, icon, dataTestId, setRef}: PluginButtonProps) => {\n return (\n <Tooltip label={label} type=\"bottom\">\n <button\n ref={node => {\n if (setRef) {\n setRef(node);\n }\n }}\n type=\"button\"\n aria-label={label}\n className={[ui.style.upperBarIcon, styles.pluginButton, isActive ? styles.active : ''].join(' ')}\n data-testid={dataTestId}>\n <Icon id={id} height={icons.BigSize} width={icons.BigSize} viewBox={`0 0 ${icons.BigSize} ${icons.BigSize}`} path={icon} hidden=\"true\"/>\n </button>\n </Tooltip>\n );\n};\n\nPluginButton.defaultProps = {\n dataTestId: 'transcript_pluginButton'\n};\n","import {PopoverMenu, PopoverMenuItemData} from './popover-menu';\nexport {PopoverMenu, PopoverMenuItemData};\n","import {A11yWrapper} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {h, Component, VNode} from 'preact';\n\nconst {Tooltip} = KalturaPlayer.ui.components;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\nconst {withEventManager} = KalturaPlayer.ui.Event;\nconst {TAB} = KalturaPlayer.ui.utils.KeyMap;\n\nimport * as styles from './popover-menu.scss';\n\ninterface PopoverMenuItemData {\n testId: string;\n label: string;\n onClick: () => void;\n isDisabled?: boolean;\n}\n\ninterface PopoverMenuProps {\n moreOptionsLabel?: string;\n eventManager?: any;\n children?: VNode;\n items: Array<PopoverMenuItemData>;\n}\n\ninterface PopoverMenuState {\n isOpen: boolean;\n}\nconst translates = {\n moreOptionsLabel: <Text id=\"transcript.more_options\">More transcript options</Text>\n};\n\n@withText(translates)\n@withEventManager\nclass PopoverMenu extends Component<PopoverMenuProps, PopoverMenuState> {\n private _controlElementRef: HTMLDivElement | null = null;\n private _popoverElementRef: HTMLDivElement | null = null;\n private _itemsRefMap: Map<number, HTMLDivElement | null> = new Map();\n\n eventManager: any;\n\n constructor(props: PopoverMenuProps) {\n super(props);\n this.state = {isOpen: false};\n\n this.props.eventManager?.listen(document, 'click', this.handleMouseEvent);\n this.props.eventManager?.listen(document, 'keydown', this.handleKeydownEvent);\n }\n\n componentWillUnmount() {\n this._itemsRefMap = new Map();\n }\n\n private handleMouseEvent = (event: MouseEvent) => {\n if (!this._controlElementRef?.contains(event.target as Node | null)) {\n this.closePopover();\n }\n };\n\n private handleKeydownEvent = (event: KeyboardEvent) => {\n const eventTarget = event.target as Node | null;\n if (\n this.state.isOpen &&\n event.keyCode === TAB &&\n !this._controlElementRef?.contains(eventTarget) &&\n !this._popoverElementRef?.contains(eventTarget)\n ) {\n this.closePopover();\n }\n };\n\n private _handleUpKeyPressed = (currentIndex: number) => () => {\n this._getItemRef(currentIndex - 1)?.focus();\n };\n\n private _handleDownKeyPressed = (currentIndex: number) => () => {\n this._getItemRef(currentIndex + 1)?.focus();\n };\n\n private closePopover() {\n this.setState({isOpen: false});\n }\n\n private togglePopover = (focusFirstItem: boolean) => {\n const isOpen = !this.state.isOpen;\n\n this.setState({isOpen}, () => {\n if (isOpen && focusFirstItem) {\n const firstNonDisabledItem = this.props.items.findIndex((item: PopoverMenuItemData) => !item.isDisabled);\n if (firstNonDisabledItem !== -1) {\n this._getItemRef(firstNonDisabledItem)?.focus();\n }\n }\n });\n };\n\n private _getItemRef = (index: number) => {\n return this._itemsRefMap.get(index);\n };\n\n private _setItemRef = (index: number, ref: HTMLDivElement | null) => {\n return this._itemsRefMap.set(index, ref);\n };\n\n render() {\n const {children, items} = this.props;\n\n const popoverMenuContent = (\n <div className={styles.popoverContainer}>\n <A11yWrapper onClick={(e) => {\n e.stopPropagation();\n this.togglePopover(true);\n }}>\n <div\n aria-label={this.props.moreOptionsLabel!}\n tabIndex={0}\n data-testid=\"popover-anchor-container\"\n className={`${styles.popoverAnchorContainer} ${this.state.isOpen ? styles.active : ''}`}\n aria-expanded={this.state.isOpen}\n aria-controls=\"popoverContent\"\n ref={node => {\n this._controlElementRef = node;\n }}>\n <div className={styles.popoverAnchor}>{children}</div>\n </div>\n </A11yWrapper>\n\n <div\n className={styles.popoverComponent}\n role=\"menu\"\n aria-expanded={this.state.isOpen}\n id=\"popoverContent\"\n ref={node => {\n this._popoverElementRef = node;\n }}>\n {this.state.isOpen\n ? items.map(({label, onClick, testId, isDisabled}, index) => {\n return (\n <A11yWrapper\n role=\"menuitem\"\n onClick={() => {\n if (!isDisabled) {\n this.closePopover();\n onClick();\n }\n }}\n onDownKeyPressed={() => {\n if (!isDisabled) {\n this._handleDownKeyPressed(index);\n }\n }}\n onUpKeyPressed={() => {\n if (!isDisabled) {\n this._handleUpKeyPressed(index);\n }\n }}>\n {\n <div\n tabIndex={isDisabled ? -1 : 0}\n role=\"menuitem\"\n className={`${styles.popoverMenuItem} ${isDisabled ? styles.popoverMenuItemDisabled : ''}`}\n data-testid={testId}\n ref={node => {\n this._setItemRef(index, node);\n }}>\n {label}\n </div>\n }\n </A11yWrapper>\n );\n })\n : null}\n </div>\n </div>\n );\n\n return this.state.isOpen ? (\n popoverMenuContent\n ) : (\n <div>\n <Tooltip label={this.props.moreOptionsLabel!}>{popoverMenuContent}</Tooltip>\n </div>\n );\n }\n}\n\nexport {PopoverMenu, PopoverMenuItemData};\n","export * from './search';\n","import {h, Component} from 'preact';\nimport {InputField} from '@playkit-js/common/dist/components/input-field';\n\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\nconst translates = ({activeSearchIndex, totalSearchResults}: SearchProps) => ({\n searchLabel: <Text id=\"transcript.search\">Search in Transcript</Text>,\n clearSearchLabel: <Text id=\"transcript.clear_search\">Clear search</Text>,\n nextMatchLabel: <Text id=\"transcript.next_search_match\">Next search result</Text>,\n prevMatchLabel: <Text id=\"transcript.prev_search_match\">Previous search result</Text>,\n searchResultsLabel: (\n <Text\n id=\"transcript.search_results\"\n fields={{\n current: totalSearchResults > 0 ? activeSearchIndex : 0,\n total: totalSearchResults\n }}>\n {`Search result ${totalSearchResults > 0 ? activeSearchIndex : 0} out of ${totalSearchResults}`}\n </Text>\n )\n});\n\nexport interface SearchProps {\n onChange(value: string): void;\n value: string;\n kitchenSinkActive: boolean;\n toggledWithEnter: boolean;\n\n onSearchIndexChange: (index: number) => void;\n activeSearchIndex: number;\n totalSearchResults: number;\n\n searchLabel?: string;\n clearSearchLabel?: string;\n nextMatchLabel?: string;\n prevMatchLabel?: string;\n searchResultsLabel?: string;\n}\n\nclass SearchComponent extends Component<SearchProps> {\n private _inputField: InputField | null = null;\n\n shouldComponentUpdate(nextProps: Readonly<SearchProps>) {\n const {value, activeSearchIndex, totalSearchResults, kitchenSinkActive} = this.props;\n if (\n value !== nextProps.value ||\n activeSearchIndex !== nextProps.activeSearchIndex ||\n totalSearchResults !== nextProps.totalSearchResults ||\n kitchenSinkActive !== nextProps.kitchenSinkActive\n ) {\n return true;\n }\n return false;\n }\n componentDidUpdate(previousProps: Readonly<SearchProps>): void {\n const {kitchenSinkActive, toggledWithEnter} = this.props;\n if (!previousProps.kitchenSinkActive && kitchenSinkActive && toggledWithEnter) {\n this._inputField?.setFocus({preventScroll: true});\n }\n }\n\n render() {\n const {value, totalSearchResults, activeSearchIndex, onChange, onSearchIndexChange} = this.props;\n return (\n <InputField\n ref={node => {\n this._inputField = node;\n }}\n value={value}\n onChange={onChange}\n placeholder={this.props.searchLabel}\n clearSearchLabel={this.props.clearSearchLabel}\n searchResults={{\n activeSearchIndex,\n totalSearchResults,\n onSearchIndexChange,\n nextMatchLabel: this.props.nextMatchLabel as string,\n prevMatchLabel: this.props.prevMatchLabel as string,\n searchResultsLabel: this.props.searchResultsLabel as string\n }}\n />\n );\n }\n}\n\nexport const Search = withText(translates)(SearchComponent);\n","export * from \"./small-screen-slate\";","import {h, Component} from 'preact';\nimport {OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {Button, ButtonType, ButtonSize} from '@playkit-js/common/dist/components/button';\nimport {Icon, IconSize} from '@playkit-js/common/dist/icon';\nimport {ui} from '@playkit-js/kaltura-player-js';\n// @ts-ignore\nconst {withPlayer} = ui.Components;\nconst {connect} = ui.redux;\nconst {withText, Text} = ui.preacti18n;\nimport * as styles from './small-screen-slate.scss';\n\nconst mapStateToProps = (state: any) => ({\n isMobile: state.shell.isMobile\n});\n\ninterface SmallScreenSlateProps {\n isMobile?: boolean;\n toggledWithEnter?: boolean;\n smallScreenText?: string;\n smallScreenMobileText?: string;\n hideTranscript?: string;\n player?: any;\n onClose: OnClick;\n}\n\nconst translates = {\n smallScreenText: <Text id=\"transcript.small_screen\">To see the transcript, go to full screen</Text>,\n smallScreenMobileText: <Text id=\"transcript.small_screen_mobile\">To see the transcript, rotate the phone</Text>,\n hideTranscript: <Text id=\"transcript.hide_plugin\">Hide Transcript</Text>\n};\n\n@withText(translates)\n@withPlayer\n// @ts-ignore\n@connect(mapStateToProps)\nexport class SmallScreenSlate extends Component<SmallScreenSlateProps> {\n render() {\n const {isMobile, smallScreenMobileText, smallScreenText, onClose, toggledWithEnter, player, hideTranscript} = this.props;\n return (\n <div className={styles.smallScreenWrapper} data-testid=\"transcript_smallScreenWrapper\">\n <Button\n icon={'close'}\n onClick={onClose}\n type={ButtonType.borderless}\n focusOnMount={toggledWithEnter}\n className={styles.closeButton}\n ariaLabel={hideTranscript}\n testId=\"transcript_smallScreenClose\"\n />\n <div className={styles.contentWrapper}>\n {isMobile ? (\n <Icon name={'screenRotation'} size={IconSize.large} />\n ) : (\n <Button\n icon={'expand'}\n onClick={() => player?.enterFullscreen()}\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n ariaLabel={smallScreenText}\n testId=\"transcript_smallScreenFullscreen\"\n />\n )}\n <div className={styles.textContent} data-testid=\"transcript_smallScreenTextContent\">\n {isMobile ? smallScreenMobileText : smallScreenText}\n </div>\n </div>\n </div>\n );\n }\n}\n","export * from './spinner';\n","import {h, Component} from 'preact';\nimport * as styles from './spinner.scss';\n\nconst DEFAULT_LINES = 20;\n\nexport class Spinner extends Component {\n render() {\n return (\n <div className={styles.transcriptLoader}>\n {Array.apply(null, Array(DEFAULT_LINES)).map((el, index) => (\n <svg key={index} width=\"100%\" height=\"50\" viewBox=\"0 0 100% 50\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"16\" y=\"8\" width=\"90%\" height=\"12\" rx=\"4\" fill=\"white\" />\n <rect x=\"16\" y=\"30\" width=\"60%\" height=\"12\" rx=\"4\" fill=\"white\" />\n </svg>\n ))}\n </div>\n );\n }\n}\n","import {TranscriptMenu} from './transcript-menu';\nexport {TranscriptMenu};\n","import {Component, h} from 'preact';\nimport {PopoverMenu} from '../popover-menu';\nimport {PopoverMenuItemData} from '../popover-menu';\n\nimport {Button, ButtonType} from '@playkit-js/common/dist/components/button';\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\n\ninterface TranscriptMenuProps {\n printTranscript?: string;\n downloadTranscript?: string;\n onDownload: () => void;\n onPrint: () => void;\n downloadDisabled?: boolean;\n printDisabled?: boolean;\n isLoading?: boolean;\n}\n\ninterface TranscriptMenuState {\n items: Array<PopoverMenuItemData>;\n}\n\nconst translates = {\n printTranscript: <Text id=\"transcript.print_transcript\">Print current transcript</Text>,\n downloadTranscript: <Text id=\"transcript.download_transcript\">Download current transcript</Text>\n};\n\n@withText(translates)\nclass TranscriptMenu extends Component<TranscriptMenuProps, TranscriptMenuState> {\n constructor(props: TranscriptMenuProps) {\n super();\n\n const {downloadDisabled, onDownload, printDisabled, onPrint, printTranscript, downloadTranscript, isLoading} = props;\n const items = [];\n if (!downloadDisabled) {\n items.push({\n testId: 'download-menu-item',\n label: downloadTranscript!,\n onClick: onDownload,\n isDisabled: isLoading\n });\n }\n\n if (!printDisabled) {\n items.push({\n testId: 'print-menu-item',\n label: printTranscript!,\n onClick: onPrint,\n isDisabled: isLoading\n });\n }\n\n this.state = {items};\n }\n\n render() {\n return this.state.items.length ? (\n <PopoverMenu items={this.state.items}>\n <Button type={ButtonType.borderless} icon={'more'} tabIndex={-1} />\n </PopoverMenu>\n ) : null;\n }\n}\n\nexport {TranscriptMenu};\n","import {h} from 'preact';\n\nexport const ErrorIcon = () => (\n <svg width=\"184px\" height=\"184px\" viewBox=\"0 0 184 184\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlnsXlink=\"http://www.w3.org/1999/xlink\">\n <g id=\"IL/-Error\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <circle id=\"Oval\" fill=\"#333333\" cx=\"92\" cy=\"92\" r=\"92\"></circle>\n <path\n d=\"M86.8445942,41 C98.1281098,41 107.894768,46.3707345 112.610486,54.1896075 L112.772795,54.4651697 C121.905986,54.9935965 129.089492,60.510023 129.089492,67.2372881 C129.089492,67.4828605 129.07992,67.7268193 129.06103,67.9689809 C143.527428,69.1244669 154.803778,78.4637688 154.803778,89.8135593 C154.803778,101.945102 141.920543,111.779661 126.028268,111.779661 C122.218304,111.779661 118.581281,111.214432 115.253251,110.187831 C110.482744,111.936312 104.172429,113 97.2527575,113 C90.6076765,113 84.5245506,112.019057 79.8270144,110.392971 C76.2815407,111.290993 72.4601472,111.779661 68.4772473,111.779661 C49.8799037,111.779661 34.8037779,101.125556 34.8037779,87.9830508 C34.8037779,77.4055553 44.569383,68.439928 58.0766538,65.3432099 C58.0715743,65.1615713 58.069084,64.9793312 58.069084,64.7966102 C58.069084,51.6541053 70.9523188,41 86.8445942,41 Z\"\n id=\"Combined-Shape\"\n fill=\"#1A7080\"></path>\n <path\n d=\"M83.1492849,135.070223 C82.1325765,138.189187 86.1421275,140.443183 88.278329,137.95355 L112.039401,110.261242 C113.708897,108.315531 112.326427,105.307692 109.76264,105.307692 L102.55417,105.307692 L108.530391,92.2483573 C109.439682,90.2613598 107.987631,88 105.802461,88 L90.6745782,88 C89.4360625,88 88.3248534,88.7610908 87.8773011,89.9159147 L79.0065008,112.805338 C78.2445332,114.771451 79.6951774,116.889423 81.8037779,116.889423 L89.0757959,116.889423 L83.1492849,135.070223 Z\"\n id=\"Path-8\"\n fill=\"#333333\"\n fill-rule=\"nonzero\"></path>\n <polygon\n id=\"Path-8\"\n fill=\"#999999\"\n points=\"90.6745782 91 81.8037779 113.889423 93.2090926 113.889423 86.0015674 136 109.76264 108.307692 97.8821035 108.307692 105.802461 91\"></polygon>\n <polygon\n id=\"Path-8\"\n fill=\"#01ACCD\"\n opacity=\"0.5\"\n points=\"90.6745782 91 81.8037779 113.889423 93.2090926 113.889423 86.0015674 136 109.76264 108.307692 97.8821035 108.307692 105.802461 91\"></polygon>\n <path\n d=\"M86.9135883,41 C90.3885178,41 93.7197752,41.5049061 96.8044095,42.4302153 C80.0521708,44.2102049 67.0736479,56.714855 67.0736479,71.8761372 C67.0736479,72.1038764 67.0765763,72.331016 67.0824019,72.557529 C51.5088979,76.3414085 40.1641521,87.1546035 39.7216459,99.9991784 C36.6015945,96.4151247 34.8037779,92.202078 34.8037779,87.6945045 C34.8037779,77.1820037 44.5822685,68.2714617 58.1073807,65.1937351 C58.1024214,65.013137 58.0999284,64.8320391 58.0999284,64.6504633 C58.0999284,51.5886731 71.0002433,41 86.9135883,41 Z\"\n id=\"Combined-Shape\"\n fill=\"#222222\"\n opacity=\"0.3\"></path>\n <path\n d=\"M90.8028945,22 L90.8028945,29.0476864 C90.8028945,29.5999712 91.2506097,30.0476864 91.8028945,30.0476864 C92.3551792,30.0476864 92.8028945,29.5999712 92.8028945,29.0476864 L92.8028945,22 C92.8028945,21.4477153 92.3551792,21 91.8028945,21 C91.2506097,21 90.8028945,21.4477153 90.8028945,22 Z M126.112197,30.8515352 L121.582032,36.2503762 C121.22703,36.6734508 121.282214,37.3042064 121.705288,37.6592082 C122.128363,38.01421 122.759119,37.9590261 123.114121,37.5359514 L127.644286,32.1371104 C127.999288,31.7140357 127.944104,31.0832801 127.521029,30.7282783 C127.097955,30.3732765 126.467199,30.4284605 126.112197,30.8515352 Z M152.431974,58.6783398 L145.491357,59.9021577 C144.947463,59.9980609 144.584295,60.5167193 144.680198,61.0606136 C144.776101,61.6045079 145.294759,61.9676764 145.838654,61.8717732 L152.77927,60.6479553 C153.323164,60.552052 153.686333,60.0333936 153.59043,59.4894993 C153.494526,58.945605 152.975868,58.5824365 152.431974,58.6783398 Z M30.826519,60.6479553 L37.7671352,61.8717732 C38.3110295,61.9676764 38.8296879,61.6045079 38.9255912,61.0606136 C39.0214944,60.5167193 38.6583259,59.9980609 38.1144316,59.9021577 L31.1738154,58.6783398 C30.6299211,58.5824365 30.1112627,58.945605 30.0153594,59.4894993 C29.9194562,60.0333936 30.2826247,60.552052 30.826519,60.6479553 Z M55.9615029,32.1371104 L60.4916684,37.5359514 C60.8466702,37.9590261 61.4774258,38.01421 61.9005005,37.6592082 C62.3235751,37.3042064 62.3787591,36.6734508 62.0237573,36.2503762 L57.4935918,30.8515352 C57.13859,30.4284605 56.5078344,30.3732765 56.0847597,30.7282783 C55.6616851,31.0832801 55.6065011,31.7140357 55.9615029,32.1371104 Z\"\n id=\"Path-9\"\n fill=\"#01ACCD\"\n fill-rule=\"nonzero\"\n opacity=\"0.5\"></path>\n <g id=\"Oval-Copy-5\" opacity=\"0.3\" transform=\"translate(80.000000, 166.000000)\" fill=\"#01ACCD\">\n <path\n d=\"M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,-5.32907052e-15 3.3015873,-5.32907052e-15 C1.47817098,-5.32907052e-15 1.07647224e-12,1.4883507 1.07647224e-12,3.32432432 C1.07647224e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z\"\n id=\"Oval-Copy-3\"></path>\n </g>\n <g id=\"Path-Copy-4\" opacity=\"0.9\" transform=\"translate(100.000000, 146.000000)\" fill=\"#01ACCD\">\n <polygon id=\"Path-Copy-2\" points=\"5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0\"></polygon>\n </g>\n <g id=\"Oval-2\" opacity=\"0.5\" transform=\"translate(39.000000, 115.000000)\" fill=\"#01ACCD\">\n <path\n d=\"M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,0 3.3015873,0 C1.47817098,0 1.08002496e-12,1.4883507 1.08002496e-12,3.32432432 C1.08002496e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z\"\n id=\"Oval\"></path>\n </g>\n <g id=\"Oval-Copy-4\" opacity=\"0.8\" transform=\"translate(60.000000, 139.000000)\" fill=\"#01ACCD\">\n <path\n d=\"M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,1.42108547e-14 3.3015873,1.42108547e-14 C1.47817098,1.42108547e-14 1.08002496e-12,1.4883507 1.08002496e-12,3.32432432 C1.08002496e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z\"\n id=\"Oval-Copy\"></path>\n </g>\n <g id=\"Path-Copy-3\" opacity=\"0.3\" transform=\"translate(31.000000, 142.000000)\" fill=\"#01ACCD\">\n <polygon id=\"Path-Copy\" points=\"5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0\"></polygon>\n </g>\n <g id=\"Oval-Copy-6\" opacity=\"0.6\" transform=\"translate(139.000000, 139.000000)\" fill=\"#01ACCD\">\n <path\n d=\"M3.3015873,6.64864865 C5.12500362,6.64864865 6.6031746,5.16029795 6.6031746,3.32432432 C6.6031746,1.4883507 5.12500362,0 3.3015873,0 C1.47817098,0 1.08713039e-12,1.4883507 1.08713039e-12,3.32432432 C1.08713039e-12,5.16029795 1.47817098,6.64864865 3.3015873,6.64864865 Z M3.3015873,4.64864865 C2.5858248,4.64864865 2,4.05878945 2,3.32432432 C2,2.5898592 2.5858248,2 3.3015873,2 C4.0173498,2 4.6031746,2.5898592 4.6031746,3.32432432 C4.6031746,4.05878945 4.0173498,4.64864865 3.3015873,4.64864865 Z\"\n id=\"Oval-Copy-2\"></path>\n </g>\n <g id=\"Path-2\" opacity=\"0.4\" transform=\"translate(122.000000, 122.000000)\" fill=\"#01ACCD\">\n <polygon id=\"Path\" points=\"5.5 2.5 8 2.5 8 5.5 5.5 5.5 5.5 8 2.5 8 2.5 5.5 0 5.5 0 2.5 2.5 2.5 2.5 0 5.5 0\"></polygon>\n </g>\n </g>\n </svg>\n);\n","export * from './transcript';\n","import {h, Component} from 'preact';\nimport {ui} from '@playkit-js/kaltura-player-js';\nimport {debounce} from '../../utils';\nimport * as styles from './transcript.scss';\nimport {Spinner} from '../spinner';\nimport {Search} from '../search';\nimport {CaptionList} from '../caption-list';\nimport {HighlightedMap, CuePointData} from '../../types';\nimport {ErrorIcon} from './error-icon';\nimport {AutoscrollButton} from '../autoscroll-button';\nimport {TranscriptMenu} from '../transcript-menu';\nimport {SmallScreenSlate} from '../small-screen-slate';\nimport {Button, ButtonType, ButtonSize} from '@playkit-js/common/dist/components/button';\nimport {OnClickEvent, OnClick} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {TranscriptEvents} from '../../events/events';\n\nconst {ENTER, SPACE, TAB} = ui.utils.KeyMap;\nconst {withText, Text} = ui.preacti18n;\n\nconst {SidePanelModes} = ui;\nconst {PLAYER_BREAK_POINTS} = ui.Components;\nconst {connect} = ui.redux;\n\nconst SEARCH_EVENT_DISPATCH_TIMEOUT = 2000;\n\nconst translates = {\n skipTranscript: <Text id=\"transcript.skip_transcript\">Skip transcript</Text>,\n errorTitle: <Text id=\"transcript.whoops\">Whoops!</Text>,\n errorDescripton: <Text id=\"transcript.load_failed\">Failed to load transcript</Text>\n};\n\nexport interface TranscriptProps {\n onSeek(time: number): void;\n onClose: OnClick;\n onRetryLoad: () => void;\n isLoading: boolean;\n hasError: boolean;\n captions: Array<CuePointData>;\n showTime: boolean;\n currentTime: number;\n scrollOffset: number;\n searchDebounceTimeout: number;\n searchNextPrevDebounceTimeout: number;\n videoDuration: number;\n kitchenSinkActive: boolean;\n toggledWithEnter: boolean;\n highlightedMap: HighlightedMap;\n onItemClicked: (n: number) => void;\n skipTranscript?: string;\n errorTitle?: string;\n errorDescripton?: string;\n downloadDisabled: boolean;\n onDownload: () => void;\n printDisabled: boolean;\n onPrint: () => void;\n smallScreen?: boolean;\n expandMode?: string;\n dispatcher: (name: string, payload?: any) => void;\n activeCaptionLanguage: string;\n}\n\ninterface TranscriptState {\n isAutoScrollEnabled: boolean;\n search: string;\n activeSearchIndex: number;\n searchMap: Record<string, Record<string, number>>;\n totalSearchResults: number;\n searchLength: number;\n widgetWidth: number;\n}\n\nconst initialSearch = {\n search: '',\n activeSearchIndex: 1,\n searchMap: {},\n totalSearchResults: 0,\n searchLength: 0\n};\n\nconst SEARCHBAR_HEIGHT = 38; // height of search bar with margins\nconst smallScreen = PLAYER_BREAK_POINTS?.SMALL || 480;\n\nconst mapStateToProps = (state: any, ownProps: Pick<TranscriptProps, 'expandMode'>) => ({\n smallScreen: ownProps.expandMode === SidePanelModes.ALONGSIDE && state.shell.playerClientRect?.width < smallScreen\n});\n\n// @ts-ignore\n@connect(mapStateToProps)\n@withText(translates)\nexport class Transcript extends Component<TranscriptProps, TranscriptState> {\n private _transcriptListRef: HTMLElement | null = null;\n private _captionListRef: any = null;\n private _skipTranscriptButtonRef: HTMLDivElement | null = null;\n private _autoscrollButtonRef: HTMLDivElement | null = null;\n private _preventScrollEvent: boolean = false;\n private _scrollToSearchMatchEnabled: boolean = false;\n private _widgetRootRef: HTMLElement | null = null;\n\n private _widgetHeight: number = 0;\n private _topAutoscrollEdge: number = 0;\n private _bottomAutoscrollEdge: number = 0;\n private _thirdOfWidgetHeight: number = 0;\n\n state: TranscriptState = {\n isAutoScrollEnabled: true,\n widgetWidth: 0,\n ...initialSearch\n };\n\n componentDidUpdate(previousProps: Readonly<TranscriptProps>, previousState: Readonly<TranscriptState>): void {\n const {captions, activeCaptionLanguage} = this.props;\n const {search} = this.state;\n if (previousProps.captions !== captions) {\n // clear search value only if active caption language was switched, otherwise keep previous value\n this.setState({search: previousProps.activeCaptionLanguage !== activeCaptionLanguage ? '' : previousState.search, isAutoScrollEnabled: true});\n }\n\n if (previousState.search !== search || (previousProps.captions !== captions && previousProps.activeCaptionLanguage === activeCaptionLanguage)) {\n // trigger search in case search value has changed, or new captions were added for the same language (preventSeek use-case)\n this._debounced.findSearchMatches();\n }\n\n this._setWidgetSize();\n }\n\n private _enableAutoScroll = (event: OnClickEvent, byKeyboard?: boolean) => {\n event.preventDefault();\n if (this.state.isAutoScrollEnabled) {\n return;\n }\n this._preventScrollEvent = true;\n this.setState({\n isAutoScrollEnabled: true\n });\n if (byKeyboard) {\n this._skipTranscriptButtonRef?.focus();\n }\n };\n\n private _renderScrollToButton = () => {\n const {isAutoScrollEnabled} = this.state;\n return (\n <AutoscrollButton\n setAutoscrollButtonRef={(node: HTMLDivElement) => {\n this._autoscrollButtonRef = node;\n }}\n isAutoScrollEnabled={isAutoScrollEnabled}\n onClick={this._enableAutoScroll}\n />\n );\n };\n\n private _onSearch = (search: string) => {\n this.setState({search});\n };\n\n private _findSearchMatches = () => {\n this.setState((state: TranscriptState) => {\n if (!state.search) {\n return {...initialSearch};\n }\n let index = 0;\n const loSearch = state.search.toLowerCase();\n const searchMap: Record<string, Record<string, number>> = {};\n this.props.captions.forEach((caption: CuePointData) => {\n const text = caption?.text?.toLowerCase() || '';\n const regex = new RegExp(loSearch, 'gi');\n let result;\n const indices = [];\n while ((result = regex.exec(text))) {\n indices.push(result.index);\n }\n indices.forEach((i: number) => {\n index++;\n searchMap[caption.id] = {...searchMap[caption.id], [index]: i};\n });\n });\n this._debounced.searchEventDispatcher(state);\n return {\n searchMap,\n totalSearchResults: index,\n activeSearchIndex: 1,\n searchLength: loSearch.length\n };\n });\n };\n\n private _dispatchSearchEvent = (state: TranscriptState) => {\n this.props.dispatcher(TranscriptEvents.TRANSCRIPT_SEARCH, {search: this.state.search});\n }\n\n private _setActiveSearchIndex = (index: number) => {\n this._scrollToSearchMatchEnabled = true;\n this.setState({\n activeSearchIndex: index,\n isAutoScrollEnabled: false\n });\n this.props.dispatcher(TranscriptEvents.TRANSCRIPT_NAVIGATE_RESULT, {index});\n };\n\n private _getHeaderStyles = (): string => {\n const {widgetWidth} = this.state;\n if (widgetWidth >= 692) {\n return '';\n }\n if (widgetWidth >= 649) {\n return styles.mediumWidth;\n }\n return styles.smallWidth;\n };\n\n private _renderHeader = () => {\n const {toggledWithEnter, kitchenSinkActive, downloadDisabled, onDownload, printDisabled, onPrint, isLoading} = this.props;\n const {search, activeSearchIndex, totalSearchResults} = this.state;\n return (\n <div className={[styles.header, this._getHeaderStyles()].join(' ')} data-testid=\"transcript_header\">\n <Search\n onChange={this._onSearch}\n onSearchIndexChange={this._debounced.onActiveSearchIndexChange}\n value={search}\n activeSearchIndex={activeSearchIndex}\n totalSearchResults={totalSearchResults}\n toggledWithEnter={toggledWithEnter}\n kitchenSinkActive={kitchenSinkActive}\n />\n <TranscriptMenu {...{downloadDisabled, onDownload, printDisabled, onPrint, isLoading}} />\n <div data-testid=\"transcriptCloseButton\">\n <Button\n type={ButtonType.borderless}\n size={ButtonSize.medium}\n disabled={false}\n onClick={this.props.onClose}\n ariaLabel={'Hide Transcript'}\n tooltip={{label: 'Hide Transcript'}}\n icon={'close'}></Button>\n </div>\n </div>\n );\n };\n\n private _handleClick = (event: MouseEvent | KeyboardEvent) => {\n event.preventDefault();\n this._autoscrollButtonRef?.focus();\n };\n\n private _handleKeyDown = (event: KeyboardEvent) => {\n if (event.keyCode === TAB && !event.shiftKey) {\n this.setState({\n isAutoScrollEnabled: false\n });\n const captionRef = this._captionListRef?._currentCaptionRef?._hotspotRef;\n if (captionRef) {\n event.preventDefault();\n captionRef.focus();\n }\n } else if (event.keyCode === ENTER || event.keyCode === SPACE) {\n this._handleClick(event);\n }\n };\n\n private _renderSkipTranscriptButton = () => {\n return (\n <div\n role=\"button\"\n ref={node => {\n this._skipTranscriptButtonRef = node;\n }}\n data-testid=\"transcript_skipButton\"\n className={styles.skipTranscriptButton}\n onKeyDown={this._handleKeyDown}\n onClick={this._handleClick}\n tabIndex={0}>\n {this.props.skipTranscript}\n </div>\n );\n };\n\n private _renderTranscript = () => {\n const {captions, hasError, onRetryLoad, showTime, videoDuration, highlightedMap} = this.props;\n const {isAutoScrollEnabled, searchMap, activeSearchIndex, searchLength} = this.state;\n\n if (hasError) {\n return (\n <div className={styles.errorWrapper}>\n <div className={styles.errorIcon}>\n <ErrorIcon />\n </div>\n <p className={styles.errorMainText}>{this.props.errorTitle}</p>\n <p className={styles.errorDescriptionText}>{this.props.errorDescripton}</p>\n </div>\n );\n }\n\n if (!captions || !captions.length) {\n return null;\n }\n\n const captionProps = {\n showTime,\n searchLength,\n scrollTo: this._scrollTo,\n scrollToSearchMatch: this._scrollToSearchMatch,\n videoDuration\n };\n\n return (\n <CaptionList\n ref={node => {\n this._captionListRef = node;\n }}\n highlightedMap={highlightedMap}\n data={captions}\n onSeek={this._handleSeek}\n isAutoScrollEnabled={isAutoScrollEnabled}\n searchMap={searchMap}\n activeSearchIndex={activeSearchIndex}\n captionProps={captionProps}\n onScroll={this._onScroll}\n widgetWidth={this.state.widgetWidth}\n showItemsIcons={true}\n searchActive={false}\n />\n );\n };\n\n private _setWidgetSize = () => {\n if (this._widgetRootRef) {\n const {width, height, top} = this._widgetRootRef.getBoundingClientRect();\n if (this.state.widgetWidth !== width) {\n this.setState({\n widgetWidth: width\n });\n }\n if (this._widgetHeight !== height) {\n this._widgetHeight = height;\n this._thirdOfWidgetHeight = height / 3;\n this._topAutoscrollEdge = Math.floor(this._thirdOfWidgetHeight + SEARCHBAR_HEIGHT);\n this._bottomAutoscrollEdge = Math.ceil(this._thirdOfWidgetHeight * 2 + SEARCHBAR_HEIGHT);\n }\n }\n };\n\n private _renderLoading = () => {\n return <Spinner />;\n };\n\n private _scrollTo = (el: HTMLElement) => {\n if (this._transcriptListRef) {\n this._preventScrollEvent = true;\n const {top} = el.getBoundingClientRect();\n if (top >= this._topAutoscrollEdge || top <= this._bottomAutoscrollEdge) {\n this._transcriptListRef.scrollTop = el.offsetTop - (this._thirdOfWidgetHeight - SEARCHBAR_HEIGHT);\n }\n }\n };\n\n private _scrollToSearchMatch = (el: HTMLElement) => {\n if (this._transcriptListRef && this._scrollToSearchMatchEnabled) {\n this._scrollToSearchMatchEnabled = false;\n this._preventScrollEvent = true;\n this._transcriptListRef.scrollTop = el.offsetTop - SEARCHBAR_HEIGHT;\n }\n };\n\n private _onScroll = () => {\n if (this._preventScrollEvent) {\n this._preventScrollEvent = false;\n return;\n }\n this.setState({\n isAutoScrollEnabled: false\n });\n };\n\n private _handleSeek = (caption: CuePointData) => {\n const {onSeek} = this.props;\n const selection = window.getSelection();\n if (selection && selection.type !== 'Range') {\n onSeek(caption.startTime);\n }\n };\n\n private _debounced = {\n findSearchMatches: debounce(this._findSearchMatches, this.props.searchDebounceTimeout),\n onActiveSearchIndexChange: debounce(this._setActiveSearchIndex, this.props.searchNextPrevDebounceTimeout),\n searchEventDispatcher: debounce(this._dispatchSearchEvent, SEARCH_EVENT_DISPATCH_TIMEOUT)\n };\n\n render(props: TranscriptProps) {\n const {isLoading, kitchenSinkActive, hasError, smallScreen, toggledWithEnter} = props;\n const renderTranscriptButtons = !(isLoading || hasError);\n return (\n <div\n className={`${styles.root} ${kitchenSinkActive ? '' : styles.hidden}`}\n ref={node => {\n this._widgetRootRef = node;\n }}\n data-testid=\"transcript_root\">\n {smallScreen ? (\n <SmallScreenSlate onClose={this.props.onClose} toggledWithEnter={toggledWithEnter} />\n ) : (\n <div className={styles.globalContainer}>\n {this._renderHeader()}\n\n {renderTranscriptButtons && this._renderSkipTranscriptButton()}\n <div\n className={styles.body}\n onScroll={this._onScroll}\n ref={node => {\n this._transcriptListRef = node;\n }}\n data-testid=\"transcript_list\">\n {isLoading ? this._renderLoading() : this._renderTranscript()}\n </div>\n {renderTranscriptButtons && this._renderScrollToButton()}\n </div>\n )}\n </div>\n );\n }\n}\n","\nexport const TranscriptEvents = {\n TRANSCRIPT_OPEN: 'transcript_open',\n TRANSCRIPT_CLOSE: 'transcript_close',\n TRANSCRIPT_DOWNLOAD: 'transcript_download',\n TRANSCRIPT_PRINT: 'transcript_print',\n TRANSCRIPT_SEARCH: 'transcript_search',\n TRANSCRIPT_NAVIGATE_RESULT: 'transcript_navigate_result',\n};\n","import * as sanitizeHtml from 'sanitize-html';\nimport {h} from 'preact';\nimport {OnClickEvent} from '@playkit-js/common/dist/hoc/a11y-wrapper';\nimport {ui} from '@playkit-js/kaltura-player-js';\nimport {UpperBarManager, SidePanelsManager} from '@playkit-js/ui-managers';\nimport {ObjectUtils, downloadContent, printContent, decodeString} from './utils';\nimport {icons} from './components/icons';\nimport {PluginButton} from './components/plugin-button/plugin-button';\nimport {Transcript} from './components/transcript';\nimport {getConfigValue, isBoolean, makePlainText, prepareCuePoint} from './utils';\nimport {TranscriptConfig, PluginStates, HighlightedMap, CuePointData, ItemTypes, CuePoint} from './types';\nimport {TranscriptEvents} from './events/events';\n\nexport const pluginName: string = 'playkit-js-transcript';\n\nconst {SidePanelModes, SidePanelPositions, ReservedPresetNames, ReservedPresetAreas} = ui;\nconst {withText, Text} = KalturaPlayer.ui.preacti18n;\nconst {get} = ObjectUtils;\n\nconst LOADING_TIMEOUT = 10000;\n\ninterface TimedMetadataEvent {\n payload: {\n cues: Array<CuePoint>;\n };\n}\n\nexport class TranscriptPlugin extends KalturaPlayer.core.BasePlugin {\n static defaultConfig: TranscriptConfig = {\n expandMode: SidePanelModes.ALONGSIDE,\n expandOnFirstPlay: true,\n showTime: true,\n position: SidePanelPositions.RIGHT,\n scrollOffset: 0,\n searchDebounceTimeout: 250,\n searchNextPrevDebounceTimeout: 100,\n downloadDisabled: false,\n printDisabled: false\n };\n private _activeCaptionMapId: string = '';\n private _activeCuePointsMap: HighlightedMap = {};\n private _captionMap: Map<string, Array<CuePointData>> = new Map();\n private _isLoading = false;\n private _loadingTimeoutId?: ReturnType<typeof setTimeout>;\n private _hasError = false;\n private _triggeredByKeyboard = false;\n\n private _transcriptPanel = -1;\n private _transcriptIcon = -1;\n private _pluginState: PluginStates | null = null;\n private _pluginButtonRef: HTMLButtonElement | null = null;\n\n constructor(name: string, player: KalturaPlayerTypes.Player, config: TranscriptConfig) {\n super(name, player, config);\n }\n\n get sidePanelsManager() {\n return this.player.getService('sidePanelsManager') as SidePanelsManager | undefined;\n }\n\n get upperBarManager() {\n return this.player.getService('upperBarManager') as UpperBarManager | undefined;\n }\n\n get cuePointManager() {\n return this.player.getService('kalturaCuepoints') as any;\n }\n\n private get _data() {\n return this._captionMap.get(this._activeCaptionMapId) || [];\n }\n\n loadMedia(): void {\n if (!this.cuePointManager || !this.sidePanelsManager || !this.upperBarManager) {\n this.logger.warn(\"kalturaCuepoints, sidePanelsManager or upperBarManager haven't registered\");\n return;\n }\n if (this.player.isLive()) {\n // transcript plugin is not supported for live entries\n return;\n }\n this._initListeners();\n this.cuePointManager.registerTypes([this.cuePointManager.CuepointType.CAPTION]);\n }\n\n private _initListeners(): void {\n this.eventManager.listenOnce(this.player, this.player.Event.TRACKS_CHANGED, () => {\n if (this._getTextTracks().length) {\n this.eventManager.listen(this.player, this.player.Event.TIMED_METADATA_CHANGE, this._onTimedMetadataChange);\n this.eventManager.listen(this.player, this.player.Event.TIMED_METADATA_ADDED, this._onTimedMetadataAdded);\n this.eventManager.listen(this.player, this.player.Event.TEXT_TRACK_CHANGED, this._handleLanguageChange);\n }\n });\n }\n\n private _initLoading = () => {\n clearTimeout(this._loadingTimeoutId);\n this._isLoading = false;\n this._hasError = false;\n if (!this._captionMap.has(this._activeCaptionMapId)) {\n // turn on loading animation till captions added to TextTrack\n this._isLoading = true;\n this._loadingTimeoutId = setTimeout(() => {\n // display error slate\n this._isLoading = false;\n this._hasError = true;\n this._updateTranscriptPanel();\n }, LOADING_TIMEOUT);\n }\n this._updateTranscriptPanel();\n };\n\n private _handleLanguageChange = () => {\n this._activeCaptionMapId = this._getCaptionMapId();\n this._initLoading();\n };\n\n private _updateTranscriptPanel() {\n if (this._transcriptPanel) {\n this.sidePanelsManager?.update(this._transcriptPanel);\n }\n }\n\n private _onTimedMetadataAdded = ({payload}: TimedMetadataEvent) => {\n const captionData: CuePointData[] = [];\n payload.cues.forEach((cue: CuePoint) => {\n if (cue.metadata.cuePointType === ItemTypes.Caption) {\n captionData.push(prepareCuePoint(cue));\n }\n });\n if (captionData.length) {\n // take metadata from the first caption, as all captions in captionData have the same language and label\n const captionMetadata = payload.cues[0].metadata;\n const captionKey = this._makeCaptionKey(captionMetadata.language, captionMetadata.label);\n this._addCaptionData(captionData, captionKey);\n this._addTranscriptItem();\n }\n };\n\n private _onTimedMetadataChange = ({payload}: TimedMetadataEvent) => {\n const transcriptCuePoints: Array<CuePoint> = payload.cues\n .filter((cue: CuePoint) => {\n return cue.metadata.cuePointType === ItemTypes.Caption;\n })\n .filter((cue, index, array) => {\n // filter out captions that has endTime eq to next caption startTime\n const nextCue = array[index + 1];\n return !nextCue || cue.endTime !== nextCue.startTime;\n });\n this._activeCuePointsMap = {};\n transcriptCuePoints.forEach(cue => {\n this._activeCuePointsMap[cue.id] = true;\n });\n this._updateTranscriptPanel();\n };\n\n private _addCaptionData = (newData: CuePointData[], captionKey: string) => {\n this._activeCaptionMapId = this._getCaptionMapId();\n const oldData = this._captionMap.get(captionKey);\n const newSanitizedData = this._sanitizeCaptions(newData);\n // set the captions data according to the captionKey param\n this._captionMap.set(captionKey, oldData ? [...oldData, ...newSanitizedData] : newSanitizedData);\n this._isLoading = false;\n clearTimeout(this._loadingTimeoutId);\n this._updateTranscriptPanel();\n };\n\n private _getTextTracks = () => {\n return this.player.getTracks(this.player.Track.TEXT) || [];\n };\n\n private _getCaptionMapId = (): string => {\n const allTextTracks = this._getTextTracks();\n const activeTextTrack = allTextTracks.find(track => track.active);\n if (activeTextTrack?.language === 'off') {\n // use 1st captions from text-track list\n return this._makeCaptionKey(allTextTracks[0]?.language, allTextTracks[0]?.label);\n }\n return this._makeCaptionKey(activeTextTrack?.language, activeTextTrack?.label);\n };\n\n private _makeCaptionKey = (language?: string, label?: string): string => {\n return `${language}-${label}`;\n };\n\n private _activatePlugin = (isFirstOpen = false) => {\n this.ready.then(() => {\n this.sidePanelsManager?.activateItem(this._transcriptPanel);\n this._pluginState = PluginStates.OPENED;\n this.upperBarManager?.update(this._transcriptIcon);\n this.dispatchEvent(TranscriptEvents.TRANSCRIPT_OPEN, {auto: isFirstOpen});\n });\n };\n\n private _deactivatePlugin = () => {\n this.ready.then(() => {\n this.sidePanelsManager?.deactivateItem(this._transcriptPanel);\n this.upperBarManager?.update(this._transcriptIcon);\n this.dispatchEvent(TranscriptEvents.TRANSCRIPT_CLOSE);\n });\n };\n\n private _isPluginActive = () => {\n return this.sidePanelsManager!.isItemActive(this._transcriptPanel);\n };\n\n private _handleClickOnPluginIcon = (e: OnClickEvent, byKeyboard?: boolean) => {\n if (this._isPluginActive()) {\n this._triggeredByKeyboard = false;\n this._deactivatePlugin();\n this._pluginState = PluginStates.CLOSED;\n } else {\n this._triggeredByKeyboard = Boolean(byKeyboard);\n this._activatePlugin();\n }\n };\n\n private _sanitizeCaptions = (data: CuePointData[]) => {\n return data.map(caption => ({\n ...caption,\n text: decodeString(\n sanitizeHtml(caption.text || '', {\n allowedAttributes: {},\n allowedTags: []\n })\n )\n }));\n };\n\n private _addTranscriptItem(): void {\n if (Math.max(this._transcriptPanel, this._transcriptIcon) > 0) {\n // transcript panel or icon already exist\n return;\n }\n\n const {\n expandMode,\n position,\n expandOnFirstPlay,\n showTime,\n scrollOffset,\n searchDebounceTimeout,\n searchNextPrevDebounceTimeout,\n downloadDisabled,\n printDisabled\n } = this.config;\n this._transcriptPanel = this.sidePanelsManager!.add({\n label: 'Transcript',\n panelComponent: () => {\n return (\n <Transcript\n showTime={getConfigValue(showTime, isBoolean, true)}\n scrollOffset={getConfigValue(scrollOffset, Number.isInteger, 0)}\n searchDebounceTimeout={getConfigValue(searchDebounceTimeout, Number.isInteger, 250)}\n searchNextPrevDebounceTimeout={getConfigValue(searchNextPrevDebounceTimeout, Number.isInteger, 100)}\n highlightedMap={this._activeCuePointsMap}\n onSeek={this._seekTo}\n onItemClicked={this._seekTo}\n expandMode={this.config.expandMode}\n captions={this._data}\n isLoading={this._isLoading}\n hasError={this._hasError}\n onRetryLoad={this._updateTranscriptPanel}\n currentTime={this.player.currentTime}\n videoDuration={this.player.duration}\n kitchenSinkActive={this._isPluginActive()}\n toggledWithEnter={this._triggeredByKeyboard}\n onClose={this._handleClose}\n downloadDisabled={getConfigValue(downloadDisabled, isBoolean, false)}\n onDownload={this._handleDownload}\n printDisabled={getConfigValue(printDisabled, isBoolean, false)}\n onPrint={this._handlePrint}\n dispatcher={(eventType, payload) => this.dispatchEvent(eventType, payload)}\n activeCaptionLanguage={this._activeCaptionMapId}\n /> as any\n );\n },\n presets: [ReservedPresetNames.Playback, ReservedPresetNames.Live, ReservedPresetNames.Ads],\n position: position,\n expandMode: expandMode === SidePanelModes.ALONGSIDE ? SidePanelModes.ALONGSIDE : SidePanelModes.OVER,\n onDeactivate: this._deactivatePlugin\n }) as number;\n const translates = {\n showTranscript: <Text id=\"transcript.show_plugin\">Show Transcript</Text>,\n hideTranscript: <Text id=\"transcript.hide_plugin\">Hide Transcript</Text>\n };\n this._transcriptIcon = this.upperBarManager!.add({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n displayName: 'Transcript',\n ariaLabel: 'Transcript',\n order: 30,\n svgIcon: {path: icons.PLUGIN_ICON, viewBox: `0 0 ${icons.BigSize} ${icons.BigSize}`},\n onClick: this._handleClickOnPluginIcon as () => void,\n component: withText(translates)((props: {showTranscript: string; hideTranscript: string}) => {\n const isActive = this._isPluginActive();\n const label = isActive ? props.hideTranscript : props.showTranscript;\n return (\n <PluginButton\n isActive={isActive}\n id={pluginName}\n label={label}\n icon={icons.PLUGIN_ICON}\n dataTestId=\"transcript_pluginButton\"\n setRef={this._setPluginButtonRef}\n />\n );\n })\n }) as number;\n\n if ((expandOnFirstPlay && !this._pluginState) || this._pluginState === PluginStates.OPENED) {\n this._activatePlugin(true);\n }\n }\n\n private _setPluginButtonRef = (ref: HTMLButtonElement | null) => {\n this._pluginButtonRef = ref;\n };\n\n private _seekTo = (time: number) => {\n this.player.currentTime = time;\n };\n\n private _handleDownload = () => {\n const {config} = this.player;\n const captions = this._sanitizeCaptions(this._captionMap.get(this._activeCaptionMapId) || []);\n\n if (captions) {\n const entryMetadata = get(config, 'sources.metadata', {});\n const language = this._getCaptionMapId();\n\n downloadContent(makePlainText(captions), `${language}${entryMetadata.name ? `-${entryMetadata.name}` : ''}.txt`);\n }\n this.dispatchEvent(TranscriptEvents.TRANSCRIPT_DOWNLOAD, {videoPosition: this.player.currentTime});\n };\n\n private _handlePrint = () => {\n const captions = this._sanitizeCaptions(this._captionMap.get(this._activeCaptionMapId) || []);\n if (captions) {\n printContent(makePlainText(captions));\n }\n this.dispatchEvent(TranscriptEvents.TRANSCRIPT_PRINT, {videoPosition: this.player.currentTime});\n };\n\n private _handleClose = (e: OnClickEvent, byKeyboard: boolean) => {\n if (byKeyboard) {\n this._pluginButtonRef?.focus();\n }\n this._deactivatePlugin();\n this._pluginState = PluginStates.CLOSED;\n };\n\n static isValid(): boolean {\n return true;\n }\n\n reset(): void {\n this.eventManager.removeAll();\n if (Math.max(this._transcriptPanel, this._transcriptIcon) > 0) {\n this.sidePanelsManager?.remove(this._transcriptPanel);\n this.upperBarManager!.remove(this._transcriptIcon);\n this._transcriptPanel = -1;\n this._transcriptIcon = -1;\n this._pluginButtonRef = null;\n }\n this._captionMap = new Map();\n this._activeCaptionMapId = '';\n this._isLoading = false;\n clearTimeout(this._loadingTimeoutId);\n this._hasError = false;\n this._triggeredByKeyboard = false;\n }\n\n destroy(): void {\n this.reset();\n }\n}\n","export * from './types-ui';\nexport * from './transcript-config';\nexport * from './transcript-item-data';\n","export type HighlightedMap = Record<string, boolean>;\n\nexport interface RawItemData {\n content?: Array<{text: string}>;\n cuePointType?: string;\n label?: string;\n language?: string;\n text?: string;\n}\n\nexport interface CuePointData {\n id: string;\n startTime: number;\n displayTime?: number;\n text: string;\n}\n\nexport enum ItemTypes {\n Caption = 'kalturaCaption'\n}\n\nexport interface CuePoint {\n startTime: number;\n endTime?: number;\n id: string;\n type: string;\n metadata: RawItemData;\n text?: string;\n}\n","export enum PluginStates {\n OPENED = 'opened',\n CLOSED = 'closed'\n}\n","type Procedure = (...args: any[]) => void;\n\ntype Options = {\n isImmediate: boolean;\n};\n\nexport function debounce<F extends Procedure>(\n func: F,\n waitMilliseconds = 50,\n options: Options = {\n isImmediate: false\n }\n): F {\n let timeoutId: any;\n\n return function (this: any, ...args: any[]) {\n const doLater = () => {\n timeoutId = undefined;\n if (!options.isImmediate) {\n func.apply(this, args);\n }\n };\n\n const shouldCallNow = options.isImmediate && timeoutId === undefined;\n\n if (timeoutId !== undefined) {\n clearTimeout(timeoutId);\n }\n\n timeoutId = setTimeout(doLater, waitMilliseconds);\n\n if (shouldCallNow) {\n func.apply(this, args);\n }\n } as any;\n}\n","export * from './utils';\nexport * from './object-utils';\nexport * from './debounce';\n","export class ObjectUtils {\n public static get(obj: Record<string, any>, path: string, defaultValue: any): any {\n function stringToPath(path: string) {\n const output: any = [];\n // Split to an array with dot notation\n path.split('.').forEach(item => {\n // Split to an array with bracket notation\n item.split(/\\[([^}]+)\\]/g).forEach(key => {\n // Push to the new array\n if (key.length > 0) {\n output.push(key);\n }\n });\n });\n return output;\n }\n\n // Get the path as an array\n const pathArray = stringToPath(path);\n\n let current = obj;\n\n // For each item in the path, dig into the object\n for (let i = 0; i < pathArray.length; i++) {\n // If the item isn't found, return the default (or null)\n if (!current[pathArray[i]]) return defaultValue;\n\n // Otherwise, update the current value\n current = current[pathArray[i]];\n }\n\n return current;\n }\n}\n","export const HOUR = 3600; // seconds in 1 hour\n\nexport const toSeconds = (val: any, vtt = false): number => {\n const regex = vtt ? /(\\d+):(\\d{2}):(\\d{2}).(\\d{2,3}|\\d{2})/ : /(\\d+):(\\d{2}):(\\d{2}),((\\d{2,3}|\\d{2}|\\d{1}))?/;\n const parts: any | null[] = regex.exec(val);\n if (parts === null) {\n return 0;\n }\n\n for (var i = 1; i < 5; i++) {\n parts[i] = parseInt(parts[i], 10);\n if (isNaN(parts[i])) {\n parts[i] = 0;\n }\n }\n // hours + minutes + seconds + ms\n return parts[1] * HOUR + parts[2] * 60 + parts[3] + parts[4] / 1000;\n};\n\nconst pad = (number: number) => {\n if (number < 10) {\n return `0${number}`;\n }\n return number;\n};\n\nconst makeHoursString = (seconds: number): string => {\n const hours = Math.floor(seconds / HOUR);\n if (hours >= 1) {\n return `${hours}:`;\n }\n return '';\n};\n\nexport const secondsToTime = (seconds: number, longerThanHour: boolean): string => {\n const date = new Date(0);\n date.setSeconds(seconds);\n return `${longerThanHour ? makeHoursString(seconds) : ''}${pad(date.getUTCMinutes())}:${pad(date.getUTCSeconds())}`;\n};\n\nexport function getConfigValue(value: any, condition: (value: any) => boolean, defaultValue: any) {\n let result = defaultValue;\n if (typeof condition === 'function' && condition(value)) {\n result = value;\n }\n return result;\n}\n\nexport function isBoolean(value: any) {\n return typeof value === 'boolean';\n}\n\nexport function makePlainText(captions: Array<CuePointData>): string {\n return captions.reduce((acc: string, next: CuePointData) => {\n return `${acc.trim()} ${next.text.trim()}`;\n }, '');\n}\n\nimport {CuePointData, CuePoint} from '../types';\n\nexport const decodeString = (content: any): string => {\n if (typeof content !== 'string') {\n return content;\n }\n return content\n .replace(/</gi, '<')\n .replace(/>/gi, '>')\n .replace(/ /gi, ' ')\n .replace(/ /gi, ' ')\n .replace(/&/gi, '&')\n .replace(/"/gi, '\"');\n};\n\nexport const prepareCuePoint = (cuePoint: CuePoint): CuePointData => {\n const {metadata} = cuePoint;\n const itemData: CuePointData = {\n id: cuePoint.id,\n startTime: cuePoint.startTime,\n displayTime: Math.floor(cuePoint.startTime),\n text: decodeString(metadata.text)\n };\n\n return itemData;\n};\n\nexport function downloadContent(content: string, name: string): void {\n const blob = new Blob([content], {type: 'text/plain;charset=utf-8;'});\n const anchor = document.createElement('a');\n const {navigator} = window as any;\n\n if (navigator.msSaveBlob) {\n // IE\n navigator.msSaveOrOpenBlob(blob, name);\n return;\n }\n if (navigator.userAgent.search('Firefox') !== -1) {\n // Firefox\n anchor.style.display = 'none';\n anchor.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(content));\n } else {\n // Chrome\n anchor.setAttribute('href', URL.createObjectURL(blob));\n }\n anchor.setAttribute('target', '_blank');\n anchor.setAttribute('download', name);\n anchor.click();\n anchor.remove();\n}\nexport function printContent(content: string): void {\n const printWindow = window.open('', '', 'width=400,height=600');\n if (printWindow) {\n printWindow.document.write(content);\n printWindow.document.close();\n printWindow.focus();\n printWindow.print();\n printWindow.close();\n }\n}\n","module.exports = KalturaPlayer;","module.exports = KalturaPlayer.ui.preact;","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nc = undefined;","import {pluginName, TranscriptPlugin} from './transcript-plugin';\n\ndeclare var __VERSION__: string;\ndeclare var __NAME__: string;\n\nconst VERSION = __VERSION__;\nconst NAME = __NAME__;\n\nexport {TranscriptEvents} from './events/events';\nexport {TranscriptPlugin as Plugin};\nexport {VERSION, NAME};\n\nKalturaPlayer.core.registerPlugin(pluginName, TranscriptPlugin);\n"],"names":["extendStatics","__extends","this","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","defineProperty","exports","value","Button","ButtonType","ButtonSize","preact_1","classnames","kaltura_player_js_1","a11y_wrapper_1","icon_1","styles","Tooltip","ui","Components","_super","_this","buttonRef","createRef","renderChildren","props","loading","h","Icon","name","size","IconSize","children","renderButton","_a","classNames","button","type","className","disabled","withIcon","icon","iconOnly","buttonProps","ref","tabIndex","ariaLabel","testId","onFocus","onBlur","buttonContent","Fragment","onClick","A11yWrapper","componentDidMount","setRef","current","focusOnMount","focus","render","tooltip","tooltipProps","label","Component","defaultProps","medium","primary","InputField","state","active","_inputRef","setFocus","options","_handleOnChange","e","onChange","target","_onClear","_onFocus","setState","_onBlur","_goToNextSearchResult","searchResults","activeSearchIndex","totalSearchResults","onSearchIndexChange","_goToPrevSearchResult","_renderSearchResults","searchResultsLabel","concat","prevNextWrapper","prevNextButton","prevMatchLabel","width","height","viewBox","fill","xmlns","nextMatchLabel","_renderClearSearch","clearIcon","clearSearchLabel","inputProps","inputElement","onInput","node","placeholder","inputFieldWrapper","join","isKeyboardEvent","utils","KeyMap","ENTER","SPACE","UP","DOWN","LEFT","RIGHT","stopEvent","preventDefault","stopPropagation","KeyboardEvent","offsetX","offsetY","every","offset","onUpKeyPressed","onDownKeyPressed","onLeftKeyPressed","onRightKeyPressed","role","onKeyDown","keyCode","cloneElement","Add","AnswerOnAir","ArrowClose","ArrowOpen","AutoScroll","x","y","rx","Chapter","Close","ClosedCaptions","Document","Download","Excel","Expand","GenericFile","Hotspot","Image","Icons","close_1","print_1","download_1","related_1","message_1","share_1","more_1","quiz_1","switch_1","add_1","minimizedVideo_1","pictureInPicture_1","expand_1","arrowOpen_1","arrowClose_1","chapter_1","hotspot_1","answerOnAir_1","screenRotation_1","autoScroll_1","replay_1","closedCaptions_1","genericFile_1","presentation_1","image_1","document_1","excel_1","pdf_1","zip_1","volumeOn_1","volumeMute_1","spinner_1","close","print","Print","download","related","Related","message","Message","share","Share","more","More","quiz","QuizIcon","switch","Switch","add","minimizedVideo","MinimizedVideo","pictureInPicture","PictureInPicture","expand","arrowOpen","arrowClose","chapter","hotspot","answerOnAir","screenRotation","ScreenRotation","autoScroll","replay","ReplayIcon","closedCaptions","genericFile","presentation","Presentation","image","document","excel","pdf","PDF","zip","Zip","volumeOn","VolumeOn","volumeMute","VolumeMute","spinner","Spinner","opacity","icons_1","iconWrapper","hasOwn","classes","arg","argType","push","isArray","inner","toString","includes","key","module","default","___CSS_LOADER_EXPORT___","id","locals","cssWithMappingToString","list","map","item","content","needLayer","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","sourceURLs","sources","source","sourceRoot","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","val","defaultArrayMerge","element","getKeys","keys","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","_","arrayMerge","sourceIsArray","destination","forEach","propertyIsUnsafe","customMerge","getMergeFunction","mergeObject","all","array","Error","reduce","prev","next","deepmerge_1","attributeNames","elementNames","Map","toLowerCase","__createBinding","o","m","k2","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","__setModuleDefault","v","__importStar","mod","result","ElementType","entities_1","foreignNames_js_1","unencodedElements","Set","replaceQuotes","replace","singleTag","nodes","output","renderNode","Root","Doctype","Directive","Comment","CDATA","elem","renderCdata","Script","Style","Tag","opts","xmlMode","parent","foreignModeIntegrationPoints","has","foreignElements","tag","attribs","attributes","encode","encodeEntities","decodeEntities","encodeXML","escapeAttribute","_b","emptyAttrs","formatAttributes","selfClosingTags","renderTag","Text","escapeText","renderText","isTag","__exportStar","DomHandler","domelementtype_1","node_js_1","defaultOpts","withStartIndices","withEndIndices","callback","elementCB","dom","root","done","tagStack","lastNode","parser","onparserinit","onreset","onend","handleCallback","onerror","error","onclosetag","pop","endIndex","onopentag","Element","addNode","ontext","oncomment","oncommentend","oncdatastart","text","oncdataend","onprocessinginstruction","ProcessingInstruction","previousSibling","startIndex","cloneNode","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","NodeWithChildren","DataNode","Node","set","recursive","namespace","prefix","cloneChildren","clone_1","child","clone_2","clone_3","instruction","sourceCodeLocation","childs","getFeed","stringify_js_1","legacy_js_1","doc","feedRoot","getOneElement","isValidFeed","feed","items","getElementsByTagName","entry","getMediaElements","addConditionally","href","link","description","fetch","pubDate","Date","updated","getAtomFeed","substr","getRssFeed","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","isDefault","_i","MEDIA_KEYS_STRING_1","attrib","MEDIA_KEYS_INT_1","parseInt","expression","tagName","recurse","textContent","trim","obj","prop","uniqueSort","compareDocumentPosition","DocumentPosition","removeSubsets","domhandler_1","nodeA","nodeB","aParents","bParents","unshift","maxIdx","Math","min","idx","DISCONNECTED","sharedParent","siblings","aSibling","bSibling","indexOf","FOLLOWING","CONTAINED_BY","PRECEDING","CONTAINS","lastIndexOf","splice","ancestor","arr","sort","a","relative","getElementsByTagType","getElementById","getElements","testElement","querying_js_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","combineFuncs","compileTest","funcs","test","limit","Infinity","findOne","removeElement","childsIndex","prepend","prependChild","append","appendChild","replaceElement","replacement","sibling","currNext","findAll","existsOne","findOneChild","find","nodeStack","indexStack","shift","some","checked","__importDefault","innerText","getText","getInnerHTML","getOuterHTML","dom_serializer_1","prevElementSibling","nextElementSibling","getName","hasAttrib","getAttributeValue","getSiblings","getParent","getChildren","decodeXML","decodeHTMLStrict","decodeHTMLAttribute","decodeHTML","determineBranch","EntityDecoder","DecodingMode","BinTrieFlags","fromCodePoint","replaceCodePoint","decodeCodePoint","xmlDecodeTree","htmlDecodeTree","decode_data_html_js_1","decode_data_xml_js_1","decode_codepoint_js_1","CharCodes","EntityDecoderState","decode_codepoint_js_2","isNumber","code","ZERO","NINE","decodeTree","emitCodePoint","errors","EntityStart","consumed","treeIndex","excess","decodeMode","Strict","startEntity","write","str","charCodeAt","NUM","NumericStart","stateNumericStart","NamedEntity","stateNamedEntity","NumericDecimal","stateNumericDecimal","NumericHex","stateNumericHex","LOWER_X","addToNumericResult","start","end","base","digitCount","pow","startIdx","char","UPPER_A","UPPER_F","LOWER_A","LOWER_F","emitNumericEntity","lastCp","expectedLength","absenceOfDigitsInNumericCharacterReference","SEMI","missingSemicolonAfterCharacterReference","validateNumericCharacterReference","valueLength","VALUE_LENGTH","max","Attribute","EQUALS","UPPER_Z","LOWER_Z","isAsciiAlphaNumeric","emitNotTerminatedNamedEntity","emitNamedEntityData","getDecoder","ret","decoder","lastIndex","slice","len","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","mid","midVal","htmlDecoder","xmlDecoder","mode","Legacy","decodeMap","codePoint","fromCharCode","encodeNonAsciiHTML","encodeHTML","encode_html_js_1","escape_js_1","htmlReplacer","encodeHTMLTrieRe","regExp","match","lastIdx","exec","index","substring","nextChar","cp","getCodePoint","Number","xmlReplacer","escapeUTF8","escape","xmlCodeMap","getEscaper","regex","codePointAt","c","Uint16Array","split","restoreDiff","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","decode","EncodingMode","EntityLevel","decode_js_1","encode_js_1","XML","level","HTML","UTF8","ASCII","escape_js_2","encode_js_2","decode_js_2","Parser","Tokenizer_js_1","formTags","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","_c","_d","_e","openTagStart","tagname","attribname","attribvalue","stack","foreignContext","buffers","bufferOffset","writeIndex","ended","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","tokenizer","Tokenizer","getSlice","ontextentity","getSectionStart","isVoidElement","onopentagname","emitOpenTag","impliesClose","endOpenTag","isImplied","onopentagend","_f","pos","count","closeCurrentTag","onselfclosingtag","recognizeSelfClosing","isOpenImplied","onattribname","onattribdata","onattribentity","onattribend","quote","onattribute","QuoteType","Double","Single","NoValue","getInstructionName","search","ondeclaration","oncdata","_g","_h","_j","recognizeCDATA","reset","parseComplete","shiftBuffer","chunk","running","pause","resume","parseChunk","State","isWhitespace","Space","NewLine","Tab","FormFeed","CarriageReturn","isEndOfTagSection","Slash","Gt","Zero","Nine","Sequences","Cdata","Uint8Array","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","buffer","sectionStart","baseState","currentSequence","sequenceIndex","trieIndex","trieCurrent","entityResult","entityExcess","entityTrie","parse","finish","getIndex","stateText","Lt","fastForwardTo","BeforeTagName","Amp","BeforeEntity","stateSpecialStartSequence","isEnd","InTagName","stateInTagName","stateInSpecialTag","endOfText","actualIndex","stateInClosingTagName","stateCDATASequence","InCommentLike","InDeclaration","stateInDeclaration","stateInCommentLike","isTagStartChar","LowerA","LowerZ","UpperA","UpperZ","isASCIIAlpha","startSpecial","sequence","SpecialStartSequence","stateBeforeTagName","ExclamationMark","BeforeDeclaration","Questionmark","InProcessingInstruction","lower","BeforeSpecialS","BeforeClosingTagName","BeforeAttributeName","stateBeforeAttributeName","stateBeforeClosingTagName","InClosingTagName","InSpecialComment","AfterClosingTagName","stateAfterClosingTagName","InSpecialTag","InSelfClosingTag","InAttributeName","stateInSelfClosingTag","stateInAttributeName","Eq","AfterAttributeName","stateAfterAttributeName","BeforeAttributeValue","stateBeforeAttributeValue","DoubleQuote","InAttributeValueDq","SingleQuote","InAttributeValueSq","InAttributeValueNq","stateInAttributeValueNoQuotes","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","Unquoted","stateBeforeDeclaration","OpeningSquareBracket","CDATASequence","Dash","BeforeComment","stateInProcessingInstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeEntity","BeforeNumericEntity","InNamedEntity","stateInNamedEntity","emitNamedEntity","masked","allowLegacyEntity","Semi","entityStart","emitPartial","stateBeforeNumericEntity","LowerX","InHexEntity","InNumericEntity","stateInNumericEntity","strict","stateInHexEntity","UpperF","LowerF","isHexDigit","cleanup","shouldContinue","handleTrailingData","DomUtils","parseFeed","createDomStream","parseDOM","parseDocument","DefaultHandler","Parser_js_1","Parser_js_2","domhandler_2","handler","elementCallback","domutils_1","domutils_2","parseFeedDefaultOptions","isObject","isPlainObject","ctor","prot","input","isSpace","collectCharacters","regEx","chars","url","descriptors","currentDescriptor","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","candidates","parseDescriptors","tokenize","charAt","w","lastChar","intVal","floatVal","pError","candidate","parseFloat","console","log","isColorSupported","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","htmlparser","escapeStringRegexp","parseSrcset","postcssParse","mediaTags","vulnerableTags","each","cb","sanitizeHtml","VALID_HTML_ATTRIBUTE_NAME","html","_recursing","tempResult","Frame","that","tagPosition","mediaChildren","updateParentNodeText","updateParentNodeMediaChildren","defaults","htmlParserDefaults","tagAllowed","allowedTags","allowVulnerableTags","warn","nonTextTagsArray","nonTextTags","allowedAttributesMap","allowedAttributesGlobMap","allowedAttributes","globRegex","RegExp","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","allowedClasses","transformTagsMap","transformTagsAll","depth","skipMap","transformMap","skipText","skipTextDepth","transformTags","transform","transFun","simpleTransform","addedText","initializeState","enforceHtmlBoundary","frame","skip","hasText","transformedTag","disallowedTagsMode","isEmptyObject","nestingLimit","allowedScriptHostnames","allowedScriptDomains","nonBooleanAttributes","passedAllowedAttributesMapCheck","newValue","multiple","splitStrArray","values","allowedSchemesAppliedToAttributes","naughtyHref","allowed","parsed","parseUrl","allowedHostname","hostname","allowedDomain","domain","endsWith","isRelativeUrl","allowIframeRelativeUrls","allowedIframeHostnames","allowedIframeDomains","evil","part","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedClassesGlobs","allowedGlobs","clss","glob","parseStyleAttributes","filteredAST","extractedAttributes","attrObject","important","stringifyStyleAttributes","abstractSyntaxTree","allowedStyles","astRules","selectedRule","selector","allowedDeclarationsList","attributeObject","regularExpression","filterDeclarations","filterCss","window","escapeHtml","selfClosing","textFilter","lastFrame","escaped","exclusiveFilter","firstIndex","matches","allowProtocolRelative","scheme","allowedSchemesByTag","allowedSchemes","startsWith","URL","protocol","img","newTagName","newAttribs","merge","string","Container","AtRule","super","proxyOf","registerAtRule","Rule","isClean","my","Declaration","cleanSource","markDirtyUp","normalize","last","markDirty","cleanRaws","keepBetween","iterator","getIterator","indexes","condition","lastEach","getProxyProcessor","args","toProxy","other","insertAfter","exist","existIndex","reverse","insertBefore","sample","removeChild","rebuild","raws","before","first","removeAll","replaceValues","pattern","walkDecls","decl","fast","walk","addToError","walkAtRules","walkComments","walkRules","registerParse","dependant","registerRule","registerRoot","pico","terminalHighlight","CssSyntaxError","line","column","file","plugin","reason","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","aside","lines","maxWidth","number","gutter","spacing","variable","LazyResult","Processor","toResult","registerLazyResult","registerProcessor","PreviousMap","Input","fromJSON","json","inputs","ownInputs","inputHydrated","inputId","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","isAbsolute","resolve","nanoid","fromOffsetCache","sourceMapAvailable","Boolean","pathAvailable","hasBOM","from","consumer","mapResolve","fromOffset","col","origin","lastLine","lineToIndex","prevIndex","l","to","fromUrl","originalPositionFor","mapFile","sourceContentFor","toJSON","consumerCache","registerInput","MapGenerator","Result","TYPE_TO_CLASS_NAME","atrule","comment","rule","PLUGIN_PROPS","AtRuleExit","CommentExit","DeclarationExit","DocumentExit","Once","OnceExit","postcssPlugin","prepare","RootExit","RuleExit","NOT_VISITORS","isPromise","then","getEvents","toStack","events","eventIndex","visitorIndex","visitors","cleanMarks","postcss","processor","stringified","processed","inline","syntax","helpers","plugins","async","Promise","reject","processing","runAsync","catch","onRejected","finally","onFinally","getAsyncError","handleError","lastPlugin","postcssVersion","err","prepareVisitors","listeners","event","version","hasListener","promise","runOnRoot","visitTick","visitor","roots","subRoot","sync","stringifier","generate","walkSync","visitSync","onFulfilled","visit","warnings","messages","toStringTag","registerPostcss","comma","space","separators","func","inQuote","prevQuote","letter","dirname","sep","cssString","mapOpts","usesFileUrls","absolute","memoizedFileURLs","memoizedPaths","memoizedURLs","addAnnotation","isInline","toBase64","annotation","outputFile","eol","applyPrevMaps","previous","toUrl","path","sourcesContent","applySourceMap","clearAnnotation","isMap","generateMap","generateString","fromSourceMap","addMapping","generated","original","isSourcesContent","setSourcesContent","isAnnotation","noSource","mapping","sourcePath","semicolon","withContent","cached","previousMaps","already","toFileUrl","setSourceContent","Buffer","fileURL","encodeURI","NoWorkResult","_processor","_css","_opts","_map","self","generatedCSS","generatedMap","_root","Stringifier","cloned","j","postcssNode","after","overrides","between","cloneAfter","cloneBefore","rangeBy","positionBy","stringRepresentation","positionInside","word","raw","defaultType","remove","replaceWith","bookmark","foundSelf","fixed","emitInputs","inputsNextIndex","proxyCache","Proxy","SAFE_COMMENT_NEIGHBOR","empty","spaces","customProperty","createTokenizer","token","unnamedAtrule","init","open","params","brackets","endOfFile","nextToken","getPosition","spacesAndCommentsFromEnd","afterName","spacesAndCommentsFromStart","checkMissedSemicolon","tokens","colon","founded","entries","doubleColon","left","right","findLastWithPosition","unknownWord","firstSpaces","precheckMissedSemicolon","stringFrom","spacesFromEnd","cache","emptyRule","unexpectedClose","endFile","unclosedBlock","position","freeSemicolon","ownSemicolon","bracket","back","unclosedBracket","clean","lastTokenType","Warning","initializer","warningPrinted","creator","process","env","LANG","transformer","processOpts","pluginOpts","atRule","existsSync","readFileSync","loadAnnotation","startWith","loadMap","decodeInline","decodeURIComponent","lastMatch","atob","encoding","getAnnotationURL","sourceMapString","mappings","_mappings","sections","comments","loadFile","prevPath","normalized","use","warning","ignore","selectors","DEFAULT_RAW","beforeClose","beforeComment","beforeDecl","beforeOpen","beforeRule","commentLeft","commentRight","emptyBody","indent","builder","rawValue","block","beforeAfter","detect","buf","step","body","own","rawCache","method","toUpperCase","rawBeforeClose","rawBeforeComment","rawBeforeDecl","rawBeforeOpen","rawBeforeRule","rawColon","rawEmptyBody","rawIndent","parts","rawSemicolon","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","escapePos","currentToken","valueOf","ignoreErrors","returned","unclosed","what","ignoreUnclosed","controlChar","printed","range","opt","api","memo","getTarget","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","stylesInDom","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","sourceMap","references","updater","addStyle","insertStyleElement","style","createElement","nonce","setAttribute","insert","textStore","replaceText","applyToSingletonTag","styleSheet","cssText","cssNode","createTextNode","childNodes","applyToTag","removeAttribute","firstChild","singleton","singletonCounter","update","styleIndex","bind","parentNode","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","KalturaPlayer","preacti18n","withText","translates","autoScrollLabel","AutoscrollButton","isAutoScrollEnabled","setAutoscrollButtonRef","autoscrollRoot","autoscrollButton","autoscrollButtonVisible","END","HOME","_currentCaptionRef","_firstCaptionRef","_lastCaptionRef","_handleClick","caption","onSeek","_getShouldScroll","captionId","highlightedMap","_getShouldScrollToSearchMatch","searchMap","_getSearchProps","captionProps","searchProps","indexMap","searchLength","_getCaptionProps","captionData","showTime","scrollTo","scrollToSearchMatch","highlighted","longerThanHour","videoDuration","HOUR","shouldScroll","shouldScrollToSearchMatch","searchCaption","_handleKeyUp","_hotspotRef","shouldComponentUpdate","nextProps","isSearchCaption","transcriptWrapper","onKeyUp","Caption","CaptionList","_gotoCurrentTime","_renderText","indexArray","captionSpan","el","preSelected","selected","postSelected","activeSearch","highlightSearch","componentDidUpdate","startTime","isHighlighted","time","secondsToTime","captionA11yProps","ariaCurrent","captionTime","captionContent","withoutTime","icons","PLUGIN_ICON","BigSize","MediumSize","SmallSize","components","PluginButton","isActive","dataTestId","upperBarIcon","pluginButton","PopoverMenu","withEventManager","Event","moreOptionsLabel","_controlElementRef","_popoverElementRef","_itemsRefMap","handleMouseEvent","contains","closePopover","handleKeydownEvent","eventTarget","isOpen","_handleUpKeyPressed","currentIndex","_getItemRef","_handleDownKeyPressed","togglePopover","focusFirstItem","firstNonDisabledItem","findIndex","isDisabled","_setItemRef","eventManager","listen","componentWillUnmount","popoverMenuContent","popoverContainer","popoverAnchorContainer","popoverAnchor","popoverComponent","popoverMenuItem","popoverMenuItemDisabled","_inputField","kitchenSinkActive","previousProps","toggledWithEnter","preventScroll","searchLabel","Search","fields","total","SearchComponent","withPlayer","connect","redux","mapStateToProps","isMobile","shell","smallScreenText","smallScreenMobileText","hideTranscript","onClose","player","smallScreenWrapper","borderless","closeButton","contentWrapper","large","enterFullscreen","SmallScreenSlate","transcriptLoader","TranscriptMenu","printTranscript","downloadTranscript","downloadDisabled","onDownload","printDisabled","onPrint","isLoading","ErrorIcon","xmlnsXlink","stroke","cx","cy","r","points","SidePanelModes","PLAYER_BREAK_POINTS","skipTranscript","errorTitle","errorDescripton","initialSearch","SEARCHBAR_HEIGHT","smallScreen","SMALL","ownProps","expandMode","ALONGSIDE","playerClientRect","_transcriptListRef","_captionListRef","_skipTranscriptButtonRef","_autoscrollButtonRef","_preventScrollEvent","_scrollToSearchMatchEnabled","_widgetRootRef","_widgetHeight","_topAutoscrollEdge","_bottomAutoscrollEdge","_thirdOfWidgetHeight","widgetWidth","_enableAutoScroll","byKeyboard","_renderScrollToButton","_onSearch","_findSearchMatches","loSearch","captions","indices","_debounced","searchEventDispatcher","_dispatchSearchEvent","dispatcher","TranscriptEvents","TRANSCRIPT_SEARCH","_setActiveSearchIndex","TRANSCRIPT_NAVIGATE_RESULT","_getHeaderStyles","mediumWidth","smallWidth","_renderHeader","header","onActiveSearchIndexChange","_handleKeyDown","shiftKey","captionRef","_renderSkipTranscriptButton","skipTranscriptButton","_renderTranscript","hasError","errorWrapper","errorIcon","errorMainText","errorDescriptionText","_scrollTo","_scrollToSearchMatch","_handleSeek","onScroll","_onScroll","showItemsIcons","searchActive","_setWidgetSize","getBoundingClientRect","floor","ceil","_renderLoading","scrollTop","offsetTop","selection","getSelection","findSearchMatches","debounce","searchDebounceTimeout","searchNextPrevDebounceTimeout","previousState","activeCaptionLanguage","renderTranscriptButtons","globalContainer","Transcript","TRANSCRIPT_OPEN","TRANSCRIPT_CLOSE","TRANSCRIPT_DOWNLOAD","TRANSCRIPT_PRINT","pluginName","SidePanelPositions","ReservedPresetNames","ObjectUtils","config","_activeCaptionMapId","_activeCuePointsMap","_captionMap","_isLoading","_hasError","_triggeredByKeyboard","_transcriptPanel","_transcriptIcon","_pluginState","_pluginButtonRef","_initLoading","clearTimeout","_loadingTimeoutId","setTimeout","_updateTranscriptPanel","_handleLanguageChange","_getCaptionMapId","_onTimedMetadataAdded","payload","cues","cue","metadata","cuePointType","ItemTypes","prepareCuePoint","captionMetadata","captionKey","_makeCaptionKey","language","_addCaptionData","_addTranscriptItem","_onTimedMetadataChange","transcriptCuePoints","nextCue","endTime","newData","oldData","newSanitizedData","_sanitizeCaptions","_getTextTracks","getTracks","Track","TEXT","allTextTracks","activeTextTrack","track","_activatePlugin","isFirstOpen","ready","sidePanelsManager","activateItem","PluginStates","OPENED","upperBarManager","dispatchEvent","auto","_deactivatePlugin","deactivateItem","_isPluginActive","isItemActive","_handleClickOnPluginIcon","CLOSED","decodeString","_setPluginButtonRef","_seekTo","currentTime","_handleDownload","entryMetadata","downloadContent","makePlainText","videoPosition","_handlePrint","printContent","_handleClose","getService","loadMedia","cuePointManager","isLive","_initListeners","registerTypes","CuepointType","CAPTION","logger","listenOnce","TRACKS_CHANGED","TIMED_METADATA_CHANGE","TIMED_METADATA_ADDED","TEXT_TRACK_CHANGED","expandOnFirstPlay","scrollOffset","panelComponent","getConfigValue","isBoolean","isInteger","onItemClicked","_data","onRetryLoad","duration","eventType","presets","Playback","Live","Ads","OVER","onDeactivate","showTranscript","displayName","order","svgIcon","component","isValid","destroy","defaultConfig","core","BasePlugin","TranscriptPlugin","waitMilliseconds","timeoutId","isImmediate","doLater","shouldCallNow","defaultValue","pathArray","stringToPath","toSeconds","vtt","isNaN","pad","seconds","date","setSeconds","hours","makeHoursString","getUTCMinutes","getUTCSeconds","acc","cuePoint","displayTime","blob","Blob","anchor","navigator","msSaveBlob","msSaveOrOpenBlob","userAgent","display","createObjectURL","click","printWindow","preact","random","customAlphabet","alphabet","defaultSize","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","nc","VERSION","NAME","registerPlugin"],"sourceRoot":""}
|