/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
(self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] = self["webpackChunk_JUPYTERLAB_CORE_OUTPUT"] || []).push([["vendors-node_modules_jupyterlab_apputils_lib_index_js"],{

/***/ "../node_modules/@jupyterlab/apputils/lib/clipboard.js":
/*!*************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/clipboard.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Clipboard: () => (/* binding */ Clipboard)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * The clipboard interface.\n */\nvar Clipboard;\n(function (Clipboard) {\n    /**\n     * Get the application clipboard instance.\n     */\n    function getInstance() {\n        return Private.instance;\n    }\n    Clipboard.getInstance = getInstance;\n    /**\n     * Set the application clipboard instance.\n     */\n    function setInstance(value) {\n        Private.instance = value;\n    }\n    Clipboard.setInstance = setInstance;\n    /**\n     * Copy text to the system clipboard.\n     *\n     * #### Notes\n     * This can only be called in response to a user input event.\n     */\n    function copyToSystem(clipboardData) {\n        const node = document.body;\n        const handler = (event) => {\n            const data = event.clipboardData || window.clipboardData;\n            if (typeof clipboardData === 'string') {\n                data.setData('text', clipboardData);\n            }\n            else {\n                clipboardData.types().map((mimeType) => {\n                    data.setData(mimeType, clipboardData.getData(mimeType));\n                });\n            }\n            event.preventDefault();\n            node.removeEventListener('copy', handler);\n        };\n        node.addEventListener('copy', handler);\n        generateEvent(node);\n    }\n    Clipboard.copyToSystem = copyToSystem;\n    /**\n     * Generate a clipboard event on a node.\n     *\n     * @param node - The element on which to generate the event.\n     *\n     * @param type - The type of event to generate.\n     *   `'paste'` events cannot be programmatically generated.\n     *\n     * #### Notes\n     * This can only be called in response to a user input event.\n     */\n    function generateEvent(node, type = 'copy') {\n        // http://stackoverflow.com/a/5210367\n        // Identify selected text.\n        let sel = window.getSelection();\n        // Save the current selection.\n        const savedRanges = [];\n        for (let i = 0, len = (sel === null || sel === void 0 ? void 0 : sel.rangeCount) || 0; i < len; ++i) {\n            savedRanges[i] = sel.getRangeAt(i).cloneRange();\n        }\n        // Select the node content.\n        const range = document.createRange();\n        range.selectNodeContents(node);\n        if (sel) {\n            sel.removeAllRanges();\n            sel.addRange(range);\n        }\n        // Execute the command.\n        document.execCommand(type);\n        // Restore the previous selection.\n        sel = window.getSelection();\n        if (sel) {\n            sel.removeAllRanges();\n            for (let i = 0, len = savedRanges.length; i < len; ++i) {\n                sel.addRange(savedRanges[i]);\n            }\n        }\n    }\n    Clipboard.generateEvent = generateEvent;\n})(Clipboard || (Clipboard = {}));\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n    /**\n     * The application clipboard instance.\n     */\n    Private.instance = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.MimeData();\n})(Private || (Private = {}));\n//# sourceMappingURL=clipboard.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/clipboard.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/commandlinker.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/commandlinker.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   CommandLinker: () => (/* binding */ CommandLinker)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n/**\n * The command data attribute added to nodes that are connected.\n */\nconst COMMAND_ATTR = 'commandlinker-command';\n/**\n * The args data attribute added to nodes that are connected.\n */\nconst ARGS_ATTR = 'commandlinker-args';\n/**\n * A static class that provides helper methods to generate clickable nodes that\n * execute registered commands with pre-populated arguments.\n */\nclass CommandLinker {\n    /**\n     * Instantiate a new command linker.\n     */\n    constructor(options) {\n        this._isDisposed = false;\n        this._commands = options.commands;\n        document.body.addEventListener('click', this);\n    }\n    /**\n     * Test whether the linker is disposed.\n     */\n    get isDisposed() {\n        return this._isDisposed;\n    }\n    /**\n     * Dispose of the resources held by the linker.\n     */\n    dispose() {\n        if (this.isDisposed) {\n            return;\n        }\n        this._isDisposed = true;\n        document.body.removeEventListener('click', this);\n    }\n    /**\n     * Connect a command/argument pair to a given node so that when it is clicked,\n     * the command will execute.\n     *\n     * @param node - The node being connected.\n     *\n     * @param command - The command ID to execute upon click.\n     *\n     * @param args - The arguments with which to invoke the command.\n     *\n     * @returns The same node that was passed in, after it has been connected.\n     *\n     * #### Notes\n     * Only `click` events will execute the command on a connected node. So, there\n     * are two considerations that are relevant:\n     * 1. If a node is connected, the default click action will be prevented.\n     * 2. The `HTMLElement` passed in should be clickable.\n     */\n    connectNode(node, command, args) {\n        node.setAttribute(`data-${COMMAND_ATTR}`, command);\n        if (args !== void 0) {\n            node.setAttribute(`data-${ARGS_ATTR}`, JSON.stringify(args));\n        }\n        return node;\n    }\n    /**\n     * Disconnect a node that has been connected to execute a command on click.\n     *\n     * @param node - The node being disconnected.\n     *\n     * @returns The same node that was passed in, after it has been disconnected.\n     *\n     * #### Notes\n     * This method is safe to call multiple times and is safe to call on nodes\n     * that were never connected.\n     *\n     * This method can be called on rendered virtual DOM nodes that were populated\n     * using the `populateVNodeDataset` method in order to disconnect them from\n     * executing their command/argument pair.\n     */\n    disconnectNode(node) {\n        node.removeAttribute(`data-${COMMAND_ATTR}`);\n        node.removeAttribute(`data-${ARGS_ATTR}`);\n        return node;\n    }\n    /**\n     * Handle the DOM events for the command linker helper class.\n     *\n     * @param event - The DOM event sent to the class.\n     *\n     * #### Notes\n     * This method implements the DOM `EventListener` interface and is\n     * called in response to events on the panel's DOM node. It should\n     * not be called directly by user code.\n     */\n    handleEvent(event) {\n        switch (event.type) {\n            case 'click':\n                this._evtClick(event);\n                break;\n            default:\n                return;\n        }\n    }\n    /**\n     * Populate the `dataset` attribute within the collection of attributes used\n     * to instantiate a virtual DOM node with the values necessary for its\n     * rendered DOM node to respond to clicks by executing a command/argument\n     * pair.\n     *\n     * @param command - The command ID to execute upon click.\n     *\n     * @param args - The arguments with which to invoke the command.\n     *\n     * @returns A `dataset` collection for use within virtual node attributes.\n     *\n     * #### Notes\n     * The return value can be used on its own as the value for the `dataset`\n     * attribute of a virtual element, or it can be added to an existing `dataset`\n     * as in the example below.\n     *\n     * #### Example\n     * ```typescript\n     * let command = 'some:command-id';\n     * let args = { alpha: 'beta' };\n     * let anchor = h.a({\n     *   className: 'some-class',\n     *   dataset: {\n     *     foo: '1',\n     *     bar: '2',\n     *     ../...linker.populateVNodeDataset(command, args)\n     *   }\n     * }, 'some text');\n     * ```\n     */\n    populateVNodeDataset(command, args) {\n        let dataset;\n        if (args !== void 0) {\n            dataset = { [ARGS_ATTR]: JSON.stringify(args), [COMMAND_ATTR]: command };\n        }\n        else {\n            dataset = { [COMMAND_ATTR]: command };\n        }\n        return dataset;\n    }\n    /**\n     * The global click handler that deploys commands/argument pairs that are\n     * attached to the node being clicked.\n     */\n    _evtClick(event) {\n        let target = event.target;\n        while (target && target.parentElement) {\n            if (target.hasAttribute(`data-${COMMAND_ATTR}`)) {\n                event.preventDefault();\n                const command = target.getAttribute(`data-${COMMAND_ATTR}`);\n                if (!command) {\n                    return;\n                }\n                const argsValue = target.getAttribute(`data-${ARGS_ATTR}`);\n                let args = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.JSONExt.emptyObject;\n                if (argsValue) {\n                    args = JSON.parse(argsValue);\n                }\n                void this._commands.execute(command, args);\n                return;\n            }\n            target = target.parentElement;\n        }\n    }\n}\n//# sourceMappingURL=commandlinker.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/commandlinker.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/commandpalette.js":
/*!******************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/commandpalette.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ModalCommandPalette: () => (/* binding */ ModalCommandPalette)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_1__);\n/* -----------------------------------------------------------------------------\n| Copyright (c) Jupyter Development Team.\n| Distributed under the terms of the Modified BSD License.\n|----------------------------------------------------------------------------*/\n\n\n/**\n * Class name identifying the input group with search icon.\n */\nconst SEARCH_ICON_GROUP_CLASS = 'jp-SearchIconGroup';\n/**\n * Wrap the command palette in a modal to make it more usable.\n */\nclass ModalCommandPalette extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__.Panel {\n    constructor(options) {\n        super();\n        this.addClass('jp-ModalCommandPalette');\n        this.id = 'modal-command-palette';\n        this.palette = options.commandPalette;\n        this._commandPalette.commands.commandExecuted.connect(() => {\n            if (this.isAttached && this.isVisible) {\n                this.hideAndReset();\n            }\n        });\n        // required to properly receive blur and focus events;\n        // selection of items with mouse may not work without this.\n        this.node.tabIndex = 0;\n    }\n    get palette() {\n        return this._commandPalette;\n    }\n    set palette(value) {\n        this._commandPalette = value;\n        if (!this.searchIconGroup) {\n            this._commandPalette.inputNode.insertAdjacentElement('afterend', this.createSearchIconGroup());\n        }\n        this.addWidget(value);\n        this.hideAndReset();\n    }\n    attach() {\n        _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__.Widget.attach(this, document.body);\n    }\n    detach() {\n        _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__.Widget.detach(this);\n    }\n    /**\n     * Hide the modal command palette and reset its search.\n     */\n    hideAndReset() {\n        this.hide();\n        this._commandPalette.inputNode.value = '';\n        this._commandPalette.refresh();\n    }\n    /**\n     * Handle incoming events.\n     */\n    handleEvent(event) {\n        switch (event.type) {\n            case 'keydown':\n                this._evtKeydown(event);\n                break;\n            case 'blur': {\n                // if the focus shifted outside of this DOM element, hide and reset.\n                if (\n                // focus went away from child element\n                this.node.contains(event.target) &&\n                    // and it did NOT go to another child element but someplace else\n                    !this.node.contains(event.relatedTarget)) {\n                    event.stopPropagation();\n                    this.hideAndReset();\n                }\n                break;\n            }\n            case 'contextmenu':\n                event.preventDefault();\n                event.stopPropagation();\n                break;\n            default:\n                break;\n        }\n    }\n    /**\n     * Find the element with search icon group.\n     */\n    get searchIconGroup() {\n        return this._commandPalette.node.getElementsByClassName(SEARCH_ICON_GROUP_CLASS)[0];\n    }\n    /**\n     * Create element with search icon group.\n     */\n    createSearchIconGroup() {\n        const inputGroup = document.createElement('div');\n        inputGroup.classList.add(SEARCH_ICON_GROUP_CLASS);\n        _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.searchIcon.render(inputGroup);\n        return inputGroup;\n    }\n    /**\n     *  A message handler invoked on an `'after-attach'` message.\n     */\n    onAfterAttach(msg) {\n        this.node.addEventListener('keydown', this, true);\n        this.node.addEventListener('contextmenu', this, true);\n    }\n    /**\n     *  A message handler invoked on an `'after-detach'` message.\n     */\n    onAfterDetach(msg) {\n        this.node.removeEventListener('keydown', this, true);\n        this.node.removeEventListener('contextmenu', this, true);\n    }\n    onBeforeHide(msg) {\n        document.removeEventListener('blur', this, true);\n    }\n    onAfterShow(msg) {\n        document.addEventListener('blur', this, true);\n    }\n    /**\n     * A message handler invoked on an `'activate-request'` message.\n     */\n    onActivateRequest(msg) {\n        if (this.isAttached) {\n            this.show();\n            this._commandPalette.activate();\n        }\n    }\n    /**\n     * Handle the `'keydown'` event for the widget.\n     */\n    _evtKeydown(event) {\n        // Check for escape key\n        switch (event.keyCode) {\n            case 27: // Escape.\n                event.stopPropagation();\n                event.preventDefault();\n                this.hideAndReset();\n                break;\n            default:\n                break;\n        }\n    }\n}\n//# sourceMappingURL=commandpalette.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/commandpalette.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/dialog.js":
/*!**********************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/dialog.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Dialog: () => (/* binding */ Dialog),\n/* harmony export */   showDialog: () => (/* binding */ showDialog),\n/* harmony export */   showErrorMessage: () => (/* binding */ showErrorMessage)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @lumino/messaging */ \"webpack/sharing/consume/default/@lumino/messaging/@lumino/messaging\");\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_lumino_messaging__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _widgettracker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./widgettracker */ \"../node_modules/@jupyterlab/apputils/lib/widgettracker.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n\n\n/**\n * Create and show a dialog.\n *\n * @param options - The dialog setup options.\n *\n * @returns A promise that resolves with whether the dialog was accepted.\n */\nfunction showDialog(options = {}) {\n    const dialog = new Dialog(options);\n    return dialog.launch();\n}\n/**\n * Show an error message dialog.\n *\n * @param title - The title of the dialog box.\n *\n * @param error - the error to show in the dialog body (either a string\n *   or an object with a string `message` property).\n */\nfunction showErrorMessage(title, error, buttons) {\n    const trans = Dialog.translator.load('jupyterlab');\n    buttons = buttons !== null && buttons !== void 0 ? buttons : [Dialog.okButton({ label: trans.__('Dismiss') })];\n    console.warn('Showing error:', error);\n    // Cache promises to prevent multiple copies of identical dialogs showing\n    // to the user.\n    const body = typeof error === 'string' ? error : error.message;\n    const key = title + '----' + body;\n    const promise = Private.errorMessagePromiseCache.get(key);\n    if (promise) {\n        return promise;\n    }\n    else {\n        const dialogPromise = showDialog({\n            title: title,\n            body: body,\n            buttons: buttons\n        }).then(() => {\n            Private.errorMessagePromiseCache.delete(key);\n        }, error => {\n            // TODO: Use .finally() above when supported\n            Private.errorMessagePromiseCache.delete(key);\n            throw error;\n        });\n        Private.errorMessagePromiseCache.set(key, dialogPromise);\n        return dialogPromise;\n    }\n}\n/**\n * A modal dialog widget.\n */\nclass Dialog extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget {\n    /**\n     * Create a dialog panel instance.\n     *\n     * @param options - The dialog setup options.\n     */\n    constructor(options = {}) {\n        const dialogNode = document.createElement('dialog');\n        dialogNode.ariaModal = 'true';\n        super({ node: dialogNode });\n        this._hasValidationErrors = false;\n        this._ready = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate();\n        this._focusNodeSelector = '';\n        this.addClass('jp-Dialog');\n        const normalized = Private.handleOptions(options);\n        const renderer = normalized.renderer;\n        this._host = normalized.host;\n        this._defaultButton = normalized.defaultButton;\n        this._buttons = normalized.buttons;\n        this._hasClose = normalized.hasClose;\n        this._buttonNodes = this._buttons.map(b => renderer.createButtonNode(b));\n        this._checkboxNode = null;\n        this._lastMouseDownInDialog = false;\n        if (normalized.checkbox) {\n            const { label = '', caption = '', checked = false, className = '' } = normalized.checkbox;\n            this._checkboxNode = renderer.createCheckboxNode({\n                label,\n                caption: caption !== null && caption !== void 0 ? caption : label,\n                checked,\n                className\n            });\n        }\n        const layout = (this.layout = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.PanelLayout());\n        const content = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Panel();\n        content.addClass('jp-Dialog-content');\n        if (typeof options.body === 'string') {\n            content.addClass('jp-Dialog-content-small');\n            dialogNode.ariaLabel = [normalized.title, options.body].join(' ');\n        }\n        layout.addWidget(content);\n        this._body = normalized.body;\n        const header = renderer.createHeader(normalized.title, () => this.reject(), options);\n        const body = renderer.createBody(normalized.body);\n        const footer = renderer.createFooter(this._buttonNodes, this._checkboxNode);\n        content.addWidget(header);\n        content.addWidget(body);\n        content.addWidget(footer);\n        this._bodyWidget = body;\n        this._primary = this._buttonNodes[this._defaultButton];\n        this._focusNodeSelector = options.focusNodeSelector;\n        // Add new dialogs to the tracker.\n        void Dialog.tracker.add(this);\n    }\n    /**\n     * A promise that resolves when the Dialog first rendering is done.\n     */\n    get ready() {\n        return this._ready.promise;\n    }\n    /**\n     * Dispose of the resources used by the dialog.\n     */\n    dispose() {\n        const promise = this._promise;\n        if (promise) {\n            this._promise = null;\n            promise.reject(void 0);\n            _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__.ArrayExt.removeFirstOf(Private.launchQueue, promise.promise);\n        }\n        super.dispose();\n    }\n    /**\n     * Launch the dialog as a modal window.\n     *\n     * @returns a promise that resolves with the result of the dialog.\n     */\n    launch() {\n        // Return the existing dialog if already open.\n        if (this._promise) {\n            return this._promise.promise;\n        }\n        const promise = (this._promise = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate());\n        const promises = Promise.all(Private.launchQueue);\n        Private.launchQueue.push(this._promise.promise);\n        return promises.then(() => {\n            // Do not show Dialog if it was disposed of before it was at the front of the launch queue\n            if (!this._promise) {\n                return Promise.resolve({\n                    button: Dialog.cancelButton(),\n                    isChecked: null,\n                    value: null\n                });\n            }\n            _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget.attach(this, this._host);\n            return promise.promise;\n        });\n    }\n    /**\n     * Resolve the current dialog.\n     *\n     * @param index - An optional index to the button to resolve.\n     *\n     * #### Notes\n     * Will default to the defaultIndex.\n     * Will resolve the current `show()` with the button value.\n     * Will be a no-op if the dialog is not shown.\n     */\n    resolve(index) {\n        if (!this._promise) {\n            return;\n        }\n        if (index === undefined) {\n            index = this._defaultButton;\n        }\n        this._resolve(this._buttons[index]);\n    }\n    /**\n     * Reject the current dialog with a default reject value.\n     *\n     * #### Notes\n     * Will be a no-op if the dialog is not shown.\n     */\n    reject() {\n        if (!this._promise) {\n            return;\n        }\n        this._resolve(Dialog.cancelButton());\n    }\n    /**\n     * Handle the DOM events for the directory listing.\n     *\n     * @param event - The DOM event sent to the widget.\n     *\n     * #### Notes\n     * This method implements the DOM `EventListener` interface and is\n     * called in response to events on the panel's DOM node. It should\n     * not be called directly by user code.\n     */\n    handleEvent(event) {\n        switch (event.type) {\n            case 'keydown':\n                this._evtKeydown(event);\n                break;\n            case 'mousedown':\n                this._evtMouseDown(event);\n                break;\n            case 'click':\n                this._evtClick(event);\n                break;\n            case 'input':\n                this._evtInput(event);\n                break;\n            case 'focus':\n                this._evtFocus(event);\n                break;\n            case 'contextmenu':\n                event.preventDefault();\n                event.stopPropagation();\n                break;\n            default:\n                break;\n        }\n    }\n    /**\n     *  A message handler invoked on an `'after-attach'` message.\n     */\n    onAfterAttach(msg) {\n        const node = this.node;\n        node.addEventListener('keydown', this, true);\n        node.addEventListener('contextmenu', this, true);\n        node.addEventListener('click', this, true);\n        document.addEventListener('mousedown', this, true);\n        document.addEventListener('focus', this, true);\n        document.addEventListener('input', this, true);\n        this._first = Private.findFirstFocusable(this.node);\n        this._original = document.activeElement;\n        const setFocus = () => {\n            var _a;\n            if (this._focusNodeSelector) {\n                const body = this.node.querySelector('.jp-Dialog-body');\n                const el = body === null || body === void 0 ? void 0 : body.querySelector(this._focusNodeSelector);\n                if (el) {\n                    this._primary = el;\n                }\n            }\n            (_a = this._primary) === null || _a === void 0 ? void 0 : _a.focus();\n            this._ready.resolve();\n        };\n        if (this._bodyWidget instanceof _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget &&\n            this._bodyWidget.renderPromise !== undefined) {\n            this._bodyWidget\n                .renderPromise.then(() => {\n                setFocus();\n            })\n                .catch(() => {\n                console.error(\"Error while loading Dialog's body\");\n            });\n        }\n        else {\n            setFocus();\n        }\n    }\n    /**\n     *  A message handler invoked on an `'after-detach'` message.\n     */\n    onAfterDetach(msg) {\n        const node = this.node;\n        node.removeEventListener('keydown', this, true);\n        node.removeEventListener('contextmenu', this, true);\n        node.removeEventListener('click', this, true);\n        document.removeEventListener('focus', this, true);\n        document.removeEventListener('mousedown', this, true);\n        document.removeEventListener('input', this, true);\n        this._original.focus();\n    }\n    /**\n     * A message handler invoked on a `'close-request'` message.\n     */\n    onCloseRequest(msg) {\n        if (this._promise) {\n            this.reject();\n        }\n        super.onCloseRequest(msg);\n    }\n    /**\n     * Handle the `'input'` event for dialog's children.\n     *\n     * @param event - The DOM event sent to the widget\n     */\n    _evtInput(_event) {\n        this._hasValidationErrors = !!this.node.querySelector(':invalid');\n        for (let i = 0; i < this._buttons.length; i++) {\n            if (this._buttons[i].accept) {\n                this._buttonNodes[i].disabled = this._hasValidationErrors;\n            }\n        }\n    }\n    /**\n     * Handle the `'click'` event for a dialog button.\n     *\n     * @param event - The DOM event sent to the widget\n     */\n    _evtClick(event) {\n        const content = this.node.getElementsByClassName('jp-Dialog-content')[0];\n        if (!content.contains(event.target)) {\n            event.stopPropagation();\n            event.preventDefault();\n            if (this._hasClose && !this._lastMouseDownInDialog) {\n                this.reject();\n            }\n            return;\n        }\n        for (const buttonNode of this._buttonNodes) {\n            if (buttonNode.contains(event.target)) {\n                const index = this._buttonNodes.indexOf(buttonNode);\n                this.resolve(index);\n            }\n        }\n    }\n    /**\n     * Handle the `'keydown'` event for the widget.\n     *\n     * @param event - The DOM event sent to the widget\n     */\n    _evtKeydown(event) {\n        // Check for escape key\n        switch (event.keyCode) {\n            case 27: // Escape.\n                event.stopPropagation();\n                event.preventDefault();\n                if (this._hasClose) {\n                    this.reject();\n                }\n                break;\n            case 37: {\n                // Left arrow\n                const activeEl = document.activeElement;\n                if (activeEl instanceof HTMLButtonElement) {\n                    let idx = this._buttonNodes.indexOf(activeEl) - 1;\n                    // Handle a left arrows on the first button\n                    if (idx < 0) {\n                        idx = this._buttonNodes.length - 1;\n                    }\n                    const node = this._buttonNodes[idx];\n                    event.stopPropagation();\n                    event.preventDefault();\n                    node.focus();\n                }\n                break;\n            }\n            case 39: {\n                // Right arrow\n                const activeEl = document.activeElement;\n                if (activeEl instanceof HTMLButtonElement) {\n                    let idx = this._buttonNodes.indexOf(activeEl) + 1;\n                    // Handle a right arrows on the last button\n                    if (idx == this._buttons.length) {\n                        idx = 0;\n                    }\n                    const node = this._buttonNodes[idx];\n                    event.stopPropagation();\n                    event.preventDefault();\n                    node.focus();\n                }\n                break;\n            }\n            case 9: {\n                // Tab.\n                // Handle a tab on the last button.\n                const node = this._buttonNodes[this._buttons.length - 1];\n                if (document.activeElement === node && !event.shiftKey) {\n                    event.stopPropagation();\n                    event.preventDefault();\n                    this._first.focus();\n                }\n                break;\n            }\n            case 13: {\n                // Enter.\n                event.stopPropagation();\n                event.preventDefault();\n                const activeEl = document.activeElement;\n                let index;\n                if (activeEl instanceof HTMLButtonElement) {\n                    index = this._buttonNodes.indexOf(activeEl);\n                }\n                this.resolve(index);\n                break;\n            }\n            default:\n                break;\n        }\n    }\n    /**\n     * Handle the `'focus'` event for the widget.\n     *\n     * @param event - The DOM event sent to the widget\n     */\n    _evtFocus(event) {\n        var _a;\n        const target = event.target;\n        if (!this.node.contains(target)) {\n            event.stopPropagation();\n            (_a = this._buttonNodes[this._defaultButton]) === null || _a === void 0 ? void 0 : _a.focus();\n        }\n    }\n    /**\n     * Handle the `'mousedown'` event for the widget.\n     *\n     * @param event - The DOM event sent to the widget\n     */\n    _evtMouseDown(event) {\n        const content = this.node.getElementsByClassName('jp-Dialog-content')[0];\n        const target = event.target;\n        this._lastMouseDownInDialog = content.contains(target);\n    }\n    /**\n     * Resolve a button item.\n     */\n    _resolve(button) {\n        var _a, _b, _c;\n        if (this._hasValidationErrors && button.accept) {\n            // Do not allow accepting with validation errors\n            return;\n        }\n        // Prevent loopback.\n        const promise = this._promise;\n        if (!promise) {\n            this.dispose();\n            return;\n        }\n        this._promise = null;\n        _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__.ArrayExt.removeFirstOf(Private.launchQueue, promise.promise);\n        const body = this._body;\n        let value = null;\n        if (button.accept &&\n            body instanceof _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget &&\n            typeof body.getValue === 'function') {\n            value = body.getValue();\n        }\n        this.dispose();\n        promise.resolve({\n            button,\n            isChecked: (_c = (_b = (_a = this._checkboxNode) === null || _a === void 0 ? void 0 : _a.querySelector('input')) === null || _b === void 0 ? void 0 : _b.checked) !== null && _c !== void 0 ? _c : null,\n            value\n        });\n    }\n}\n/**\n * The namespace for Dialog class statics.\n */\n(function (Dialog) {\n    /**\n     * Translator object.\n     */\n    Dialog.translator = _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n    /**\n     * Create a button item.\n     */\n    function createButton(value) {\n        value.accept = value.accept !== false;\n        const trans = Dialog.translator.load('jupyterlab');\n        const defaultLabel = value.accept ? trans.__('Ok') : trans.__('Cancel');\n        return {\n            ariaLabel: value.ariaLabel || value.label || defaultLabel,\n            label: value.label || defaultLabel,\n            iconClass: value.iconClass || '',\n            iconLabel: value.iconLabel || '',\n            caption: value.caption || '',\n            className: value.className || '',\n            accept: value.accept,\n            actions: value.actions || [],\n            displayType: value.displayType || 'default'\n        };\n    }\n    Dialog.createButton = createButton;\n    /**\n     * Create a reject button.\n     */\n    function cancelButton(options = {}) {\n        options.accept = false;\n        return createButton(options);\n    }\n    Dialog.cancelButton = cancelButton;\n    /**\n     * Create an accept button.\n     */\n    function okButton(options = {}) {\n        options.accept = true;\n        return createButton(options);\n    }\n    Dialog.okButton = okButton;\n    /**\n     * Create a warn button.\n     */\n    function warnButton(options = {}) {\n        options.displayType = 'warn';\n        return createButton(options);\n    }\n    Dialog.warnButton = warnButton;\n    /**\n     * Disposes all dialog instances.\n     *\n     * #### Notes\n     * This function should only be used in tests or cases where application state\n     * may be discarded.\n     */\n    function flush() {\n        Dialog.tracker.forEach(dialog => {\n            dialog.dispose();\n        });\n    }\n    Dialog.flush = flush;\n    /**\n     * The default implementation of a dialog renderer.\n     */\n    class Renderer {\n        /**\n         * Create the header of the dialog.\n         *\n         * @param title - The title of the dialog.\n         *\n         * @returns A widget for the dialog header.\n         */\n        createHeader(title, reject = () => {\n            /* empty */\n        }, options = {}) {\n            let header;\n            const handleMouseDown = (event) => {\n                // Fire action only when left button is pressed.\n                if (event.button === 0) {\n                    event.preventDefault();\n                    reject();\n                }\n            };\n            const handleKeyDown = (event) => {\n                const { key } = event;\n                if (key === 'Enter' || key === ' ') {\n                    reject();\n                }\n            };\n            if (typeof title === 'string') {\n                const trans = Dialog.translator.load('jupyterlab');\n                header = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget.create(react__WEBPACK_IMPORTED_MODULE_6__.createElement(react__WEBPACK_IMPORTED_MODULE_6__.Fragment, null,\n                    title,\n                    options.hasClose && (react__WEBPACK_IMPORTED_MODULE_6__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Button, { className: \"jp-Dialog-close-button\", onMouseDown: handleMouseDown, onKeyDown: handleKeyDown, title: trans.__('Cancel'), minimal: true },\n                        react__WEBPACK_IMPORTED_MODULE_6__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.LabIcon.resolveReact, { icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.closeIcon, tag: \"span\" })))));\n            }\n            else {\n                header = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget.create(title);\n            }\n            header.addClass('jp-Dialog-header');\n            _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Styling.styleNode(header.node);\n            return header;\n        }\n        /**\n         * Create the body of the dialog.\n         *\n         * @param value - The input value for the body.\n         *\n         * @returns A widget for the body.\n         */\n        createBody(value) {\n            const styleReactWidget = (widget) => {\n                if (widget.renderPromise !== undefined) {\n                    widget.renderPromise\n                        .then(() => {\n                        _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Styling.styleNode(widget.node);\n                    })\n                        .catch(() => {\n                        console.error(\"Error while loading Dialog's body\");\n                    });\n                }\n                else {\n                    _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Styling.styleNode(widget.node);\n                }\n            };\n            let body;\n            if (typeof value === 'string') {\n                body = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget({ node: document.createElement('span') });\n                body.node.textContent = value;\n            }\n            else if (value instanceof _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget) {\n                body = value;\n                if (body instanceof _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget) {\n                    styleReactWidget(body);\n                }\n                else {\n                    _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Styling.styleNode(body.node);\n                }\n            }\n            else {\n                body = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget.create(value);\n                // Immediately update the body even though it has not yet attached in\n                // order to trigger a render of the DOM nodes from the React element.\n                _lumino_messaging__WEBPACK_IMPORTED_MODULE_4__.MessageLoop.sendMessage(body, _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget.Msg.UpdateRequest);\n                styleReactWidget(body);\n            }\n            body.addClass('jp-Dialog-body');\n            return body;\n        }\n        /**\n         * Create the footer of the dialog.\n         *\n         * @param buttons - The buttons nodes to add to the footer.\n         * @param checkbox - The checkbox node to add to the footer.\n         *\n         * @returns A widget for the footer.\n         */\n        createFooter(buttons, checkbox) {\n            const footer = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget();\n            footer.addClass('jp-Dialog-footer');\n            if (checkbox) {\n                footer.node.appendChild(checkbox);\n                footer.node.insertAdjacentHTML('beforeend', '<div class=\"jp-Dialog-spacer\"></div>');\n            }\n            for (const button of buttons) {\n                footer.node.appendChild(button);\n            }\n            _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Styling.styleNode(footer.node);\n            return footer;\n        }\n        /**\n         * Create a button node for the dialog.\n         *\n         * @param button - The button data.\n         *\n         * @returns A node for the button.\n         */\n        createButtonNode(button) {\n            const e = document.createElement('button');\n            e.className = this.createItemClass(button);\n            e.appendChild(this.renderIcon(button));\n            e.appendChild(this.renderLabel(button));\n            return e;\n        }\n        /**\n         * Create a checkbox node for the dialog.\n         *\n         * @param checkbox - The checkbox data.\n         *\n         * @returns A node for the checkbox.\n         */\n        createCheckboxNode(checkbox) {\n            const e = document.createElement('label');\n            e.className = 'jp-Dialog-checkbox';\n            if (checkbox.className) {\n                e.classList.add(checkbox.className);\n            }\n            e.title = checkbox.caption;\n            e.textContent = checkbox.label;\n            const input = document.createElement('input');\n            input.type = 'checkbox';\n            input.checked = !!checkbox.checked;\n            e.insertAdjacentElement('afterbegin', input);\n            return e;\n        }\n        /**\n         * Create the class name for the button.\n         *\n         * @param data - The data to use for the class name.\n         *\n         * @returns The full class name for the button.\n         */\n        createItemClass(data) {\n            // Setup the initial class name.\n            let name = 'jp-Dialog-button';\n            // Add the other state classes.\n            if (data.accept) {\n                name += ' jp-mod-accept';\n            }\n            else {\n                name += ' jp-mod-reject';\n            }\n            if (data.displayType === 'warn') {\n                name += ' jp-mod-warn';\n            }\n            // Add the extra class.\n            const extra = data.className;\n            if (extra) {\n                name += ` ${extra}`;\n            }\n            // Return the complete class name.\n            return name;\n        }\n        /**\n         * Render an icon element for a dialog item.\n         *\n         * @param data - The data to use for rendering the icon.\n         *\n         * @returns An HTML element representing the icon.\n         */\n        renderIcon(data) {\n            const e = document.createElement('div');\n            e.className = this.createIconClass(data);\n            e.appendChild(document.createTextNode(data.iconLabel));\n            return e;\n        }\n        /**\n         * Create the class name for the button icon.\n         *\n         * @param data - The data to use for the class name.\n         *\n         * @returns The full class name for the item icon.\n         */\n        createIconClass(data) {\n            const name = 'jp-Dialog-buttonIcon';\n            const extra = data.iconClass;\n            return extra ? `${name} ${extra}` : name;\n        }\n        /**\n         * Render the label element for a button.\n         *\n         * @param data - The data to use for rendering the label.\n         *\n         * @returns An HTML element representing the item label.\n         */\n        renderLabel(data) {\n            const e = document.createElement('div');\n            e.className = 'jp-Dialog-buttonLabel';\n            e.title = data.caption;\n            e.ariaLabel = data.ariaLabel;\n            e.appendChild(document.createTextNode(data.label));\n            return e;\n        }\n    }\n    Dialog.Renderer = Renderer;\n    /**\n     * The default renderer instance.\n     */\n    Dialog.defaultRenderer = new Renderer();\n    /**\n     * The dialog widget tracker.\n     */\n    Dialog.tracker = new _widgettracker__WEBPACK_IMPORTED_MODULE_7__.WidgetTracker({\n        namespace: '@jupyterlab/apputils:Dialog'\n    });\n})(Dialog || (Dialog = {}));\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n    /**\n     * The queue for launching dialogs.\n     */\n    Private.launchQueue = [];\n    Private.errorMessagePromiseCache = new Map();\n    /**\n     * Handle the input options for a dialog.\n     *\n     * @param options - The input options.\n     *\n     * @returns A new options object with defaults applied.\n     */\n    function handleOptions(options = {}) {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n        const buttons = (_a = options.buttons) !== null && _a !== void 0 ? _a : [\n            Dialog.cancelButton(),\n            Dialog.okButton()\n        ];\n        return {\n            title: (_b = options.title) !== null && _b !== void 0 ? _b : '',\n            body: (_c = options.body) !== null && _c !== void 0 ? _c : '',\n            host: (_d = options.host) !== null && _d !== void 0 ? _d : document.body,\n            checkbox: (_e = options.checkbox) !== null && _e !== void 0 ? _e : null,\n            buttons,\n            defaultButton: (_f = options.defaultButton) !== null && _f !== void 0 ? _f : buttons.length - 1,\n            renderer: (_g = options.renderer) !== null && _g !== void 0 ? _g : Dialog.defaultRenderer,\n            focusNodeSelector: (_h = options.focusNodeSelector) !== null && _h !== void 0 ? _h : '',\n            hasClose: (_j = options.hasClose) !== null && _j !== void 0 ? _j : true\n        };\n    }\n    Private.handleOptions = handleOptions;\n    /**\n     *  Find the first focusable item in the dialog.\n     */\n    function findFirstFocusable(node) {\n        const candidateSelectors = [\n            'input',\n            'select',\n            'a[href]',\n            'textarea',\n            'button',\n            '[tabindex]'\n        ].join(',');\n        return node.querySelectorAll(candidateSelectors)[0];\n    }\n    Private.findFirstFocusable = findFirstFocusable;\n})(Private || (Private = {}));\n//# sourceMappingURL=dialog.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/dialog.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/domutils.js":
/*!************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/domutils.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DOMUtils: () => (/* binding */ DOMUtils)\n/* harmony export */ });\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_domutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/domutils */ \"webpack/sharing/consume/default/@lumino/domutils/@lumino/domutils\");\n/* harmony import */ var _lumino_domutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_domutils__WEBPACK_IMPORTED_MODULE_2__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n/**\n * The namespace for DOM utilities.\n */\nvar DOMUtils;\n(function (DOMUtils) {\n    /**\n     * Get the index of the node at a client position, or `-1`.\n     */\n    function hitTestNodes(nodes, x, y) {\n        return _lumino_algorithm__WEBPACK_IMPORTED_MODULE_0__.ArrayExt.findFirstIndex(nodes, node => {\n            return _lumino_domutils__WEBPACK_IMPORTED_MODULE_2__.ElementExt.hitTest(node, x, y);\n        });\n    }\n    DOMUtils.hitTestNodes = hitTestNodes;\n    /**\n     * Find the first element matching a class name.\n     */\n    function findElement(parent, className) {\n        return parent.querySelector(`.${className}`);\n    }\n    DOMUtils.findElement = findElement;\n    /**\n     * Find the first element matching a class name.\n     */\n    function findElements(parent, className) {\n        return parent.getElementsByClassName(className);\n    }\n    DOMUtils.findElements = findElements;\n    /**\n     * Create a DOM id with prefix \"id-\" to solve bug for UUIDs beginning with numbers.\n     */\n    function createDomID() {\n        return `id-${_lumino_coreutils__WEBPACK_IMPORTED_MODULE_1__.UUID.uuid4()}`;\n    }\n    DOMUtils.createDomID = createDomID;\n    /**\n     * Check whether the active element descendant from given parent is editable.\n     * When checking active elements it includes elements in the open shadow DOM.\n     */\n    function hasActiveEditableElement(parent, root = document) {\n        const element = root.activeElement;\n        return !!(element &&\n            parent.contains(element) &&\n            (element.matches(':read-write') ||\n                (element.shadowRoot &&\n                    hasActiveEditableElement(element.shadowRoot, element.shadowRoot))));\n    }\n    DOMUtils.hasActiveEditableElement = hasActiveEditableElement;\n})(DOMUtils || (DOMUtils = {}));\n//# sourceMappingURL=domutils.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/domutils.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/index.js":
/*!*********************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/index.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Clipboard: () => (/* reexport safe */ _clipboard__WEBPACK_IMPORTED_MODULE_1__.Clipboard),\n/* harmony export */   Collapse: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Collapser),\n/* harmony export */   CommandLinker: () => (/* reexport safe */ _commandlinker__WEBPACK_IMPORTED_MODULE_2__.CommandLinker),\n/* harmony export */   CommandToolbarButton: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.CommandToolbarButton),\n/* harmony export */   CommandToolbarButtonComponent: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.CommandToolbarButtonComponent),\n/* harmony export */   DOMUtils: () => (/* reexport safe */ _domutils__WEBPACK_IMPORTED_MODULE_5__.DOMUtils),\n/* harmony export */   Dialog: () => (/* reexport safe */ _dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog),\n/* harmony export */   HoverBox: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.HoverBox),\n/* harmony export */   ICommandPalette: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_17__.ICommandPalette),\n/* harmony export */   IFrame: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.IFrame),\n/* harmony export */   IKernelStatusModel: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_17__.IKernelStatusModel),\n/* harmony export */   ISanitizer: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_17__.ISanitizer),\n/* harmony export */   ISessionContextDialogs: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_17__.ISessionContextDialogs),\n/* harmony export */   ISplashScreen: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_17__.ISplashScreen),\n/* harmony export */   IThemeManager: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_17__.IThemeManager),\n/* harmony export */   IToolbarWidgetRegistry: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_17__.IToolbarWidgetRegistry),\n/* harmony export */   IWindowResolver: () => (/* reexport safe */ _tokens__WEBPACK_IMPORTED_MODULE_17__.IWindowResolver),\n/* harmony export */   InputDialog: () => (/* reexport safe */ _inputdialog__WEBPACK_IMPORTED_MODULE_6__.InputDialog),\n/* harmony export */   KernelStatus: () => (/* reexport safe */ _kernelstatuses__WEBPACK_IMPORTED_MODULE_7__.KernelStatus),\n/* harmony export */   MainAreaWidget: () => (/* reexport safe */ _mainareawidget__WEBPACK_IMPORTED_MODULE_8__.MainAreaWidget),\n/* harmony export */   MenuFactory: () => (/* reexport safe */ _menufactory__WEBPACK_IMPORTED_MODULE_9__.MenuFactory),\n/* harmony export */   ModalCommandPalette: () => (/* reexport safe */ _commandpalette__WEBPACK_IMPORTED_MODULE_3__.ModalCommandPalette),\n/* harmony export */   Notification: () => (/* reexport safe */ _notification__WEBPACK_IMPORTED_MODULE_10__.Notification),\n/* harmony export */   NotificationManager: () => (/* reexport safe */ _notification__WEBPACK_IMPORTED_MODULE_10__.NotificationManager),\n/* harmony export */   Printing: () => (/* reexport safe */ _printing__WEBPACK_IMPORTED_MODULE_11__.Printing),\n/* harmony export */   ReactWidget: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.ReactWidget),\n/* harmony export */   RunningSessions: () => (/* reexport safe */ _runningSessions__WEBPACK_IMPORTED_MODULE_12__.RunningSessions),\n/* harmony export */   Sanitizer: () => (/* reexport safe */ _sanitizer__WEBPACK_IMPORTED_MODULE_13__.Sanitizer),\n/* harmony export */   SemanticCommand: () => (/* reexport safe */ _semanticCommand__WEBPACK_IMPORTED_MODULE_14__.SemanticCommand),\n/* harmony export */   SessionContext: () => (/* reexport safe */ _sessioncontext__WEBPACK_IMPORTED_MODULE_15__.SessionContext),\n/* harmony export */   SessionContextDialogs: () => (/* reexport safe */ _sessioncontext__WEBPACK_IMPORTED_MODULE_15__.SessionContextDialogs),\n/* harmony export */   Spinner: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Spinner),\n/* harmony export */   Styling: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Styling),\n/* harmony export */   ThemeManager: () => (/* reexport safe */ _thememanager__WEBPACK_IMPORTED_MODULE_16__.ThemeManager),\n/* harmony export */   Toolbar: () => (/* binding */ Toolbar),\n/* harmony export */   ToolbarButton: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.ToolbarButton),\n/* harmony export */   ToolbarButtonComponent: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.ToolbarButtonComponent),\n/* harmony export */   ToolbarWidgetRegistry: () => (/* reexport safe */ _toolbar__WEBPACK_IMPORTED_MODULE_18__.ToolbarWidgetRegistry),\n/* harmony export */   UseSignal: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.UseSignal),\n/* harmony export */   VDomModel: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.VDomModel),\n/* harmony export */   VDomRenderer: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.VDomRenderer),\n/* harmony export */   WidgetTracker: () => (/* reexport safe */ _widgettracker__WEBPACK_IMPORTED_MODULE_20__.WidgetTracker),\n/* harmony export */   WindowResolver: () => (/* reexport safe */ _windowresolver__WEBPACK_IMPORTED_MODULE_21__.WindowResolver),\n/* harmony export */   addCommandToolbarButtonClass: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.addCommandToolbarButtonClass),\n/* harmony export */   addToolbarButtonClass: () => (/* reexport safe */ _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.addToolbarButtonClass),\n/* harmony export */   createDefaultFactory: () => (/* reexport safe */ _toolbar__WEBPACK_IMPORTED_MODULE_18__.createDefaultFactory),\n/* harmony export */   createToolbarFactory: () => (/* reexport safe */ _toolbar__WEBPACK_IMPORTED_MODULE_19__.createToolbarFactory),\n/* harmony export */   setToolbar: () => (/* reexport safe */ _toolbar__WEBPACK_IMPORTED_MODULE_19__.setToolbar),\n/* harmony export */   showDialog: () => (/* reexport safe */ _dialog__WEBPACK_IMPORTED_MODULE_4__.showDialog),\n/* harmony export */   showErrorMessage: () => (/* reexport safe */ _dialog__WEBPACK_IMPORTED_MODULE_4__.showErrorMessage),\n/* harmony export */   translateKernelStatuses: () => (/* reexport safe */ _kernelstatuses__WEBPACK_IMPORTED_MODULE_7__.translateKernelStatuses)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _toolbar__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./toolbar */ \"../node_modules/@jupyterlab/apputils/lib/toolbar/widget.js\");\n/* harmony import */ var _clipboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./clipboard */ \"../node_modules/@jupyterlab/apputils/lib/clipboard.js\");\n/* harmony import */ var _commandlinker__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./commandlinker */ \"../node_modules/@jupyterlab/apputils/lib/commandlinker.js\");\n/* harmony import */ var _commandpalette__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./commandpalette */ \"../node_modules/@jupyterlab/apputils/lib/commandpalette.js\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dialog */ \"../node_modules/@jupyterlab/apputils/lib/dialog.js\");\n/* harmony import */ var _domutils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./domutils */ \"../node_modules/@jupyterlab/apputils/lib/domutils.js\");\n/* harmony import */ var _inputdialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./inputdialog */ \"../node_modules/@jupyterlab/apputils/lib/inputdialog.js\");\n/* harmony import */ var _kernelstatuses__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./kernelstatuses */ \"../node_modules/@jupyterlab/apputils/lib/kernelstatuses.js\");\n/* harmony import */ var _mainareawidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./mainareawidget */ \"../node_modules/@jupyterlab/apputils/lib/mainareawidget.js\");\n/* harmony import */ var _menufactory__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./menufactory */ \"../node_modules/@jupyterlab/apputils/lib/menufactory.js\");\n/* harmony import */ var _notification__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./notification */ \"../node_modules/@jupyterlab/apputils/lib/notification.js\");\n/* harmony import */ var _printing__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./printing */ \"../node_modules/@jupyterlab/apputils/lib/printing.js\");\n/* harmony import */ var _runningSessions__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./runningSessions */ \"../node_modules/@jupyterlab/apputils/lib/runningSessions.js\");\n/* harmony import */ var _sanitizer__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./sanitizer */ \"../node_modules/@jupyterlab/apputils/lib/sanitizer.js\");\n/* harmony import */ var _semanticCommand__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./semanticCommand */ \"../node_modules/@jupyterlab/apputils/lib/semanticCommand.js\");\n/* harmony import */ var _sessioncontext__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./sessioncontext */ \"../node_modules/@jupyterlab/apputils/lib/sessioncontext.js\");\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./thememanager */ \"../node_modules/@jupyterlab/apputils/lib/thememanager.js\");\n/* harmony import */ var _tokens__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./tokens */ \"../node_modules/@jupyterlab/apputils/lib/tokens.js\");\n/* harmony import */ var _toolbar__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./toolbar */ \"../node_modules/@jupyterlab/apputils/lib/toolbar/registry.js\");\n/* harmony import */ var _toolbar__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./toolbar */ \"../node_modules/@jupyterlab/apputils/lib/toolbar/factory.js\");\n/* harmony import */ var _widgettracker__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./widgettracker */ \"../node_modules/@jupyterlab/apputils/lib/widgettracker.js\");\n/* harmony import */ var _windowresolver__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./windowresolver */ \"../node_modules/@jupyterlab/apputils/lib/windowresolver.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n/**\n * @packageDocumentation\n * @module apputils\n */\n\n\n/**\n * @deprecated since v4\n * These widgets are now in @jupyterlab/ui-components\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// Merge Toolbar namespace to preserve API\n/**\n * @deprecated since v4\n * This class is in @jupyterlab/ui-components\n */\nclass Toolbar extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Toolbar {\n}\n(function (Toolbar) {\n    Toolbar.createInterruptButton = _toolbar__WEBPACK_IMPORTED_MODULE_22__.Toolbar.createInterruptButton;\n    Toolbar.createKernelNameItem = _toolbar__WEBPACK_IMPORTED_MODULE_22__.Toolbar.createKernelNameItem;\n    Toolbar.createKernelStatusItem = _toolbar__WEBPACK_IMPORTED_MODULE_22__.Toolbar.createKernelStatusItem;\n    Toolbar.createRestartButton = _toolbar__WEBPACK_IMPORTED_MODULE_22__.Toolbar.createRestartButton;\n    /**\n     * @deprecated since v4\n     * This helper function is in @jupyterlab/ui-components\n     */\n    Toolbar.createSpacerItem = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Toolbar.createSpacerItem;\n})(Toolbar || (Toolbar = {}));\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/index.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/inputdialog.js":
/*!***************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/inputdialog.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   InputDialog: () => (/* binding */ InputDialog)\n/* harmony export */ });\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dialog */ \"../node_modules/@jupyterlab/apputils/lib/dialog.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\nconst INPUT_DIALOG_CLASS = 'jp-Input-Dialog';\nconst INPUT_BOOLEAN_DIALOG_CLASS = 'jp-Input-Boolean-Dialog';\n/**\n * Namespace for input dialogs\n */\nvar InputDialog;\n(function (InputDialog) {\n    /**\n     * Create and show a input dialog for a boolean.\n     *\n     * @param options - The dialog setup options.\n     *\n     * @returns A promise that resolves with whether the dialog was accepted\n     */\n    function getBoolean(options) {\n        return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n            ...options,\n            body: new InputBooleanDialog(options),\n            buttons: [\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n            ],\n            focusNodeSelector: 'input'\n        });\n    }\n    InputDialog.getBoolean = getBoolean;\n    /**\n     * Create and show a input dialog for a number.\n     *\n     * @param options - The dialog setup options.\n     *\n     * @returns A promise that resolves with whether the dialog was accepted\n     */\n    function getNumber(options) {\n        return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n            ...options,\n            body: new InputNumberDialog(options),\n            buttons: [\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n            ],\n            focusNodeSelector: 'input'\n        });\n    }\n    InputDialog.getNumber = getNumber;\n    /**\n     * Create and show a input dialog for a choice.\n     *\n     * @param options - The dialog setup options.\n     *\n     * @returns A promise that resolves with whether the dialog was accepted\n     */\n    function getItem(options) {\n        return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n            ...options,\n            body: new InputItemsDialog(options),\n            buttons: [\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n            ],\n            focusNodeSelector: options.editable ? 'input' : 'select'\n        });\n    }\n    InputDialog.getItem = getItem;\n    /**\n     * Create and show a input dialog for a choice.\n     *\n     * @param options - The dialog setup options.\n     *\n     * @returns A promise that resolves with whether the dialog was accepted\n     */\n    function getMultipleItems(options) {\n        return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n            ...options,\n            body: new InputMultipleItemsDialog(options),\n            buttons: [\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n            ]\n        });\n    }\n    InputDialog.getMultipleItems = getMultipleItems;\n    /**\n     * Create and show a input dialog for a text.\n     *\n     * @param options - The dialog setup options.\n     *\n     * @returns A promise that resolves with whether the dialog was accepted\n     */\n    function getText(options) {\n        return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n            ...options,\n            body: new InputTextDialog(options),\n            buttons: [\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n            ],\n            focusNodeSelector: 'input'\n        });\n    }\n    InputDialog.getText = getText;\n    /**\n     * Create and show a input dialog for a password.\n     *\n     * @param options - The dialog setup options.\n     *\n     * @returns A promise that resolves with whether the dialog was accepted\n     */\n    function getPassword(options) {\n        return (0,_dialog__WEBPACK_IMPORTED_MODULE_1__.showDialog)({\n            ...options,\n            body: new InputPasswordDialog(options),\n            buttons: [\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.cancelButton({ label: options.cancelLabel }),\n                _dialog__WEBPACK_IMPORTED_MODULE_1__.Dialog.okButton({ label: options.okLabel })\n            ],\n            focusNodeSelector: 'input'\n        });\n    }\n    InputDialog.getPassword = getPassword;\n})(InputDialog || (InputDialog = {}));\n/**\n * Base widget for input dialog body\n */\nclass InputDialogBase extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_0__.Widget {\n    /**\n     * InputDialog constructor\n     *\n     * @param label Input field label\n     */\n    constructor(options) {\n        super();\n        this.addClass(INPUT_DIALOG_CLASS);\n        this._input = document.createElement('input');\n        this._input.classList.add('jp-mod-styled');\n        this._input.id = 'jp-dialog-input-id';\n        if (options.label !== undefined) {\n            const labelElement = document.createElement('label');\n            labelElement.textContent = options.label;\n            labelElement.htmlFor = this._input.id;\n            // Initialize the node\n            this.node.appendChild(labelElement);\n        }\n        const wrapper = document.createElement('div');\n        wrapper.className = 'jp-InputDialog-inputWrapper';\n        if (options.prefix) {\n            const prefix = document.createElement('span');\n            prefix.className = 'jp-InputDialog-inputPrefix';\n            prefix.textContent = options.prefix;\n            // Both US WDS (https://designsystem.digital.gov/components/input-prefix-suffix/)\n            // and UK DS (https://design-system.service.gov.uk/components/text-input/) recommend\n            // hiding prefixes and suffixes from screen readers.\n            prefix.ariaHidden = 'true';\n            wrapper.appendChild(prefix);\n        }\n        wrapper.appendChild(this._input);\n        if (options.suffix) {\n            const suffix = document.createElement('span');\n            suffix.className = 'jp-InputDialog-inputSuffix';\n            suffix.textContent = options.suffix;\n            suffix.ariaHidden = 'true';\n            wrapper.appendChild(suffix);\n        }\n        this.node.appendChild(wrapper);\n    }\n}\n/**\n * Widget body for input boolean dialog\n */\nclass InputBooleanDialog extends InputDialogBase {\n    /**\n     * InputBooleanDialog constructor\n     *\n     * @param options Constructor options\n     */\n    constructor(options) {\n        super(options);\n        this.addClass(INPUT_BOOLEAN_DIALOG_CLASS);\n        this._input.type = 'checkbox';\n        this._input.checked = options.value ? true : false;\n    }\n    /**\n     * Get the text specified by the user\n     */\n    getValue() {\n        return this._input.checked;\n    }\n}\n/**\n * Widget body for input number dialog\n */\nclass InputNumberDialog extends InputDialogBase {\n    /**\n     * InputNumberDialog constructor\n     *\n     * @param options Constructor options\n     */\n    constructor(options) {\n        super(options);\n        this._input.type = 'number';\n        this._input.value = options.value ? options.value.toString() : '0';\n    }\n    /**\n     * Get the number specified by the user.\n     */\n    getValue() {\n        if (this._input.value) {\n            return Number(this._input.value);\n        }\n        else {\n            return Number.NaN;\n        }\n    }\n}\n/**\n * Base widget body for input text/password/email dialog\n */\nclass InputDialogTextBase extends InputDialogBase {\n    /**\n     * InputDialogTextBase constructor\n     *\n     * @param options Constructor options\n     */\n    constructor(options) {\n        super(options);\n        this._input.value = options.text ? options.text : '';\n        if (options.placeholder) {\n            this._input.placeholder = options.placeholder;\n        }\n        if (options.pattern) {\n            this._input.pattern = options.pattern;\n        }\n        if (options.required) {\n            this._input.required = options.required;\n        }\n    }\n    /**\n     * Get the text specified by the user\n     */\n    getValue() {\n        return this._input.value;\n    }\n}\n/**\n * Widget body for input text dialog\n */\nclass InputTextDialog extends InputDialogTextBase {\n    /**\n     * InputTextDialog constructor\n     *\n     * @param options Constructor options\n     */\n    constructor(options) {\n        var _a;\n        super(options);\n        this._input.type = 'text';\n        this._initialSelectionRange = Math.min(this._input.value.length, Math.max(0, (_a = options.selectionRange) !== null && _a !== void 0 ? _a : this._input.value.length));\n    }\n    /**\n     *  A message handler invoked on an `'after-attach'` message.\n     */\n    onAfterAttach(msg) {\n        super.onAfterAttach(msg);\n        if (this._initialSelectionRange > 0 && this._input.value) {\n            this._input.setSelectionRange(0, this._initialSelectionRange);\n        }\n    }\n}\n/**\n * Widget body for input password dialog\n */\nclass InputPasswordDialog extends InputDialogTextBase {\n    /**\n     * InputPasswordDialog constructor\n     *\n     * @param options Constructor options\n     */\n    constructor(options) {\n        super(options);\n        this._input.type = 'password';\n    }\n    /**\n     *  A message handler invoked on an `'after-attach'` message.\n     */\n    onAfterAttach(msg) {\n        super.onAfterAttach(msg);\n        if (this._input.value) {\n            this._input.select();\n        }\n    }\n}\n/**\n * Widget body for input list dialog\n */\nclass InputItemsDialog extends InputDialogBase {\n    /**\n     * InputItemsDialog constructor\n     *\n     * @param options Constructor options\n     */\n    constructor(options) {\n        super(options);\n        this._editable = options.editable || false;\n        let current = options.current || 0;\n        let defaultIndex;\n        if (typeof current === 'number') {\n            defaultIndex = Math.max(0, Math.min(current, options.items.length - 1));\n            current = '';\n        }\n        this._list = document.createElement('select');\n        options.items.forEach((item, index) => {\n            const option = document.createElement('option');\n            if (index === defaultIndex) {\n                option.selected = true;\n                current = item;\n            }\n            option.value = item;\n            option.textContent = item;\n            this._list.appendChild(option);\n        });\n        if (options.editable) {\n            /* Use of list and datalist */\n            const data = document.createElement('datalist');\n            data.id = 'input-dialog-items';\n            data.appendChild(this._list);\n            this._input.type = 'list';\n            this._input.value = current;\n            this._input.setAttribute('list', data.id);\n            if (options.placeholder) {\n                this._input.placeholder = options.placeholder;\n            }\n            this.node.appendChild(data);\n        }\n        else {\n            /* Use select directly */\n            this._input.parentElement.replaceChild(this._list, this._input);\n        }\n    }\n    /**\n     * Get the user choice\n     */\n    getValue() {\n        if (this._editable) {\n            return this._input.value;\n        }\n        else {\n            return this._list.value;\n        }\n    }\n}\n/**\n * Widget body for input list dialog\n */\nclass InputMultipleItemsDialog extends InputDialogBase {\n    /**\n     * InputMultipleItemsDialog constructor\n     *\n     * @param options Constructor options\n     */\n    constructor(options) {\n        super(options);\n        let defaults = options.defaults || [];\n        this._list = document.createElement('select');\n        this._list.setAttribute('multiple', '');\n        options.items.forEach(item => {\n            const option = document.createElement('option');\n            option.value = item;\n            option.textContent = item;\n            this._list.appendChild(option);\n        });\n        // use the select\n        this._input.remove();\n        this.node.appendChild(this._list);\n        // select the current ones\n        const htmlOptions = this._list.options;\n        for (let i = 0; i < htmlOptions.length; i++) {\n            const option = htmlOptions[i];\n            if (defaults.includes(option.value)) {\n                option.selected = true;\n            }\n            else {\n                option.selected = false;\n            }\n        }\n    }\n    /**\n     * Get the user choices\n     */\n    getValue() {\n        let result = [];\n        for (let opt of this._list.options) {\n            if (opt.selected && !opt.classList.contains('hidden')) {\n                result.push(opt.value || opt.text);\n            }\n        }\n        return result;\n    }\n}\n//# sourceMappingURL=inputdialog.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/inputdialog.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/kernelstatuses.js":
/*!******************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/kernelstatuses.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   KernelStatus: () => (/* binding */ KernelStatus),\n/* harmony export */   translateKernelStatuses: () => (/* binding */ translateKernelStatuses)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/statusbar */ \"webpack/sharing/consume/default/@jupyterlab/statusbar/@jupyterlab/statusbar\");\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n/**\n * Helper function to translate kernel statuses mapping by using\n * input translator.\n *\n * @param translator - Language translator.\n * @return The translated kernel status mapping.\n */\nfunction translateKernelStatuses(translator) {\n    translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n    const trans = translator.load('jupyterlab');\n    const translated = {\n        unknown: trans.__('Unknown'),\n        starting: trans.__('Starting'),\n        idle: trans.__('Idle'),\n        busy: trans.__('Busy'),\n        terminating: trans.__('Terminating'),\n        restarting: trans.__('Restarting'),\n        autorestarting: trans.__('Autorestarting'),\n        dead: trans.__('Dead'),\n        connected: trans.__('Connected'),\n        connecting: trans.__('Connecting'),\n        disconnected: trans.__('Disconnected'),\n        initializing: trans.__('Initializing'),\n        '': ''\n    };\n    return translated;\n}\n/**\n * A pure functional component for rendering kernel status.\n */\nfunction KernelStatusComponent(props) {\n    const translator = props.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n    const trans = translator.load('jupyterlab');\n    let statusText = '';\n    if (props.status) {\n        statusText = ` | ${props.status}`;\n    }\n    return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_0__.TextItem, { onClick: props.handleClick, onKeyDown: props.handleKeyDown, source: `${props.kernelName}${statusText}`, title: trans.__('Change kernel for %1', props.activityName), tabIndex: 0 }));\n}\n/**\n * A VDomRenderer widget for displaying the status of a kernel.\n */\nclass KernelStatus extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.VDomRenderer {\n    /**\n     * Construct the kernel status widget.\n     */\n    constructor(opts, translator) {\n        super(new KernelStatus.Model(translator));\n        this.translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n        this._handleClick = opts.onClick;\n        this._handleKeyDown = opts.onKeyDown;\n        this.addClass('jp-mod-highlighted');\n    }\n    /**\n     * Render the kernel status item.\n     */\n    render() {\n        if (this.model === null) {\n            return null;\n        }\n        else {\n            return (react__WEBPACK_IMPORTED_MODULE_4___default().createElement(KernelStatusComponent, { status: this.model.status, kernelName: this.model.kernelName, activityName: this.model.activityName, handleClick: this._handleClick, handleKeyDown: this._handleKeyDown, translator: this.translator }));\n        }\n    }\n}\n/**\n * A namespace for KernelStatus statics.\n */\n(function (KernelStatus) {\n    /**\n     * A VDomModel for the kernel status indicator.\n     */\n    class Model extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_2__.VDomModel {\n        constructor(translator) {\n            super();\n            this._activityName = '';\n            this._kernelName = '';\n            this._kernelStatus = '';\n            this._sessionContext = null;\n            translator = translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n            this._trans = translator.load('jupyterlab');\n            this._statusNames = translateKernelStatuses(translator);\n        }\n        /**\n         * The name of the kernel.\n         */\n        get kernelName() {\n            return this._kernelName;\n        }\n        /**\n         * The current status of the kernel.\n         */\n        get status() {\n            return this._kernelStatus\n                ? this._statusNames[this._kernelStatus]\n                : undefined;\n        }\n        /**\n         * A display name for the activity.\n         */\n        get activityName() {\n            return this._activityName;\n        }\n        set activityName(val) {\n            const oldVal = this._activityName;\n            if (oldVal === val) {\n                return;\n            }\n            this._activityName = val;\n            this.stateChanged.emit();\n        }\n        /**\n         * The current client session associated with the kernel status indicator.\n         */\n        get sessionContext() {\n            return this._sessionContext;\n        }\n        set sessionContext(sessionContext) {\n            var _a, _b, _c, _d;\n            (_a = this._sessionContext) === null || _a === void 0 ? void 0 : _a.statusChanged.disconnect(this._onKernelStatusChanged, this);\n            (_b = this._sessionContext) === null || _b === void 0 ? void 0 : _b.connectionStatusChanged.disconnect(this._onKernelStatusChanged, this);\n            (_c = this._sessionContext) === null || _c === void 0 ? void 0 : _c.kernelChanged.disconnect(this._onKernelChanged, this);\n            const oldState = this._getAllState();\n            this._sessionContext = sessionContext;\n            this._kernelStatus = sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.kernelDisplayStatus;\n            this._kernelName =\n                (_d = sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.kernelDisplayName) !== null && _d !== void 0 ? _d : this._trans.__('No Kernel');\n            sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.statusChanged.connect(this._onKernelStatusChanged, this);\n            sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.connectionStatusChanged.connect(this._onKernelStatusChanged, this);\n            sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.kernelChanged.connect(this._onKernelChanged, this);\n            this._triggerChange(oldState, this._getAllState());\n        }\n        /**\n         * React to changes to the kernel status.\n         */\n        _onKernelStatusChanged() {\n            var _a;\n            this._kernelStatus = (_a = this._sessionContext) === null || _a === void 0 ? void 0 : _a.kernelDisplayStatus;\n            this.stateChanged.emit(void 0);\n        }\n        /**\n         * React to changes in the kernel.\n         */\n        _onKernelChanged(_sessionContext, change) {\n            var _a;\n            const oldState = this._getAllState();\n            // sync setting of status and display name\n            this._kernelStatus = (_a = this._sessionContext) === null || _a === void 0 ? void 0 : _a.kernelDisplayStatus;\n            this._kernelName = _sessionContext.kernelDisplayName;\n            this._triggerChange(oldState, this._getAllState());\n        }\n        _getAllState() {\n            return [this._kernelName, this._kernelStatus, this._activityName];\n        }\n        _triggerChange(oldState, newState) {\n            if (_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepEqual(oldState, newState)) {\n                this.stateChanged.emit(void 0);\n            }\n        }\n    }\n    KernelStatus.Model = Model;\n})(KernelStatus || (KernelStatus = {}));\n//# sourceMappingURL=kernelstatuses.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/kernelstatuses.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/mainareawidget.js":
/*!******************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/mainareawidget.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   MainAreaWidget: () => (/* binding */ MainAreaWidget)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/messaging */ \"webpack/sharing/consume/default/@lumino/messaging/@lumino/messaging\");\n/* harmony import */ var _lumino_messaging__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_messaging__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _domutils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./domutils */ \"../node_modules/@jupyterlab/apputils/lib/domutils.js\");\n/* harmony import */ var _printing__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./printing */ \"../node_modules/@jupyterlab/apputils/lib/printing.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n/**\n * A flag to indicate that event handlers are caught in the capture phase.\n */\nconst USE_CAPTURE = true;\n/**\n * A widget meant to be contained in the JupyterLab main area.\n *\n * #### Notes\n * Mirrors all of the `title` attributes of the content.\n * This widget is `closable` by default.\n * This widget is automatically disposed when closed.\n * This widget ensures its own focus when activated.\n */\nclass MainAreaWidget extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.Widget {\n    /**\n     * Construct a new main area widget.\n     *\n     * @param options - The options for initializing the widget.\n     */\n    constructor(options) {\n        super(options);\n        this._changeGuard = false;\n        this._spinner = new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.Spinner();\n        this._isRevealed = false;\n        this._evtMouseDown = () => {\n            if (!this.node.contains(document.activeElement)) {\n                this._focusContent();\n            }\n        };\n        this.addClass('jp-MainAreaWidget');\n        // Set contain=strict to avoid many forced layout rendering while adding cells.\n        // Don't forget to remove the CSS class when your remove the spinner to allow\n        // the content to be rendered.\n        // @see https://github.com/jupyterlab/jupyterlab/issues/9381\n        this.addClass('jp-MainAreaWidget-ContainStrict');\n        this.id = _domutils__WEBPACK_IMPORTED_MODULE_4__.DOMUtils.createDomID();\n        const trans = (options.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator).load('jupyterlab');\n        const content = (this._content = options.content);\n        content.node.setAttribute('role', 'region');\n        content.node.setAttribute('aria-label', trans.__('notebook content'));\n        const toolbar = (this._toolbar = options.toolbar || new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactiveToolbar());\n        toolbar.node.setAttribute('role', 'toolbar');\n        toolbar.node.setAttribute('aria-label', trans.__('notebook actions'));\n        const contentHeader = (this._contentHeader =\n            options.contentHeader ||\n                new _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxPanel({\n                    direction: 'top-to-bottom',\n                    spacing: 0\n                }));\n        const layout = (this.layout = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxLayout({ spacing: 0 }));\n        layout.direction = 'top-to-bottom';\n        _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxLayout.setStretch(toolbar, 0);\n        _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxLayout.setStretch(contentHeader, 0);\n        _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxLayout.setStretch(content, 1);\n        layout.addWidget(toolbar);\n        layout.addWidget(contentHeader);\n        layout.addWidget(content);\n        if (!content.id) {\n            content.id = _domutils__WEBPACK_IMPORTED_MODULE_4__.DOMUtils.createDomID();\n        }\n        content.node.tabIndex = -1;\n        this._updateTitle();\n        content.title.changed.connect(this._updateTitle, this);\n        this.title.closable = true;\n        this.title.changed.connect(this._updateContentTitle, this);\n        if (options.reveal) {\n            this.node.appendChild(this._spinner.node);\n            this._revealed = options.reveal\n                .then(() => {\n                if (content.isDisposed) {\n                    this.dispose();\n                    return;\n                }\n                content.disposed.connect(() => this.dispose());\n                const active = document.activeElement === this._spinner.node;\n                this._disposeSpinner();\n                this._isRevealed = true;\n                if (active) {\n                    this._focusContent();\n                }\n            })\n                .catch(e => {\n                // Show a revealed promise error.\n                const error = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.Widget();\n                error.addClass('jp-MainAreaWidget-error');\n                // Show the error to the user.\n                const pre = document.createElement('pre');\n                pre.textContent = String(e);\n                error.node.appendChild(pre);\n                _lumino_widgets__WEBPACK_IMPORTED_MODULE_3__.BoxLayout.setStretch(error, 1);\n                this._disposeSpinner();\n                content.dispose();\n                this._content = null;\n                toolbar.dispose();\n                this._toolbar = null;\n                layout.addWidget(error);\n                this._isRevealed = true;\n                throw error;\n            });\n        }\n        else {\n            // Handle no reveal promise.\n            this._spinner.dispose();\n            this.removeClass('jp-MainAreaWidget-ContainStrict');\n            content.disposed.connect(() => this.dispose());\n            this._isRevealed = true;\n            this._revealed = Promise.resolve(undefined);\n        }\n    }\n    /**\n     * Print method. Deferred to content.\n     */\n    [_printing__WEBPACK_IMPORTED_MODULE_5__.Printing.symbol]() {\n        if (!this._content) {\n            return null;\n        }\n        return _printing__WEBPACK_IMPORTED_MODULE_5__.Printing.getPrintFunction(this._content);\n    }\n    /**\n     * The content hosted by the widget.\n     */\n    get content() {\n        return this._content;\n    }\n    /**\n     * The toolbar hosted by the widget.\n     */\n    get toolbar() {\n        return this._toolbar;\n    }\n    /**\n     * A panel for widgets that sit between the toolbar and the content.\n     * Imagine a formatting toolbar, notification headers, etc.\n     */\n    get contentHeader() {\n        return this._contentHeader;\n    }\n    /**\n     * Whether the content widget or an error is revealed.\n     */\n    get isRevealed() {\n        return this._isRevealed;\n    }\n    /**\n     * A promise that resolves when the widget is revealed.\n     */\n    get revealed() {\n        return this._revealed;\n    }\n    /**\n     * Handle `'activate-request'` messages.\n     */\n    onActivateRequest(msg) {\n        if (this._isRevealed) {\n            this._focusContent();\n        }\n        else {\n            this._spinner.node.focus();\n        }\n    }\n    /**\n     * Handle `after-attach` messages for the widget.\n     */\n    onAfterAttach(msg) {\n        super.onAfterAttach(msg);\n        // Focus content in capture phase to ensure relevant commands operate on the\n        // current main area widget.\n        // Add the event listener directly instead of using `handleEvent` in order\n        // to save sub-classes from needing to reason about calling it as well.\n        this.node.addEventListener('mousedown', this._evtMouseDown, USE_CAPTURE);\n    }\n    /**\n     * Handle `before-detach` messages for the widget.\n     */\n    onBeforeDetach(msg) {\n        this.node.removeEventListener('mousedown', this._evtMouseDown, USE_CAPTURE);\n        super.onBeforeDetach(msg);\n    }\n    /**\n     * Handle `'close-request'` messages.\n     */\n    onCloseRequest(msg) {\n        this.dispose();\n    }\n    /**\n     * Handle `'update-request'` messages by forwarding them to the content.\n     */\n    onUpdateRequest(msg) {\n        if (this._content) {\n            _lumino_messaging__WEBPACK_IMPORTED_MODULE_2__.MessageLoop.sendMessage(this._content, msg);\n        }\n    }\n    _disposeSpinner() {\n        this.node.removeChild(this._spinner.node);\n        this._spinner.dispose();\n        this.removeClass('jp-MainAreaWidget-ContainStrict');\n    }\n    /**\n     * Update the title based on the attributes of the child widget.\n     */\n    _updateTitle() {\n        if (this._changeGuard || !this.content) {\n            return;\n        }\n        this._changeGuard = true;\n        const content = this.content;\n        this.title.label = content.title.label;\n        this.title.mnemonic = content.title.mnemonic;\n        this.title.icon = content.title.icon;\n        this.title.iconClass = content.title.iconClass;\n        this.title.iconLabel = content.title.iconLabel;\n        this.title.caption = content.title.caption;\n        this.title.className = content.title.className;\n        this.title.dataset = content.title.dataset;\n        this._changeGuard = false;\n    }\n    /**\n     * Update the content title based on attributes of the main widget.\n     */\n    _updateContentTitle() {\n        if (this._changeGuard || !this.content) {\n            return;\n        }\n        this._changeGuard = true;\n        const content = this.content;\n        content.title.label = this.title.label;\n        content.title.mnemonic = this.title.mnemonic;\n        content.title.icon = this.title.icon;\n        content.title.iconClass = this.title.iconClass;\n        content.title.iconLabel = this.title.iconLabel;\n        content.title.caption = this.title.caption;\n        content.title.className = this.title.className;\n        content.title.dataset = this.title.dataset;\n        this._changeGuard = false;\n    }\n    /**\n     * Give focus to the content.\n     */\n    _focusContent() {\n        if (!this.content) {\n            return;\n        }\n        // Focus the content node if we aren't already focused on it or a\n        // descendent.\n        if (!this.content.node.contains(document.activeElement)) {\n            this.content.node.focus();\n        }\n        // Activate the content asynchronously (which may change the focus).\n        this.content.activate();\n    }\n}\n//# sourceMappingURL=mainareawidget.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/mainareawidget.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/menufactory.js":
/*!***************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/menufactory.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   MenuFactory: () => (/* binding */ MenuFactory)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n/**\n * Helper functions to build a menu from the settings\n */\nvar MenuFactory;\n(function (MenuFactory) {\n    /**\n     * Create menus from their description\n     *\n     * @param data Menubar description\n     * @param menuFactory Factory for empty menu\n     */\n    function createMenus(data, menuFactory) {\n        return data\n            .filter(item => !item.disabled)\n            .sort((a, b) => { var _a, _b; return ((_a = a.rank) !== null && _a !== void 0 ? _a : Infinity) - ((_b = b.rank) !== null && _b !== void 0 ? _b : Infinity); })\n            .map(menuItem => {\n            return dataToMenu(menuItem, menuFactory);\n        });\n    }\n    MenuFactory.createMenus = createMenus;\n    /**\n     * Convert a menu description in a JupyterLabMenu object\n     *\n     * @param item Menu description\n     * @param menuFactory Empty menu factory\n     * @returns The menu widget\n     */\n    function dataToMenu(item, menuFactory) {\n        var _a, _b;\n        const menu = menuFactory(item);\n        menu.id = item.id;\n        // Set the label in case the menu factory did not.\n        if (!menu.title.label) {\n            menu.title.label = (_a = item.label) !== null && _a !== void 0 ? _a : _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.Text.titleCase(menu.id.trim());\n        }\n        if (item.icon) {\n            menu.title.icon = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.LabIcon.resolve({ icon: item.icon });\n        }\n        if (item.mnemonic !== undefined) {\n            menu.title.mnemonic = item.mnemonic;\n        }\n        (_b = item.items) === null || _b === void 0 ? void 0 : _b.filter(item => !item.disabled).sort((a, b) => { var _a, _b; return ((_a = a.rank) !== null && _a !== void 0 ? _a : Infinity) - ((_b = b.rank) !== null && _b !== void 0 ? _b : Infinity); }).map(item => {\n            addItem(item, menu, menuFactory);\n        });\n        return menu;\n    }\n    /**\n     * Convert an item description in a context menu item object\n     *\n     * @param item Context menu item\n     * @param menu Context menu to populate\n     * @param menuFactory Empty menu factory\n     */\n    function addContextItem(item, menu, menuFactory) {\n        const { submenu, ...newItem } = item;\n        // Commands may not have been registered yet; so we don't force it to exist\n        menu.addItem({\n            ...newItem,\n            submenu: submenu ? dataToMenu(submenu, menuFactory) : null\n        });\n    }\n    MenuFactory.addContextItem = addContextItem;\n    /**\n     * Convert an item description in a menu item object\n     *\n     * @param item Menu item\n     * @param menu Menu to populate\n     * @param menuFactory Empty menu factory\n     */\n    function addItem(item, menu, menuFactory) {\n        const { submenu, ...newItem } = item;\n        // Commands may not have been registered yet; so we don't force it to exist\n        menu.addItem({\n            ...newItem,\n            submenu: submenu ? dataToMenu(submenu, menuFactory) : null\n        });\n    }\n    /**\n     * Update an existing list of menu and returns\n     * the new elements.\n     *\n     * #### Note\n     * New elements are added to the current menu list.\n     *\n     * @param menus Current menus\n     * @param data New description to take into account\n     * @param menuFactory Empty menu factory\n     * @returns Newly created menus\n     */\n    function updateMenus(menus, data, menuFactory) {\n        const newMenus = [];\n        data.forEach(item => {\n            const menu = menus.find(menu => menu.id === item.id);\n            if (menu) {\n                mergeMenus(item, menu, menuFactory);\n            }\n            else {\n                if (!item.disabled) {\n                    newMenus.push(dataToMenu(item, menuFactory));\n                }\n            }\n        });\n        menus.push(...newMenus);\n        return newMenus;\n    }\n    MenuFactory.updateMenus = updateMenus;\n    function mergeMenus(item, menu, menuFactory) {\n        var _a;\n        if (item.disabled) {\n            menu.dispose();\n        }\n        else {\n            (_a = item.items) === null || _a === void 0 ? void 0 : _a.forEach(entry => {\n                var _a, _b;\n                const existingItem = menu === null || menu === void 0 ? void 0 : menu.items.find((i, idx) => {\n                    var _a, _b, _c;\n                    return i.type === entry.type &&\n                        i.command === ((_a = entry.command) !== null && _a !== void 0 ? _a : '') &&\n                        ((_b = i.submenu) === null || _b === void 0 ? void 0 : _b.id) === ((_c = entry.submenu) === null || _c === void 0 ? void 0 : _c.id);\n                });\n                if (existingItem && entry.type !== 'separator') {\n                    if (entry.disabled) {\n                        menu.removeItem(existingItem);\n                    }\n                    else {\n                        switch ((_a = entry.type) !== null && _a !== void 0 ? _a : 'command') {\n                            case 'command':\n                                if (entry.command) {\n                                    if (!_lumino_coreutils__WEBPACK_IMPORTED_MODULE_2__.JSONExt.deepEqual(existingItem.args, (_b = entry.args) !== null && _b !== void 0 ? _b : {})) {\n                                        addItem(entry, menu, menuFactory);\n                                    }\n                                }\n                                break;\n                            case 'submenu':\n                                if (entry.submenu) {\n                                    mergeMenus(entry.submenu, existingItem.submenu, menuFactory);\n                                }\n                        }\n                    }\n                }\n                else {\n                    addItem(entry, menu, menuFactory);\n                }\n            });\n        }\n    }\n})(MenuFactory || (MenuFactory = {}));\n//# sourceMappingURL=menufactory.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/menufactory.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/notification.js":
/*!****************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/notification.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Notification: () => (/* binding */ Notification),\n/* harmony export */   NotificationManager: () => (/* binding */ NotificationManager)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_1__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n/**\n * Notification manager\n */\nclass NotificationManager {\n    constructor() {\n        this._isDisposed = false;\n        this._queue = [];\n        this._changed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal(this);\n    }\n    /**\n     * Signal emitted whenever a notification changes.\n     */\n    get changed() {\n        return this._changed;\n    }\n    /**\n     * Total number of notifications.\n     */\n    get count() {\n        return this._queue.length;\n    }\n    /**\n     * Whether the manager is disposed or not.\n     */\n    get isDisposed() {\n        return this._isDisposed;\n    }\n    /**\n     * The list of notifications.\n     */\n    get notifications() {\n        return this._queue.slice();\n    }\n    /**\n     * Dismiss one notification (specified by its id) or all if no id provided.\n     *\n     * @param id Notification id\n     */\n    dismiss(id) {\n        if (typeof id === 'undefined') {\n            const q = this._queue.slice();\n            this._queue.length = 0;\n            for (const notification of q) {\n                this._changed.emit({\n                    type: 'removed',\n                    notification\n                });\n            }\n        }\n        else {\n            const notificationIndex = this._queue.findIndex(n => n.id === id);\n            if (notificationIndex > -1) {\n                const notification = this._queue.splice(notificationIndex, 1)[0];\n                this._changed.emit({\n                    type: 'removed',\n                    notification\n                });\n            }\n        }\n    }\n    /**\n     * Dispose the manager.\n     */\n    dispose() {\n        if (this._isDisposed) {\n            return;\n        }\n        this._isDisposed = true;\n        _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal.clearData(this);\n    }\n    /**\n     * Test whether a notification exists or not.\n     *\n     * @param id Notification id\n     * @returns Notification status\n     */\n    has(id) {\n        return this._queue.findIndex(n => n.id === id) > -1;\n    }\n    /**\n     * Add a new notification.\n     *\n     * This will trigger the `changed` signal with an `added` event.\n     *\n     * @param message Notification message\n     * @param type Notification type\n     * @param options Notification option\n     * @returns Notification unique id\n     */\n    notify(message, type, options) {\n        const now = Date.now();\n        const { progress, ...othersOptions } = options;\n        const notification = Object.freeze({\n            id: _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.UUID.uuid4(),\n            createdAt: now,\n            modifiedAt: now,\n            message,\n            type,\n            options: {\n                // By default notification will be silent\n                autoClose: 0,\n                progress: typeof progress === 'number'\n                    ? Math.min(Math.max(0, progress), 1)\n                    : progress,\n                ...othersOptions\n            }\n        });\n        this._queue.unshift(notification);\n        this._changed.emit({\n            type: 'added',\n            notification\n        });\n        return notification.id;\n    }\n    /**\n     * Update an existing notification.\n     *\n     * If the notification does not exists this won't do anything.\n     *\n     * Once updated the notification will be moved at the begin\n     * of the notification stack.\n     *\n     * @param args Update options\n     * @returns Whether the update was successful or not.\n     */\n    update(args) {\n        const { id, message, actions, autoClose, data, progress, type } = args;\n        const newProgress = typeof progress === 'number'\n            ? Math.min(Math.max(0, progress), 1)\n            : progress;\n        const notificationIndex = this._queue.findIndex(n => n.id === id);\n        if (notificationIndex > -1) {\n            const oldNotification = this._queue[notificationIndex];\n            // We need to create a new object as notification are frozen; i.e. cannot be edited\n            const notification = Object.freeze({\n                ...oldNotification,\n                message: message !== null && message !== void 0 ? message : oldNotification.message,\n                type: type !== null && type !== void 0 ? type : oldNotification.type,\n                options: {\n                    actions: actions !== null && actions !== void 0 ? actions : oldNotification.options.actions,\n                    autoClose: autoClose !== null && autoClose !== void 0 ? autoClose : oldNotification.options.autoClose,\n                    data: data !== null && data !== void 0 ? data : oldNotification.options.data,\n                    progress: newProgress !== null && newProgress !== void 0 ? newProgress : oldNotification.options.progress\n                },\n                modifiedAt: Date.now()\n            });\n            this._queue.splice(notificationIndex, 1);\n            this._queue.unshift(notification);\n            this._changed.emit({\n                type: 'updated',\n                notification\n            });\n            return true;\n        }\n        return false;\n    }\n}\n/**\n * Notification namespace\n */\nvar Notification;\n(function (Notification) {\n    /**\n     * The global notification manager.\n     */\n    Notification.manager = new NotificationManager();\n    /**\n     * Dismiss one notification (specified by its id) or all if no id provided\n     *\n     * @param id notification id\n     */\n    function dismiss(id) {\n        Notification.manager.dismiss(id);\n    }\n    Notification.dismiss = dismiss;\n    /**\n     * Helper function to emit a notification.\n     *\n     * #### Notes\n     * The message will be truncated if longer than 140 characters.\n     *\n     * @param message Notification message\n     * @param type Notification type\n     * @param options Options for the error notification\n     * @returns Notification unique id\n     */\n    function emit(message, type = 'default', options = {}) {\n        return Notification.manager.notify(message, type, options);\n    }\n    Notification.emit = emit;\n    /**\n     * Helper function to emit an error notification.\n     *\n     * #### Notes\n     * The message will be truncated if longer than 140 characters.\n     *\n     * @param message Notification message\n     * @param options Options for the error notification\n     * @returns Notification unique id\n     */\n    function error(message, options = {}) {\n        return Notification.manager.notify(message, 'error', options);\n    }\n    Notification.error = error;\n    /**\n     * Helper function to emit an info notification.\n     *\n     * #### Notes\n     * The message will be truncated if longer than 140 characters.\n     *\n     * @param message Notification message\n     * @param options Options for the info notification\n     * @returns Notification unique id\n     */\n    function info(message, options = {}) {\n        return Notification.manager.notify(message, 'info', options);\n    }\n    Notification.info = info;\n    /**\n     * Helper function to show an in-progress notification.\n     *\n     * #### Notes\n     * The message will be truncated if longer than 140 characters.\n     *\n     * @param promise Promise to wait for\n     * @param options Options for the in-progress notification\n     * @returns Notification unique id\n     */\n    function promise(promise, options) {\n        var _a;\n        const { pending, error, success } = options;\n        const id = Notification.manager.notify(pending.message, 'in-progress', (_a = pending.options) !== null && _a !== void 0 ? _a : {});\n        promise\n            .then(result => {\n            var _a, _b, _c;\n            Notification.manager.update({\n                id,\n                message: success.message(result, (_a = success.options) === null || _a === void 0 ? void 0 : _a.data),\n                type: 'success',\n                ...success.options,\n                data: (_c = (_b = success.options) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : result\n            });\n        })\n            .catch(reason => {\n            var _a, _b, _c;\n            Notification.manager.update({\n                id,\n                message: error.message(reason, (_a = error.options) === null || _a === void 0 ? void 0 : _a.data),\n                type: 'error',\n                ...error.options,\n                data: (_c = (_b = error.options) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : reason\n            });\n        });\n        return id;\n    }\n    Notification.promise = promise;\n    /**\n     * Helper function to emit a success notification.\n     *\n     * #### Notes\n     * The message will be truncated if longer than 140 characters.\n     *\n     * @param message Notification message\n     * @param options Options for the success notification\n     * @returns Notification unique id\n     */\n    function success(message, options = {}) {\n        return Notification.manager.notify(message, 'success', options);\n    }\n    Notification.success = success;\n    /**\n     * Helper function to update a notification.\n     *\n     * If the notification does not exists, nothing will happen.\n     *\n     * Once updated the notification will be moved at the begin\n     * of the notification stack.\n     *\n     * #### Notes\n     * The message will be truncated if longer than 140 characters.\n     *\n     * @param args Update options\n     * @returns Whether the update was successful or not.\n     */\n    function update(args) {\n        return Notification.manager.update(args);\n    }\n    Notification.update = update;\n    /**\n     * Helper function to emit a warning notification.\n     *\n     * #### Notes\n     * The message will be truncated if longer than 140 characters.\n     *\n     * @param message Notification message\n     * @param options Options for the warning notification\n     * @returns Notification unique id\n     */\n    function warning(message, options = {}) {\n        return Notification.manager.notify(message, 'warning', options);\n    }\n    Notification.warning = warning;\n})(Notification || (Notification = {}));\n//# sourceMappingURL=notification.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/notification.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/printing.js":
/*!************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/printing.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Printing: () => (/* binding */ Printing)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/services */ \"webpack/sharing/consume/default/@jupyterlab/services/@jupyterlab/services\");\n/* harmony import */ var _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * Any object is \"printable\" if it implements the `IPrintable` interface.\n *\n * To do this it, it must have a method called `Printing.symbol` which returns either a function\n * to print the object or null if it cannot be printed.\n *\n * One way of printing is to use the `printWidget` function, which creates a hidden iframe\n * and copies the DOM nodes from your widget to that iframe and printing just that iframe.\n *\n * Another way to print is to use the `printURL` function, which takes a URL and prints that page.\n */\nvar Printing;\n(function (Printing) {\n    /**\n     * Symbol to use for a method that returns a function to print an object.\n     */\n    Printing.symbol = Symbol('printable');\n    /**\n     * Returns whether an object implements a print method.\n     */\n    function isPrintable(a) {\n        if (typeof a !== 'object' || !a) {\n            return false;\n        }\n        return Printing.symbol in a;\n    }\n    Printing.isPrintable = isPrintable;\n    /**\n     * Returns the print function for an object, or null if it does not provide a handler.\n     */\n    function getPrintFunction(val) {\n        if (isPrintable(val)) {\n            return val[Printing.symbol]();\n        }\n        return null;\n    }\n    Printing.getPrintFunction = getPrintFunction;\n    /**\n     * Prints a widget by copying it's DOM node\n     * to a hidden iframe and printing that iframe.\n     */\n    function printWidget(widget) {\n        return printContent(widget.node);\n    }\n    Printing.printWidget = printWidget;\n    /**\n     * Prints a URL by loading it into an iframe.\n     *\n     * @param url URL to load into an iframe.\n     */\n    async function printURL(url) {\n        const settings = _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__.ServerConnection.makeSettings();\n        const text = await (await _jupyterlab_services__WEBPACK_IMPORTED_MODULE_0__.ServerConnection.makeRequest(url, {}, settings)).text();\n        return printContent(text);\n    }\n    Printing.printURL = printURL;\n    /**\n     * Prints a URL or an element in an iframe and then removes the iframe after printing.\n     */\n    async function printContent(textOrEl) {\n        const isText = typeof textOrEl === 'string';\n        const iframe = createIFrame();\n        const parent = window.document.body;\n        parent.appendChild(iframe);\n        if (isText) {\n            iframe.srcdoc = textOrEl;\n            await resolveWhenLoaded(iframe);\n        }\n        else {\n            iframe.src = 'about:blank';\n            await resolveWhenLoaded(iframe);\n            setIFrameNode(iframe, textOrEl);\n        }\n        const printed = resolveAfterEvent();\n        launchPrint(iframe.contentWindow);\n        // Once the print dialog has been dismissed, we regain event handling,\n        // and it should be safe to discard the hidden iframe.\n        await printed;\n        parent.removeChild(iframe);\n    }\n    /**\n     * Creates a new hidden iframe and appends it to the document\n     *\n     * Modified from\n     * https://github.com/joseluisq/printd/blob/eb7948d602583c055ab6dee3ee294b6a421da4b6/src/index.ts#L24\n     */\n    function createIFrame() {\n        const el = window.document.createElement('iframe');\n        // We need both allow-modals and allow-same-origin to be able to\n        // call print in the iframe.\n        // We intentionally do not allow scripts:\n        // https://github.com/jupyterlab/jupyterlab/pull/5850#pullrequestreview-230899790\n        el.setAttribute('sandbox', 'allow-modals allow-same-origin');\n        const css = 'visibility:hidden;width:0;height:0;position:absolute;z-index:-9999;bottom:0;';\n        el.setAttribute('style', css);\n        el.setAttribute('width', '0');\n        el.setAttribute('height', '0');\n        return el;\n    }\n    /**\n     * Copies a node from the base document to the iframe.\n     */\n    function setIFrameNode(iframe, node) {\n        iframe.contentDocument.body.appendChild(node.cloneNode(true));\n        iframe.contentDocument.close();\n    }\n    /**\n     * Promise that resolves when all resources are loaded in the window.\n     */\n    function resolveWhenLoaded(iframe) {\n        return new Promise(resolve => {\n            iframe.onload = () => resolve();\n        });\n    }\n    /**\n     * A promise that resolves after the next mousedown, mousemove, or\n     * keydown event. We use this as a proxy for determining when the\n     * main window has regained control after the print dialog is removed.\n     *\n     * We can't use the usual window.onafterprint handler because we\n     * disallow Javascript execution in the print iframe.\n     */\n    function resolveAfterEvent() {\n        return new Promise(resolve => {\n            const onEvent = () => {\n                document.removeEventListener('mousemove', onEvent, true);\n                document.removeEventListener('mousedown', onEvent, true);\n                document.removeEventListener('keydown', onEvent, true);\n                resolve();\n            };\n            document.addEventListener('mousemove', onEvent, true);\n            document.addEventListener('mousedown', onEvent, true);\n            document.addEventListener('keydown', onEvent, true);\n        });\n    }\n    /**\n     * Prints a content window.\n     */\n    function launchPrint(contentWindow) {\n        const result = contentWindow.document.execCommand('print', false);\n        // execCommand won't work in firefox so we call the `print` method instead if it fails\n        // https://github.com/joseluisq/printd/blob/eb7948d602583c055ab6dee3ee294b6a421da4b6/src/index.ts#L148\n        if (!result) {\n            contentWindow.print();\n        }\n    }\n})(Printing || (Printing = {}));\n//# sourceMappingURL=printing.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/printing.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/runningSessions.js":
/*!*******************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/runningSessions.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   RunningSessions: () => (/* binding */ RunningSessions)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @jupyterlab/statusbar */ \"webpack/sharing/consume/default/@jupyterlab/statusbar/@jupyterlab/statusbar\");\n/* harmony import */ var _jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n/**\n * Half spacing between subitems in a status item.\n */\nconst HALF_SPACING = 4;\n/**\n * A pure functional component for rendering kernel and terminal sessions.\n *\n * @param props the props for the component.\n *\n * @returns a tsx component for the running sessions.\n */\nfunction RunningSessionsComponent(props) {\n    return (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.GroupItem, { tabIndex: 0, spacing: HALF_SPACING, onClick: props.handleClick, onKeyDown: props.handleKeyDown },\n        react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.GroupItem, { spacing: HALF_SPACING },\n            react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.TextItem, { source: props.terminals }),\n            react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.terminalIcon.react, { left: '1px', top: '3px', stylesheet: 'statusBar' })),\n        react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.GroupItem, { spacing: HALF_SPACING },\n            react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_statusbar__WEBPACK_IMPORTED_MODULE_3__.TextItem, { source: props.sessions }),\n            react__WEBPACK_IMPORTED_MODULE_2___default().createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.kernelIcon.react, { top: '2px', stylesheet: 'statusBar' }))));\n}\n/**\n * A VDomRenderer for a RunningSessions status item.\n */\nclass RunningSessions extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.VDomRenderer {\n    /**\n     * Create a new RunningSessions widget.\n     */\n    constructor(opts) {\n        super(new RunningSessions.Model());\n        this._serviceManager = opts.serviceManager;\n        this._handleClick = opts.onClick;\n        this._handleKeyDown = opts.onKeyDown;\n        this.translator = opts.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n        this._trans = this.translator.load('jupyterlab');\n        this._serviceManager.sessions.runningChanged.connect(this._onSessionsRunningChanged, this);\n        this._serviceManager.terminals.runningChanged.connect(this._onTerminalsRunningChanged, this);\n        this.addClass('jp-mod-highlighted');\n    }\n    /**\n     * Render the running sessions widget.\n     */\n    render() {\n        if (!this.model) {\n            return null;\n        }\n        // TODO-TRANS: Should probably be handled differently.\n        // This is more localizable friendly: \"Terminals: %1 | Kernels: %2\"\n        this.title.caption = this._trans.__('%1 Terminals, %2 Kernel sessions', this.model.terminals, this.model.sessions);\n        return (react__WEBPACK_IMPORTED_MODULE_2___default().createElement(RunningSessionsComponent, { sessions: this.model.sessions, terminals: this.model.terminals, handleClick: this._handleClick, handleKeyDown: this._handleKeyDown }));\n    }\n    /**\n     * Dispose of the status item.\n     */\n    dispose() {\n        super.dispose();\n        this._serviceManager.sessions.runningChanged.disconnect(this._onSessionsRunningChanged, this);\n        this._serviceManager.terminals.runningChanged.disconnect(this._onTerminalsRunningChanged, this);\n    }\n    /**\n     * Set the number of kernel sessions when the list changes.\n     */\n    _onSessionsRunningChanged(manager, sessions) {\n        this.model.sessions = sessions.length;\n    }\n    /**\n     * Set the number of terminal sessions when the list changes.\n     */\n    _onTerminalsRunningChanged(manager, terminals) {\n        this.model.terminals = terminals.length;\n    }\n}\n/**\n * A namespace for RunningSessions statics.\n */\n(function (RunningSessions) {\n    /**\n     * A VDomModel for the RunningSessions status item.\n     */\n    class Model extends _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.VDomModel {\n        constructor() {\n            super(...arguments);\n            this._terminals = 0;\n            this._sessions = 0;\n        }\n        /**\n         * The number of active kernel sessions.\n         */\n        get sessions() {\n            return this._sessions;\n        }\n        set sessions(sessions) {\n            const oldSessions = this._sessions;\n            this._sessions = sessions;\n            if (oldSessions !== this._sessions) {\n                this.stateChanged.emit(void 0);\n            }\n        }\n        /**\n         * The number of active terminal sessions.\n         */\n        get terminals() {\n            return this._terminals;\n        }\n        set terminals(terminals) {\n            const oldTerminals = this._terminals;\n            this._terminals = terminals;\n            if (oldTerminals !== this._terminals) {\n                this.stateChanged.emit(void 0);\n            }\n        }\n    }\n    RunningSessions.Model = Model;\n})(RunningSessions || (RunningSessions = {}));\n//# sourceMappingURL=runningSessions.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/runningSessions.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/sanitizer.js":
/*!*************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/sanitizer.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Sanitizer: () => (/* binding */ Sanitizer)\n/* harmony export */ });\n/* harmony import */ var sanitize_html__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! sanitize-html */ \"../node_modules/sanitize-html/index.js\");\n/* harmony import */ var sanitize_html__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(sanitize_html__WEBPACK_IMPORTED_MODULE_0__);\n/* eslint-disable camelcase */\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * Helper class that contains regular expressions for inline CSS style validation.\n *\n * Which properties (and values) to allow is largely based on the Google Caja project:\n *   https://github.com/google/caja\n *\n * The regular expressions are largly based on the syntax definition found at\n * https://developer.mozilla.org/en-US/docs/Web/CSS.\n */\nclass CssProp {\n    static reg(r) {\n        return new RegExp('^' + r + '$', 'i');\n    }\n}\n/*\n * Numeric base expressions used to help build more complex regular expressions\n */\nCssProp.N = {\n    integer: `[+-]?[0-9]+`,\n    integer_pos: `[+]?[0-9]+`,\n    integer_zero_ff: `([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])`,\n    number: `[+-]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?`,\n    number_pos: `[+]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?`,\n    number_zero_hundred: `[+]?(([0-9]|[1-9][0-9])([.][0-9]+)?|100)`,\n    number_zero_one: `[+]?(1([.][0]+)?|0?([.][0-9]+)?)`\n};\n/*\n * Base expressions of common CSS syntax elements\n */\nCssProp.B = {\n    angle: `(${CssProp.N.number}(deg|rad|grad|turn)|0)`,\n    frequency: `${CssProp.N.number}(Hz|kHz)`,\n    ident: String.raw `-?([_a-z]|[\\xA0-\\xFF]|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])([_a-z0-9-]|[\\xA0-\\xFF]|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])*`,\n    len_or_perc: `(0|${CssProp.N.number}(px|em|rem|ex|in|cm|mm|pt|pc|%))`,\n    length: `(${CssProp.N.number}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,\n    length_pos: `(${CssProp.N.number_pos}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,\n    percentage: `${CssProp.N.number}%`,\n    percentage_pos: `${CssProp.N.number_pos}%`,\n    percentage_zero_hundred: `${CssProp.N.number_zero_hundred}%`,\n    string: String.raw `(\\\"([^\\n\\r\\f\\\\\"]|\\\\\\n|\\r\\n|\\r|\\f|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])*\\\")|(\\'([^\\n\\r\\f\\\\']|\\\\\\n|\\r\\n|\\r|\\f|\\\\[0-9a-f]{1,6}(\\r\\n|[ \\t\\r\\n\\f])?|\\\\[^\\r\\n\\f0-9a-f])*\\')`,\n    time: `${CssProp.N.number}(s|ms)`,\n    url: `url\\\\(.*?\\\\)`,\n    z_index: `[+-]?[0-9]{1,7}`\n};\n/*\n * Atomic (i.e. not dependant on other regular expressions) sub RegEx segments\n */\nCssProp.A = {\n    absolute_size: `xx-small|x-small|small|medium|large|x-large|xx-large`,\n    attachment: `scroll|fixed|local`,\n    bg_origin: `border-box|padding-box|content-box`,\n    border_style: `none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset`,\n    box: `border-box|padding-box|content-box`,\n    display_inside: `auto|block|table|flex|grid`,\n    display_outside: `block-level|inline-level|none|table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption`,\n    ending_shape: `circle|ellipse`,\n    generic_family: `serif|sans-serif|cursive|fantasy|monospace`,\n    generic_voice: `male|female|child`,\n    relative_size: `smaller|larger`,\n    repeat_style: `repeat-x|repeat-y|((?:repeat|space|round|no-repeat)(?:\\\\s*(?:repeat|space|round|no-repeat))?)`,\n    side_or_corner: `(left|right)?\\\\s*(top|bottom)?`,\n    single_animation_direction: `normal|reverse|alternate|alternate-reverse`,\n    single_animation_fill_mode: `none|forwards|backwards|both`,\n    single_animation_play_state: `running|paused`\n};\n/*\n * Color definition sub expressions\n */\nCssProp._COLOR = {\n    hex: `\\\\#(0x)?[0-9a-f]+`,\n    name: `aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|transparent|violet|wheat|white|whitesmoke|yellow|yellowgreen`,\n    rgb: String.raw `rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)`,\n    rgba: String.raw `rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(${CssProp.N.integer_zero_ff}|${CssProp.N.number_zero_one}|${CssProp.B.percentage_zero_hundred})\\s*\\)`\n};\n/*\n * Compound (i.e. dependant on other (sub) regular expressions) sub RegEx segments\n */\nCssProp._C = {\n    alpha: `${CssProp.N.integer_zero_ff}|${CssProp.N.number_zero_one}|${CssProp.B.percentage_zero_hundred}`,\n    alphavalue: CssProp.N.number_zero_one,\n    bg_position: `((${CssProp.B.len_or_perc}|left|center|right|top|bottom)\\\\s*){1,4}`,\n    bg_size: `(${CssProp.B.length_pos}|${CssProp.B.percentage}|auto){1,2}|cover|contain`,\n    border_width: `thin|medium|thick|${CssProp.B.length}`,\n    bottom: `${CssProp.B.length}|auto`,\n    color: `${CssProp._COLOR.hex}|${CssProp._COLOR.rgb}|${CssProp._COLOR.rgba}|${CssProp._COLOR.name}`,\n    color_stop_length: `(${CssProp.B.len_or_perc}\\\\s*){1,2}`,\n    linear_color_hint: `${CssProp.B.len_or_perc}`,\n    family_name: `${CssProp.B.string}|(${CssProp.B.ident}\\\\s*)+`,\n    image_decl: CssProp.B.url,\n    left: `${CssProp.B.length}|auto`,\n    loose_quotable_words: `(${CssProp.B.ident})+`,\n    margin_width: `${CssProp.B.len_or_perc}|auto`,\n    padding_width: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}`,\n    page_url: CssProp.B.url,\n    position: `((${CssProp.B.len_or_perc}|left|center|right|top|bottom)\\\\s*){1,4}`,\n    right: `${CssProp.B.length}|auto`,\n    shadow: '',\n    size: `closest-side|farthest-side|closest-corner|farthest-corner|${CssProp.B.length}|(${CssProp.B.len_or_perc})\\\\s+(${CssProp.B.len_or_perc})`,\n    top: `${CssProp.B.length}|auto`\n};\nCssProp._C1 = {\n    image_list: `image\\\\(\\\\s*(${CssProp.B.url})*\\\\s*(${CssProp.B.url}|${CssProp._C.color})\\\\s*\\\\)`,\n    linear_color_stop: `(${CssProp._C.color})(\\\\s*${CssProp._C.color_stop_length})?`,\n    shadow: `((${CssProp._C.color})\\\\s+((${CssProp.B.length})\\\\s*){2,4}(\\s+inset)?)|((inset\\\\s+)?((${CssProp.B.length})\\\\s*){2,4}\\\\s*(${CssProp._C.color})?)`\n};\nCssProp._C2 = {\n    color_stop_list: `((${CssProp._C1.linear_color_stop})(\\\\s*(${CssProp._C.linear_color_hint}))?\\\\s*,\\\\s*)+(${CssProp._C1.linear_color_stop})`,\n    shape: `rect\\\\(\\\\s*(${CssProp._C.top})\\\\s*,\\\\s*(${CssProp._C.right})\\\\s*,\\\\s*(${CssProp._C.bottom})\\\\s*,\\\\s*(${CssProp._C.left})\\\\s*\\\\)`\n};\nCssProp._C3 = {\n    linear_gradient: `linear-gradient\\\\((((${CssProp.B.angle})|to\\\\s+(${CssProp.A.side_or_corner}))\\\\s*,\\\\s*)?\\\\s*(${CssProp._C2.color_stop_list})\\\\s*\\\\)`,\n    radial_gradient: `radial-gradient\\\\(((((${CssProp.A.ending_shape})|(${CssProp._C.size}))\\\\s*)*\\\\s*(at\\\\s+${CssProp._C.position})?\\\\s*,\\\\s*)?\\\\s*(${CssProp._C2.color_stop_list})\\\\s*\\\\)`\n};\nCssProp._C4 = {\n    image: `${CssProp.B.url}|${CssProp._C3.linear_gradient}|${CssProp._C3.radial_gradient}|${CssProp._C1.image_list}`,\n    bg_image: `(${CssProp.B.url}|${CssProp._C3.linear_gradient}|${CssProp._C3.radial_gradient}|${CssProp._C1.image_list})|none`\n};\nCssProp.C = {\n    ...CssProp._C,\n    ...CssProp._C1,\n    ...CssProp._C2,\n    ...CssProp._C3,\n    ...CssProp._C4\n};\n/*\n * Property value regular expressions not dependant on other sub expressions\n */\nCssProp.AP = {\n    border_collapse: `collapse|separate`,\n    box: `normal|none|contents`,\n    box_sizing: `content-box|padding-box|border-box`,\n    caption_side: `top|bottom`,\n    clear: `none|left|right|both`,\n    direction: `ltr|rtl`,\n    empty_cells: `show|hide`,\n    float: `left|right|none`,\n    font_stretch: `normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded`,\n    font_style: `normal|italic|oblique`,\n    font_variant: `normal|small-caps`,\n    font_weight: `normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900`,\n    list_style_position: `inside|outside`,\n    list_style_type: `disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-latin|upper-latin|armenian|georgian|lower-alpha|upper-alpha|none`,\n    overflow: `visible|hidden|scroll|auto`,\n    overflow_wrap: `normal|break-word`,\n    overflow_x: `visible|hidden|scroll|auto|no-display|no-content`,\n    page_break_after: `auto|always|avoid|left|right`,\n    page_break_before: `auto|always|avoid|left|right`,\n    page_break_inside: `avoid|auto`,\n    position: `static|relative|absolute`,\n    resize: `none|both|horizontal|vertical`,\n    speak: `normal|none|spell-out`,\n    speak_header: `once|always`,\n    speak_numeral: `digits|continuous`,\n    speak_punctuation: `code|none`,\n    table_layout: `auto|fixed`,\n    text_align: `left|right|center|justify`,\n    text_decoration: `none|((underline|overline|line-through|blink)\\\\s*)+`,\n    text_transform: `capitalize|uppercase|lowercase|none`,\n    text_wrap: `normal|unrestricted|none|suppress`,\n    unicode_bidi: `normal|embed|bidi-override`,\n    visibility: `visible|hidden|collapse`,\n    white_space: `normal|pre|nowrap|pre-wrap|pre-line`,\n    word_break: `normal|keep-all|break-all`\n};\n/*\n * Compound propertiy value regular expressions (i.e. dependant on other sub expressions)\n */\nCssProp._CP = {\n    background_attachment: `${CssProp.A.attachment}(,\\\\s*${CssProp.A.attachment})*`,\n    background_color: CssProp.C.color,\n    background_origin: `${CssProp.A.box}(,\\\\s*${CssProp.A.box})*`,\n    background_repeat: `${CssProp.A.repeat_style}(,\\\\s*${CssProp.A.repeat_style})*`,\n    border: `((${CssProp.C.border_width}|${CssProp.A.border_style}|${CssProp.C.color})\\\\s*){1,3}`,\n    border_radius: `((${CssProp.B.len_or_perc})\\\\s*){1,4}(\\\\/\\\\s*((${CssProp.B.len_or_perc})\\\\s*){1,4})?`,\n    border_spacing: `${CssProp.B.length}\\\\s*(${CssProp.B.length})?`,\n    border_top_color: CssProp.C.color,\n    border_top_style: CssProp.A.border_style,\n    border_width: `((${CssProp.C.border_width})\\\\s*){1,4}`,\n    color: CssProp.C.color,\n    cursor: `(${CssProp.B.url}(\\\\s*,\\\\s*)?)*(auto|crosshair|default|pointer|move|e-resize|ne-resize|nw-resize|n-resize|se-resize|sw-resize|s-resize|w-resize|text|wait|help|progress|all-scroll|col-resize|hand|no-drop|not-allowed|row-resize|vertical-text)`,\n    display: `inline|block|list-item|run-in|inline-list-item|inline-block|table|inline-table|table-cell|table-caption|flex|inline-flex|grid|inline-grid|${CssProp.A.display_inside}|${CssProp.A.display_outside}|inherit|inline-box|inline-stack`,\n    display_outside: CssProp.A.display_outside,\n    elevation: `${CssProp.B.angle}|below|level|above|higher|lower`,\n    font_family: `(${CssProp.C.family_name}|${CssProp.A.generic_family})(,\\\\s*(${CssProp.C.family_name}|${CssProp.A.generic_family}))*`,\n    height: `${CssProp.B.length}|${CssProp.B.percentage}|auto`,\n    letter_spacing: `normal|${CssProp.B.length}`,\n    list_style_image: `${CssProp.C.image}|none`,\n    margin_right: CssProp.C.margin_width,\n    max_height: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}|none|auto`,\n    min_height: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}|auto`,\n    opacity: CssProp.C.alphavalue,\n    outline_color: `${CssProp.C.color}|invert`,\n    outline_width: CssProp.C.border_width,\n    padding: `((${CssProp.C.padding_width})\\\\s*){1,4}`,\n    padding_top: CssProp.C.padding_width,\n    pitch_range: CssProp.N.number,\n    right: `${CssProp.B.length}|${CssProp.B.percentage}|auto`,\n    stress: CssProp.N.number,\n    text_indent: `${CssProp.B.length}|${CssProp.B.percentage}`,\n    text_shadow: `none|${CssProp.C.shadow}(,\\\\s*(${CssProp.C.shadow}))*`,\n    volume: `${CssProp.N.number_pos}|${CssProp.B.percentage_pos}|silent|x-soft|soft|medium|loud|x-loud`,\n    word_wrap: CssProp.AP.overflow_wrap,\n    zoom: `normal|${CssProp.N.number_pos}|${CssProp.B.percentage_pos}`,\n    backface_visibility: CssProp.AP.visibility,\n    background_clip: `${CssProp.A.box}(,\\\\s*(${CssProp.A.box}))*`,\n    background_position: `${CssProp.C.bg_position}(,\\\\s*(${CssProp.C.bg_position}))*`,\n    border_bottom_color: CssProp.C.color,\n    border_bottom_style: CssProp.A.border_style,\n    border_color: `((${CssProp.C.color})\\\\s*){1,4}`,\n    border_left_color: CssProp.C.color,\n    border_right_color: CssProp.C.color,\n    border_style: `((${CssProp.A.border_style})\\\\s*){1,4}`,\n    border_top_left_radius: `(${CssProp.B.length}|${CssProp.B.percentage})(\\\\s*(${CssProp.B.length}|${CssProp.B.percentage}))?`,\n    border_top_width: CssProp.C.border_width,\n    box_shadow: `none|${CssProp.C.shadow}(,\\\\s*(${CssProp.C.shadow}))*`,\n    clip: `${CssProp.C.shape}|auto`,\n    display_inside: CssProp.A.display_inside,\n    font_size: `${CssProp.A.absolute_size}|${CssProp.A.relative_size}|${CssProp.B.length_pos}|${CssProp.B.percentage_pos}`,\n    line_height: `normal|${CssProp.N.number_pos}|${CssProp.B.length_pos}|${CssProp.B.percentage_pos}`,\n    margin_left: CssProp.C.margin_width,\n    max_width: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}|none|auto`,\n    outline_style: CssProp.A.border_style,\n    padding_bottom: CssProp.C.padding_width,\n    padding_right: CssProp.C.padding_width,\n    perspective: `none|${CssProp.B.length}`,\n    richness: CssProp.N.number,\n    text_overflow: `((clip|ellipsis|${CssProp.B.string})\\\\s*){1,2}`,\n    top: `${CssProp.B.length}|${CssProp.B.percentage}|auto`,\n    width: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}|auto`,\n    z_index: `auto|${CssProp.B.z_index}`,\n    // Simplified background\n    background: `(((${CssProp.C.bg_position}\\\\s*(\\\\/\\\\s*${CssProp.C.bg_size})?)|(${CssProp.A.repeat_style})|(${CssProp.A.attachment})|(${CssProp.A.bg_origin})|(${CssProp.C.bg_image})|(${CssProp.C.color}))\\\\s*)+`,\n    background_size: `${CssProp.C.bg_size}(,\\\\s*${CssProp.C.bg_size})*`,\n    border_bottom_left_radius: `(${CssProp.B.length}|${CssProp.B.percentage})(\\\\s*(${CssProp.B.length}|${CssProp.B.percentage}))?`,\n    border_bottom_width: CssProp.C.border_width,\n    border_left_style: CssProp.A.border_style,\n    border_right_style: CssProp.A.border_style,\n    border_top: `((${CssProp.C.border_width}|${CssProp.A.border_style}|${CssProp.C.color})\\\\s*){1,3}`,\n    bottom: `${CssProp.B.len_or_perc}|auto`,\n    list_style: `((${CssProp.AP.list_style_type}|${CssProp.AP.list_style_position}|${CssProp.C.image}|none})\\\\s*){1,3}`,\n    margin_top: CssProp.C.margin_width,\n    outline: `((${CssProp.C.color}|invert|${CssProp.A.border_style}|${CssProp.C.border_width})\\\\s*){1,3}`,\n    overflow_y: CssProp.AP.overflow_x,\n    pitch: `${CssProp.B.frequency}|x-low|low|medium|high|x-high`,\n    vertical_align: `baseline|sub|super|top|text-top|middle|bottom|text-bottom|${CssProp.B.len_or_perc}`,\n    word_spacing: `normal|${CssProp.B.length}`,\n    background_image: `${CssProp.C.bg_image}(,\\\\s*${CssProp.C.bg_image})*`,\n    border_bottom_right_radius: `(${CssProp.B.length}|${CssProp.B.percentage})(\\\\s*(${CssProp.B.length}|${CssProp.B.percentage}))?`,\n    border_left_width: CssProp.C.border_width,\n    border_right_width: CssProp.C.border_width,\n    left: `${CssProp.B.len_or_perc}|auto`,\n    margin_bottom: CssProp.C.margin_width,\n    pause_after: `${CssProp.B.time}|${CssProp.B.percentage}`,\n    speech_rate: `${CssProp.N.number}|x-slow|slow|medium|fast|x-fast|faster|slower`,\n    transition_duration: `${CssProp.B.time}(,\\\\s*${CssProp.B.time})*`,\n    border_bottom: `((${CssProp.C.border_width}|${CssProp.A.border_style}|${CssProp.C.color})\\\\s*){1,3}`,\n    border_right: `((${CssProp.C.border_width}|${CssProp.A.border_style}|${CssProp.C.color})\\\\s*){1,3}`,\n    margin: `((${CssProp.C.margin_width})\\\\s*){1,4}`,\n    padding_left: CssProp.C.padding_width,\n    border_left: `((${CssProp.C.border_width}|${CssProp.A.border_style}|${CssProp.C.color})\\\\s*){1,3}`,\n    quotes: `(${CssProp.B.string}\\\\s*${CssProp.B.string})+|none`,\n    border_top_right_radius: `(${CssProp.B.length}|${CssProp.B.percentage})(\\\\s*(${CssProp.B.length}|${CssProp.B.percentage}))?`,\n    min_width: `${CssProp.B.length_pos}|${CssProp.B.percentage_pos}|auto`\n};\nCssProp._CP1 = {\n    font: `(((((${CssProp.AP.font_style}|${CssProp.AP.font_variant}|${CssProp.AP.font_weight})\\\\s*){1,3})?\\\\s*(${CssProp._CP.font_size})\\\\s*(\\\\/\\\\s*(${CssProp._CP.line_height}))?\\\\s+(${CssProp._CP.font_family}))|caption|icon|menu|message-box|small-caption|status-bar)`\n};\nCssProp.CP = { ...CssProp._CP, ...CssProp._CP1 };\n// CSS Property value validation regular expressions for use with sanitize-html\nCssProp.BORDER_COLLAPSE = CssProp.reg(CssProp.AP.border_collapse);\nCssProp.BOX = CssProp.reg(CssProp.AP.box);\nCssProp.BOX_SIZING = CssProp.reg(CssProp.AP.box_sizing);\nCssProp.CAPTION_SIDE = CssProp.reg(CssProp.AP.caption_side);\nCssProp.CLEAR = CssProp.reg(CssProp.AP.clear);\nCssProp.DIRECTION = CssProp.reg(CssProp.AP.direction);\nCssProp.EMPTY_CELLS = CssProp.reg(CssProp.AP.empty_cells);\nCssProp.FLOAT = CssProp.reg(CssProp.AP.float);\nCssProp.FONT_STRETCH = CssProp.reg(CssProp.AP.font_stretch);\nCssProp.FONT_STYLE = CssProp.reg(CssProp.AP.font_style);\nCssProp.FONT_VARIANT = CssProp.reg(CssProp.AP.font_variant);\nCssProp.FONT_WEIGHT = CssProp.reg(CssProp.AP.font_weight);\nCssProp.LIST_STYLE_POSITION = CssProp.reg(CssProp.AP.list_style_position);\nCssProp.LIST_STYLE_TYPE = CssProp.reg(CssProp.AP.list_style_type);\nCssProp.OVERFLOW = CssProp.reg(CssProp.AP.overflow);\nCssProp.OVERFLOW_WRAP = CssProp.reg(CssProp.AP.overflow_wrap);\nCssProp.OVERFLOW_X = CssProp.reg(CssProp.AP.overflow_x);\nCssProp.PAGE_BREAK_AFTER = CssProp.reg(CssProp.AP.page_break_after);\nCssProp.PAGE_BREAK_BEFORE = CssProp.reg(CssProp.AP.page_break_before);\nCssProp.PAGE_BREAK_INSIDE = CssProp.reg(CssProp.AP.page_break_inside);\nCssProp.POSITION = CssProp.reg(CssProp.AP.position);\nCssProp.RESIZE = CssProp.reg(CssProp.AP.resize);\nCssProp.SPEAK = CssProp.reg(CssProp.AP.speak);\nCssProp.SPEAK_HEADER = CssProp.reg(CssProp.AP.speak_header);\nCssProp.SPEAK_NUMERAL = CssProp.reg(CssProp.AP.speak_numeral);\nCssProp.SPEAK_PUNCTUATION = CssProp.reg(CssProp.AP.speak_punctuation);\nCssProp.TABLE_LAYOUT = CssProp.reg(CssProp.AP.table_layout);\nCssProp.TEXT_ALIGN = CssProp.reg(CssProp.AP.text_align);\nCssProp.TEXT_DECORATION = CssProp.reg(CssProp.AP.text_decoration);\nCssProp.TEXT_TRANSFORM = CssProp.reg(CssProp.AP.text_transform);\nCssProp.TEXT_WRAP = CssProp.reg(CssProp.AP.text_wrap);\nCssProp.UNICODE_BIDI = CssProp.reg(CssProp.AP.unicode_bidi);\nCssProp.VISIBILITY = CssProp.reg(CssProp.AP.visibility);\nCssProp.WHITE_SPACE = CssProp.reg(CssProp.AP.white_space);\nCssProp.WORD_BREAK = CssProp.reg(CssProp.AP.word_break);\nCssProp.BACKGROUND_ATTACHMENT = CssProp.reg(CssProp.CP.background_attachment);\nCssProp.BACKGROUND_COLOR = CssProp.reg(CssProp.CP.background_color);\nCssProp.BACKGROUND_ORIGIN = CssProp.reg(CssProp.CP.background_origin);\nCssProp.BACKGROUND_REPEAT = CssProp.reg(CssProp.CP.background_repeat);\nCssProp.BORDER = CssProp.reg(CssProp.CP.border);\nCssProp.BORDER_RADIUS = CssProp.reg(CssProp.CP.border_radius);\nCssProp.BORDER_SPACING = CssProp.reg(CssProp.CP.border_spacing);\nCssProp.BORDER_TOP_COLOR = CssProp.reg(CssProp.CP.border_top_color);\nCssProp.BORDER_TOP_STYLE = CssProp.reg(CssProp.CP.border_top_style);\nCssProp.BORDER_WIDTH = CssProp.reg(CssProp.CP.border_width);\nCssProp.COLOR = CssProp.reg(CssProp.CP.color);\nCssProp.CURSOR = CssProp.reg(CssProp.CP.cursor);\nCssProp.DISPLAY = CssProp.reg(CssProp.CP.display);\nCssProp.DISPLAY_OUTSIDE = CssProp.reg(CssProp.CP.display_outside);\nCssProp.ELEVATION = CssProp.reg(CssProp.CP.elevation);\nCssProp.FONT_FAMILY = CssProp.reg(CssProp.CP.font_family);\nCssProp.HEIGHT = CssProp.reg(CssProp.CP.height);\nCssProp.LETTER_SPACING = CssProp.reg(CssProp.CP.letter_spacing);\nCssProp.LIST_STYLE_IMAGE = CssProp.reg(CssProp.CP.list_style_image);\nCssProp.MARGIN_RIGHT = CssProp.reg(CssProp.CP.margin_right);\nCssProp.MAX_HEIGHT = CssProp.reg(CssProp.CP.max_height);\nCssProp.MIN_HEIGHT = CssProp.reg(CssProp.CP.min_height);\nCssProp.OPACITY = CssProp.reg(CssProp.CP.opacity);\nCssProp.OUTLINE_COLOR = CssProp.reg(CssProp.CP.outline_color);\nCssProp.OUTLINE_WIDTH = CssProp.reg(CssProp.CP.outline_width);\nCssProp.PADDING = CssProp.reg(CssProp.CP.padding);\nCssProp.PADDING_TOP = CssProp.reg(CssProp.CP.padding_top);\nCssProp.PITCH_RANGE = CssProp.reg(CssProp.CP.pitch_range);\nCssProp.RIGHT = CssProp.reg(CssProp.CP.right);\nCssProp.STRESS = CssProp.reg(CssProp.CP.stress);\nCssProp.TEXT_INDENT = CssProp.reg(CssProp.CP.text_indent);\nCssProp.TEXT_SHADOW = CssProp.reg(CssProp.CP.text_shadow);\nCssProp.VOLUME = CssProp.reg(CssProp.CP.volume);\nCssProp.WORD_WRAP = CssProp.reg(CssProp.CP.word_wrap);\nCssProp.ZOOM = CssProp.reg(CssProp.CP.zoom);\nCssProp.BACKFACE_VISIBILITY = CssProp.reg(CssProp.CP.backface_visibility);\nCssProp.BACKGROUND_CLIP = CssProp.reg(CssProp.CP.background_clip);\nCssProp.BACKGROUND_POSITION = CssProp.reg(CssProp.CP.background_position);\nCssProp.BORDER_BOTTOM_COLOR = CssProp.reg(CssProp.CP.border_bottom_color);\nCssProp.BORDER_BOTTOM_STYLE = CssProp.reg(CssProp.CP.border_bottom_style);\nCssProp.BORDER_COLOR = CssProp.reg(CssProp.CP.border_color);\nCssProp.BORDER_LEFT_COLOR = CssProp.reg(CssProp.CP.border_left_color);\nCssProp.BORDER_RIGHT_COLOR = CssProp.reg(CssProp.CP.border_right_color);\nCssProp.BORDER_STYLE = CssProp.reg(CssProp.CP.border_style);\nCssProp.BORDER_TOP_LEFT_RADIUS = CssProp.reg(CssProp.CP.border_top_left_radius);\nCssProp.BORDER_TOP_WIDTH = CssProp.reg(CssProp.CP.border_top_width);\nCssProp.BOX_SHADOW = CssProp.reg(CssProp.CP.box_shadow);\nCssProp.CLIP = CssProp.reg(CssProp.CP.clip);\nCssProp.DISPLAY_INSIDE = CssProp.reg(CssProp.CP.display_inside);\nCssProp.FONT_SIZE = CssProp.reg(CssProp.CP.font_size);\nCssProp.LINE_HEIGHT = CssProp.reg(CssProp.CP.line_height);\nCssProp.MARGIN_LEFT = CssProp.reg(CssProp.CP.margin_left);\nCssProp.MAX_WIDTH = CssProp.reg(CssProp.CP.max_width);\nCssProp.OUTLINE_STYLE = CssProp.reg(CssProp.CP.outline_style);\nCssProp.PADDING_BOTTOM = CssProp.reg(CssProp.CP.padding_bottom);\nCssProp.PADDING_RIGHT = CssProp.reg(CssProp.CP.padding_right);\nCssProp.PERSPECTIVE = CssProp.reg(CssProp.CP.perspective);\nCssProp.RICHNESS = CssProp.reg(CssProp.CP.richness);\nCssProp.TEXT_OVERFLOW = CssProp.reg(CssProp.CP.text_overflow);\nCssProp.TOP = CssProp.reg(CssProp.CP.top);\nCssProp.WIDTH = CssProp.reg(CssProp.CP.width);\nCssProp.Z_INDEX = CssProp.reg(CssProp.CP.z_index);\nCssProp.BACKGROUND = CssProp.reg(CssProp.CP.background);\nCssProp.BACKGROUND_SIZE = CssProp.reg(CssProp.CP.background_size);\nCssProp.BORDER_BOTTOM_LEFT_RADIUS = CssProp.reg(CssProp.CP.border_bottom_left_radius);\nCssProp.BORDER_BOTTOM_WIDTH = CssProp.reg(CssProp.CP.border_bottom_width);\nCssProp.BORDER_LEFT_STYLE = CssProp.reg(CssProp.CP.border_left_style);\nCssProp.BORDER_RIGHT_STYLE = CssProp.reg(CssProp.CP.border_right_style);\nCssProp.BORDER_TOP = CssProp.reg(CssProp.CP.border_top);\nCssProp.BOTTOM = CssProp.reg(CssProp.CP.bottom);\nCssProp.LIST_STYLE = CssProp.reg(CssProp.CP.list_style);\nCssProp.MARGIN_TOP = CssProp.reg(CssProp.CP.margin_top);\nCssProp.OUTLINE = CssProp.reg(CssProp.CP.outline);\nCssProp.OVERFLOW_Y = CssProp.reg(CssProp.CP.overflow_y);\nCssProp.PITCH = CssProp.reg(CssProp.CP.pitch);\nCssProp.VERTICAL_ALIGN = CssProp.reg(CssProp.CP.vertical_align);\nCssProp.WORD_SPACING = CssProp.reg(CssProp.CP.word_spacing);\nCssProp.BACKGROUND_IMAGE = CssProp.reg(CssProp.CP.background_image);\nCssProp.BORDER_BOTTOM_RIGHT_RADIUS = CssProp.reg(CssProp.CP.border_bottom_right_radius);\nCssProp.BORDER_LEFT_WIDTH = CssProp.reg(CssProp.CP.border_left_width);\nCssProp.BORDER_RIGHT_WIDTH = CssProp.reg(CssProp.CP.border_right_width);\nCssProp.LEFT = CssProp.reg(CssProp.CP.left);\nCssProp.MARGIN_BOTTOM = CssProp.reg(CssProp.CP.margin_bottom);\nCssProp.PAUSE_AFTER = CssProp.reg(CssProp.CP.pause_after);\nCssProp.SPEECH_RATE = CssProp.reg(CssProp.CP.speech_rate);\nCssProp.TRANSITION_DURATION = CssProp.reg(CssProp.CP.transition_duration);\nCssProp.BORDER_BOTTOM = CssProp.reg(CssProp.CP.border_bottom);\nCssProp.BORDER_RIGHT = CssProp.reg(CssProp.CP.border_right);\nCssProp.MARGIN = CssProp.reg(CssProp.CP.margin);\nCssProp.PADDING_LEFT = CssProp.reg(CssProp.CP.padding_left);\nCssProp.BORDER_LEFT = CssProp.reg(CssProp.CP.border_left);\nCssProp.FONT = CssProp.reg(CssProp.CP.font);\nCssProp.QUOTES = CssProp.reg(CssProp.CP.quotes);\nCssProp.BORDER_TOP_RIGHT_RADIUS = CssProp.reg(CssProp.CP.border_top_right_radius);\nCssProp.MIN_WIDTH = CssProp.reg(CssProp.CP.min_width);\n/**\n * A class to sanitize HTML strings.\n */\nclass Sanitizer {\n    constructor() {\n        this._autolink = true;\n        this._options = {\n            // HTML tags that are allowed to be used. Tags were extracted from Google Caja\n            allowedTags: [\n                'a',\n                'abbr',\n                'acronym',\n                'address',\n                'area',\n                'article',\n                'aside',\n                'audio',\n                'b',\n                'bdi',\n                'bdo',\n                'big',\n                'blockquote',\n                'br',\n                'button',\n                'canvas',\n                'caption',\n                'center',\n                'cite',\n                'code',\n                'col',\n                'colgroup',\n                'colspan',\n                'command',\n                'data',\n                'datalist',\n                'dd',\n                'del',\n                'details',\n                'dfn',\n                'dir',\n                'div',\n                'dl',\n                'dt',\n                'em',\n                'fieldset',\n                'figcaption',\n                'figure',\n                'font',\n                'footer',\n                'form',\n                'h1',\n                'h2',\n                'h3',\n                'h4',\n                'h5',\n                'h6',\n                'header',\n                'hgroup',\n                'hr',\n                'i',\n                // 'iframe' is allowed by Google Caja, but disallowed by default by sanitize-html\n                // , 'iframe'\n                'img',\n                'input',\n                'ins',\n                'kbd',\n                'label',\n                'legend',\n                'li',\n                'map',\n                'mark',\n                'menu',\n                'meter',\n                'nav',\n                'nobr',\n                'ol',\n                'optgroup',\n                'option',\n                'output',\n                'p',\n                'pre',\n                'progress',\n                'q',\n                'rowspan',\n                's',\n                'samp',\n                'section',\n                'select',\n                'small',\n                'source',\n                'span',\n                'strike',\n                'strong',\n                'sub',\n                'summary',\n                'sup',\n                'table',\n                'tbody',\n                'td',\n                'textarea',\n                'tfoot',\n                'th',\n                'thead',\n                'time',\n                'tr',\n                'track',\n                'tt',\n                'u',\n                'ul',\n                'var',\n                'video',\n                'wbr'\n            ],\n            // Attributes that HTML tags are allowed to have, extracted from Google Caja.\n            // See https://github.com/jupyterlab/jupyterlab/issues/1812#issuecomment-285848435\n            allowedAttributes: {\n                '*': [\n                    'class',\n                    'dir',\n                    'draggable',\n                    'hidden',\n                    'id',\n                    'inert',\n                    'itemprop',\n                    'itemref',\n                    'itemscope',\n                    'lang',\n                    'spellcheck',\n                    'style',\n                    'title',\n                    'translate'\n                ],\n                // 'rel' and 'target' were *not* allowed by Google Caja\n                a: [\n                    'accesskey',\n                    'coords',\n                    'href',\n                    'hreflang',\n                    'name',\n                    'rel',\n                    'shape',\n                    'tabindex',\n                    'target',\n                    'type'\n                ],\n                area: [\n                    'accesskey',\n                    'alt',\n                    'coords',\n                    'href',\n                    'nohref',\n                    'shape',\n                    'tabindex'\n                ],\n                // 'autoplay' was *not* allowed by Google Caja\n                audio: [\n                    'autoplay',\n                    'controls',\n                    'loop',\n                    'mediagroup',\n                    'muted',\n                    'preload',\n                    'src'\n                ],\n                bdo: ['dir'],\n                blockquote: ['cite'],\n                br: ['clear'],\n                button: [\n                    'accesskey',\n                    'data-commandlinker-args',\n                    'data-commandlinker-command',\n                    'disabled',\n                    'name',\n                    'tabindex',\n                    'type',\n                    'value'\n                ],\n                canvas: ['height', 'width'],\n                caption: ['align'],\n                col: ['align', 'char', 'charoff', 'span', 'valign', 'width'],\n                colgroup: ['align', 'char', 'charoff', 'span', 'valign', 'width'],\n                command: [\n                    'checked',\n                    'command',\n                    'disabled',\n                    'icon',\n                    'label',\n                    'radiogroup',\n                    'type'\n                ],\n                data: ['value'],\n                del: ['cite', 'datetime'],\n                details: ['open'],\n                dir: ['compact'],\n                div: ['align'],\n                dl: ['compact'],\n                fieldset: ['disabled'],\n                font: ['color', 'face', 'size'],\n                form: [\n                    'accept',\n                    'autocomplete',\n                    'enctype',\n                    'method',\n                    'name',\n                    'novalidate'\n                ],\n                h1: ['align'],\n                h2: ['align'],\n                h3: ['align'],\n                h4: ['align'],\n                h5: ['align'],\n                h6: ['align'],\n                hr: ['align', 'noshade', 'size', 'width'],\n                iframe: [\n                    'align',\n                    'frameborder',\n                    'height',\n                    'marginheight',\n                    'marginwidth',\n                    'width'\n                ],\n                img: [\n                    'align',\n                    'alt',\n                    'border',\n                    'height',\n                    'hspace',\n                    'ismap',\n                    'name',\n                    'src',\n                    'usemap',\n                    'vspace',\n                    'width'\n                ],\n                input: [\n                    'accept',\n                    'accesskey',\n                    'align',\n                    'alt',\n                    'autocomplete',\n                    'checked',\n                    'disabled',\n                    'inputmode',\n                    'ismap',\n                    'list',\n                    'max',\n                    'maxlength',\n                    'min',\n                    'multiple',\n                    'name',\n                    'placeholder',\n                    'readonly',\n                    'required',\n                    'size',\n                    'src',\n                    'step',\n                    'tabindex',\n                    'type',\n                    'usemap',\n                    'value'\n                ],\n                ins: ['cite', 'datetime'],\n                label: ['accesskey', 'for'],\n                legend: ['accesskey', 'align'],\n                li: ['type', 'value'],\n                map: ['name'],\n                menu: ['compact', 'label', 'type'],\n                meter: ['high', 'low', 'max', 'min', 'value'],\n                ol: ['compact', 'reversed', 'start', 'type'],\n                optgroup: ['disabled', 'label'],\n                option: ['disabled', 'label', 'selected', 'value'],\n                output: ['for', 'name'],\n                p: ['align'],\n                pre: ['width'],\n                progress: ['max', 'min', 'value'],\n                q: ['cite'],\n                select: [\n                    'autocomplete',\n                    'disabled',\n                    'multiple',\n                    'name',\n                    'required',\n                    'size',\n                    'tabindex'\n                ],\n                source: ['type'],\n                table: [\n                    'align',\n                    'bgcolor',\n                    'border',\n                    'cellpadding',\n                    'cellspacing',\n                    'frame',\n                    'rules',\n                    'summary',\n                    'width'\n                ],\n                tbody: ['align', 'char', 'charoff', 'valign'],\n                td: [\n                    'abbr',\n                    'align',\n                    'axis',\n                    'bgcolor',\n                    'char',\n                    'charoff',\n                    'colspan',\n                    'headers',\n                    'height',\n                    'nowrap',\n                    'rowspan',\n                    'scope',\n                    'valign',\n                    'width'\n                ],\n                textarea: [\n                    'accesskey',\n                    'autocomplete',\n                    'cols',\n                    'disabled',\n                    'inputmode',\n                    'name',\n                    'placeholder',\n                    'readonly',\n                    'required',\n                    'rows',\n                    'tabindex',\n                    'wrap'\n                ],\n                tfoot: ['align', 'char', 'charoff', 'valign'],\n                th: [\n                    'abbr',\n                    'align',\n                    'axis',\n                    'bgcolor',\n                    'char',\n                    'charoff',\n                    'colspan',\n                    'headers',\n                    'height',\n                    'nowrap',\n                    'rowspan',\n                    'scope',\n                    'valign',\n                    'width'\n                ],\n                thead: ['align', 'char', 'charoff', 'valign'],\n                tr: ['align', 'bgcolor', 'char', 'charoff', 'valign'],\n                track: ['default', 'kind', 'label', 'srclang'],\n                ul: ['compact', 'type'],\n                video: [\n                    'autoplay',\n                    'controls',\n                    'height',\n                    'loop',\n                    'mediagroup',\n                    'muted',\n                    'poster',\n                    'preload',\n                    'src',\n                    'width'\n                ]\n            },\n            // Inline CSS styles that HTML tags may have (and their allowed values)\n            allowedStyles: {\n                // To simplify the data, all styles are allowed on all tags that allow the style attribute\n                '*': {\n                    'backface-visibility': [CssProp.BACKFACE_VISIBILITY],\n                    background: [CssProp.BACKGROUND],\n                    'background-attachment': [CssProp.BACKGROUND_ATTACHMENT],\n                    'background-clip': [CssProp.BACKGROUND_CLIP],\n                    'background-color': [CssProp.BACKGROUND_COLOR],\n                    'background-image': [CssProp.BACKGROUND_IMAGE],\n                    'background-origin': [CssProp.BACKGROUND_ORIGIN],\n                    'background-position': [CssProp.BACKGROUND_POSITION],\n                    'background-repeat': [CssProp.BACKGROUND_REPEAT],\n                    'background-size': [CssProp.BACKGROUND_SIZE],\n                    border: [CssProp.BORDER],\n                    'border-bottom': [CssProp.BORDER_BOTTOM],\n                    'border-bottom-color': [CssProp.BORDER_BOTTOM_COLOR],\n                    'border-bottom-left-radius': [CssProp.BORDER_BOTTOM_LEFT_RADIUS],\n                    'border-bottom-right-radius': [CssProp.BORDER_BOTTOM_RIGHT_RADIUS],\n                    'border-bottom-style': [CssProp.BORDER_BOTTOM_STYLE],\n                    'border-bottom-width': [CssProp.BORDER_BOTTOM_WIDTH],\n                    'border-collapse': [CssProp.BORDER_COLLAPSE],\n                    'border-color': [CssProp.BORDER_COLOR],\n                    'border-left': [CssProp.BORDER_LEFT],\n                    'border-left-color': [CssProp.BORDER_LEFT_COLOR],\n                    'border-left-style': [CssProp.BORDER_LEFT_STYLE],\n                    'border-left-width': [CssProp.BORDER_LEFT_WIDTH],\n                    'border-radius': [CssProp.BORDER_RADIUS],\n                    'border-right': [CssProp.BORDER_RIGHT],\n                    'border-right-color': [CssProp.BORDER_RIGHT_COLOR],\n                    'border-right-style': [CssProp.BORDER_RIGHT_STYLE],\n                    'border-right-width': [CssProp.BORDER_RIGHT_WIDTH],\n                    'border-spacing': [CssProp.BORDER_SPACING],\n                    'border-style': [CssProp.BORDER_STYLE],\n                    'border-top': [CssProp.BORDER_TOP],\n                    'border-top-color': [CssProp.BORDER_TOP_COLOR],\n                    'border-top-left-radius': [CssProp.BORDER_TOP_LEFT_RADIUS],\n                    'border-top-right-radius': [CssProp.BORDER_TOP_RIGHT_RADIUS],\n                    'border-top-style': [CssProp.BORDER_TOP_STYLE],\n                    'border-top-width': [CssProp.BORDER_TOP_WIDTH],\n                    'border-width': [CssProp.BORDER_WIDTH],\n                    bottom: [CssProp.BOTTOM],\n                    box: [CssProp.BOX],\n                    'box-shadow': [CssProp.BOX_SHADOW],\n                    'box-sizing': [CssProp.BOX_SIZING],\n                    'caption-side': [CssProp.CAPTION_SIDE],\n                    clear: [CssProp.CLEAR],\n                    clip: [CssProp.CLIP],\n                    color: [CssProp.COLOR],\n                    cursor: [CssProp.CURSOR],\n                    direction: [CssProp.DIRECTION],\n                    display: [CssProp.DISPLAY],\n                    'display-inside': [CssProp.DISPLAY_INSIDE],\n                    'display-outside': [CssProp.DISPLAY_OUTSIDE],\n                    elevation: [CssProp.ELEVATION],\n                    'empty-cells': [CssProp.EMPTY_CELLS],\n                    float: [CssProp.FLOAT],\n                    font: [CssProp.FONT],\n                    'font-family': [CssProp.FONT_FAMILY],\n                    'font-size': [CssProp.FONT_SIZE],\n                    'font-stretch': [CssProp.FONT_STRETCH],\n                    'font-style': [CssProp.FONT_STYLE],\n                    'font-variant': [CssProp.FONT_VARIANT],\n                    'font-weight': [CssProp.FONT_WEIGHT],\n                    height: [CssProp.HEIGHT],\n                    left: [CssProp.LEFT],\n                    'letter-spacing': [CssProp.LETTER_SPACING],\n                    'line-height': [CssProp.LINE_HEIGHT],\n                    'list-style': [CssProp.LIST_STYLE],\n                    'list-style-image': [CssProp.LIST_STYLE_IMAGE],\n                    'list-style-position': [CssProp.LIST_STYLE_POSITION],\n                    'list-style-type': [CssProp.LIST_STYLE_TYPE],\n                    margin: [CssProp.MARGIN],\n                    'margin-bottom': [CssProp.MARGIN_BOTTOM],\n                    'margin-left': [CssProp.MARGIN_LEFT],\n                    'margin-right': [CssProp.MARGIN_RIGHT],\n                    'margin-top': [CssProp.MARGIN_TOP],\n                    'max-height': [CssProp.MAX_HEIGHT],\n                    'max-width': [CssProp.MAX_WIDTH],\n                    'min-height': [CssProp.MIN_HEIGHT],\n                    'min-width': [CssProp.MIN_WIDTH],\n                    opacity: [CssProp.OPACITY],\n                    outline: [CssProp.OUTLINE],\n                    'outline-color': [CssProp.OUTLINE_COLOR],\n                    'outline-style': [CssProp.OUTLINE_STYLE],\n                    'outline-width': [CssProp.OUTLINE_WIDTH],\n                    overflow: [CssProp.OVERFLOW],\n                    'overflow-wrap': [CssProp.OVERFLOW_WRAP],\n                    'overflow-x': [CssProp.OVERFLOW_X],\n                    'overflow-y': [CssProp.OVERFLOW_Y],\n                    padding: [CssProp.PADDING],\n                    'padding-bottom': [CssProp.PADDING_BOTTOM],\n                    'padding-left': [CssProp.PADDING_LEFT],\n                    'padding-right': [CssProp.PADDING_RIGHT],\n                    'padding-top': [CssProp.PADDING_TOP],\n                    'page-break-after': [CssProp.PAGE_BREAK_AFTER],\n                    'page-break-before': [CssProp.PAGE_BREAK_BEFORE],\n                    'page-break-inside': [CssProp.PAGE_BREAK_INSIDE],\n                    'pause-after': [CssProp.PAUSE_AFTER],\n                    perspective: [CssProp.PERSPECTIVE],\n                    pitch: [CssProp.PITCH],\n                    'pitch-range': [CssProp.PITCH_RANGE],\n                    position: [CssProp.POSITION],\n                    quotes: [CssProp.QUOTES],\n                    resize: [CssProp.RESIZE],\n                    richness: [CssProp.RICHNESS],\n                    right: [CssProp.RIGHT],\n                    speak: [CssProp.SPEAK],\n                    'speak-header': [CssProp.SPEAK_HEADER],\n                    'speak-numeral': [CssProp.SPEAK_NUMERAL],\n                    'speak-punctuation': [CssProp.SPEAK_PUNCTUATION],\n                    'speech-rate': [CssProp.SPEECH_RATE],\n                    stress: [CssProp.STRESS],\n                    'table-layout': [CssProp.TABLE_LAYOUT],\n                    'text-align': [CssProp.TEXT_ALIGN],\n                    'text-decoration': [CssProp.TEXT_DECORATION],\n                    'text-indent': [CssProp.TEXT_INDENT],\n                    'text-overflow': [CssProp.TEXT_OVERFLOW],\n                    'text-shadow': [CssProp.TEXT_SHADOW],\n                    'text-transform': [CssProp.TEXT_TRANSFORM],\n                    'text-wrap': [CssProp.TEXT_WRAP],\n                    top: [CssProp.TOP],\n                    'unicode-bidi': [CssProp.UNICODE_BIDI],\n                    'vertical-align': [CssProp.VERTICAL_ALIGN],\n                    visibility: [CssProp.VISIBILITY],\n                    volume: [CssProp.VOLUME],\n                    'white-space': [CssProp.WHITE_SPACE],\n                    width: [CssProp.WIDTH],\n                    'word-break': [CssProp.WORD_BREAK],\n                    'word-spacing': [CssProp.WORD_SPACING],\n                    'word-wrap': [CssProp.WORD_WRAP],\n                    'z-index': [CssProp.Z_INDEX],\n                    zoom: [CssProp.ZOOM]\n                }\n            },\n            transformTags: {\n                // Set the \"rel\" attribute for <a> tags to \"nofollow\".\n                a: sanitize_html__WEBPACK_IMPORTED_MODULE_0___default().simpleTransform('a', { rel: 'nofollow' }),\n                // Set the \"disabled\" attribute for <input> tags.\n                input: sanitize_html__WEBPACK_IMPORTED_MODULE_0___default().simpleTransform('input', { disabled: 'disabled' })\n            },\n            allowedSchemes: [...(sanitize_html__WEBPACK_IMPORTED_MODULE_0___default().defaults).allowedSchemes],\n            allowedSchemesByTag: {\n                // Allow 'attachment:' img src (used for markdown cell attachments).\n                img: sanitize_html__WEBPACK_IMPORTED_MODULE_0___default().defaults.allowedSchemes.concat(['attachment'])\n            },\n            // Override of the default option, so we can skip 'src' attribute validation.\n            // 'src' Attributes are validated to be URIs, which does not allow for embedded (image) data.\n            // Since embedded data is no longer deemed to be a threat, validation can be skipped.\n            // See https://github.com/jupyterlab/jupyterlab/issues/5183\n            allowedSchemesAppliedToAttributes: ['href', 'cite']\n        };\n    }\n    /**\n     * Sanitize an HTML string.\n     *\n     * @param dirty - The dirty text.\n     *\n     * @param options - The optional sanitization options.\n     *\n     * @returns The sanitized string.\n     */\n    sanitize(dirty, options) {\n        return sanitize_html__WEBPACK_IMPORTED_MODULE_0___default()(dirty, { ...this._options, ...(options || {}) });\n    }\n    /**\n     * @returns Whether to replace URLs by HTML anchors.\n     */\n    getAutolink() {\n        return this._autolink;\n    }\n    /**\n     * Set the allowed schemes\n     *\n     * @param scheme Allowed schemes\n     */\n    setAllowedSchemes(scheme) {\n        // Force copy of `scheme`\n        this._options.allowedSchemes = [...scheme];\n    }\n    /**\n     * Set the URL replacement boolean.\n     *\n     * @param autolink URL replacement boolean.\n     */\n    setAutolink(autolink) {\n        this._autolink = autolink;\n    }\n}\n//# sourceMappingURL=sanitizer.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/sanitizer.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/semanticCommand.js":
/*!*******************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/semanticCommand.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SemanticCommand: () => (/* binding */ SemanticCommand)\n/* harmony export */ });\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n/**\n * Semantic group of commands\n */\nclass SemanticCommand {\n    constructor() {\n        this._commands = new Array();\n    }\n    /**\n     * The command IDs used by this semantic command.\n     */\n    get ids() {\n        return this._commands.map(c => c.id);\n    }\n    /**\n     * Add a command to the semantic group\n     *\n     * @param command Command to add\n     */\n    add(command) {\n        if (this._commands.map(c => c.id).includes(command.id)) {\n            throw Error(`Command ${command.id} is already defined.`);\n        }\n        this._commands.push({\n            isEnabled: () => true,\n            rank: SemanticCommand.DEFAULT_RANK,\n            ...command\n        });\n    }\n    /**\n     * Get the command id of the enabled command from this group\n     * for the given widget.\n     *\n     * @param widget Widget\n     * @returns Command id\n     */\n    getActiveCommandId(widget) {\n        var _a;\n        const commands = this._commands\n            .filter(c => c.isEnabled(widget))\n            .sort((a, b) => {\n            const rankDelta = a.rank - b.rank;\n            return rankDelta || (a.id < b.id ? -1 : 1);\n        });\n        const command = (_a = commands[0]) !== null && _a !== void 0 ? _a : { id: null };\n        return command.id;\n    }\n    /**\n     * Remove a command ID.\n     *\n     * @param id Command ID to remove\n     */\n    remove(id) {\n        const index = this._commands.findIndex(c => c.id === id);\n        if (index >= 0) {\n            this._commands.splice(index, 1);\n        }\n    }\n}\n/**\n * Default rank for semantic command\n */\nSemanticCommand.DEFAULT_RANK = 500;\n//# sourceMappingURL=semanticCommand.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/semanticCommand.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/sessioncontext.js":
/*!******************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/sessioncontext.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SessionContext: () => (/* binding */ SessionContext),\n/* harmony export */   SessionContextDialogs: () => (/* binding */ SessionContextDialogs)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./dialog */ \"../node_modules/@jupyterlab/apputils/lib/dialog.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n\n\n/**\n * The default implementation for a session context object.\n */\nclass SessionContext {\n    /**\n     * Construct a new session context.\n     */\n    constructor(options) {\n        var _a, _b, _c, _d;\n        this._path = '';\n        this._name = '';\n        this._type = '';\n        this._prevKernelName = '';\n        this._isDisposed = false;\n        this._disposed = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n        this._session = null;\n        this._ready = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate();\n        this._initializing = false;\n        this._initStarted = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate();\n        this._initPromise = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.PromiseDelegate();\n        this._isReady = false;\n        this._isTerminating = false;\n        this._isRestarting = false;\n        this._kernelChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n        this._preferenceChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n        this._sessionChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n        this._statusChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n        this._connectionStatusChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n        this._pendingInput = false;\n        this._iopubMessage = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n        this._unhandledMessage = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n        this._propertyChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal(this);\n        this._dialog = null;\n        this._busyDisposable = null;\n        this._pendingKernelName = '';\n        this._pendingSessionRequest = '';\n        this.sessionManager = options.sessionManager;\n        this.specsManager = options.specsManager;\n        this.translator = options.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n        this._trans = this.translator.load('jupyterlab');\n        this._path = (_a = options.path) !== null && _a !== void 0 ? _a : _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.UUID.uuid4();\n        this._type = (_b = options.type) !== null && _b !== void 0 ? _b : '';\n        this._name = (_c = options.name) !== null && _c !== void 0 ? _c : '';\n        this._setBusy = options.setBusy;\n        this._kernelPreference = (_d = options.kernelPreference) !== null && _d !== void 0 ? _d : {};\n    }\n    /**\n     * The current session connection.\n     */\n    get session() {\n        var _a;\n        return (_a = this._session) !== null && _a !== void 0 ? _a : null;\n    }\n    /**\n     * The session path.\n     *\n     * #### Notes\n     * Typically `.session.path` should be used. This attribute is useful if\n     * there is no current session.\n     */\n    get path() {\n        return this._path;\n    }\n    /**\n     * The session type.\n     *\n     * #### Notes\n     * Typically `.session.type` should be used. This attribute is useful if\n     * there is no current session.\n     */\n    get type() {\n        return this._type;\n    }\n    /**\n     * The session name.\n     *\n     * #### Notes\n     * Typically `.session.name` should be used. This attribute is useful if\n     * there is no current session.\n     */\n    get name() {\n        return this._name;\n    }\n    /**\n     * A signal emitted when the kernel connection changes, proxied from the session connection.\n     */\n    get kernelChanged() {\n        return this._kernelChanged;\n    }\n    /**\n     * A signal emitted when the session connection changes.\n     */\n    get sessionChanged() {\n        return this._sessionChanged;\n    }\n    /**\n     * A signal emitted when the kernel status changes, proxied from the kernel.\n     */\n    get statusChanged() {\n        return this._statusChanged;\n    }\n    /**\n     * A flag indicating if the session has pending input, proxied from the kernel.\n     */\n    get pendingInput() {\n        return this._pendingInput;\n    }\n    /**\n     * A signal emitted when the kernel status changes, proxied from the kernel.\n     */\n    get connectionStatusChanged() {\n        return this._connectionStatusChanged;\n    }\n    /**\n     * A signal emitted for iopub kernel messages, proxied from the kernel.\n     */\n    get iopubMessage() {\n        return this._iopubMessage;\n    }\n    /**\n     * A signal emitted for an unhandled kernel message, proxied from the kernel.\n     */\n    get unhandledMessage() {\n        return this._unhandledMessage;\n    }\n    /**\n     * A signal emitted when a session property changes, proxied from the current session.\n     */\n    get propertyChanged() {\n        return this._propertyChanged;\n    }\n    /**\n     * The kernel preference of this client session.\n     *\n     * This is used when selecting a new kernel, and should reflect the sort of\n     * kernel the activity prefers.\n     */\n    get kernelPreference() {\n        return this._kernelPreference;\n    }\n    set kernelPreference(value) {\n        if (!_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepEqual(value, this._kernelPreference)) {\n            const oldValue = this._kernelPreference;\n            this._kernelPreference = value;\n            this._preferenceChanged.emit({\n                name: 'kernelPreference',\n                oldValue,\n                newValue: _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepCopy(value)\n            });\n        }\n    }\n    /**\n     * Signal emitted if the kernel preference changes.\n     */\n    get kernelPreferenceChanged() {\n        return this._preferenceChanged;\n    }\n    /**\n     * Whether the context is ready.\n     */\n    get isReady() {\n        return this._isReady;\n    }\n    /**\n     * A promise that is fulfilled when the context is ready.\n     */\n    get ready() {\n        return this._ready.promise;\n    }\n    /**\n     * Whether the context is terminating.\n     */\n    get isTerminating() {\n        return this._isTerminating;\n    }\n    /**\n     * Whether the context is restarting.\n     */\n    get isRestarting() {\n        return this._isRestarting;\n    }\n    /**\n     * Whether the kernel is \"No Kernel\" or not.\n     *\n     * #### Notes\n     * As the displayed name is translated, this can be used directly.\n     */\n    get hasNoKernel() {\n        return this.kernelDisplayName === this.noKernelName;\n    }\n    /**\n     * The display name of the current kernel, or a sensible alternative.\n     *\n     * #### Notes\n     * This is a convenience function to have a consistent sensible name for the\n     * kernel.\n     */\n    get kernelDisplayName() {\n        var _a, _b, _c, _d, _e, _f, _g;\n        const kernel = (_a = this.session) === null || _a === void 0 ? void 0 : _a.kernel;\n        if (this._pendingKernelName === this.noKernelName) {\n            return this.noKernelName;\n        }\n        if (this._pendingKernelName) {\n            return ((_d = (_c = (_b = this.specsManager.specs) === null || _b === void 0 ? void 0 : _b.kernelspecs[this._pendingKernelName]) === null || _c === void 0 ? void 0 : _c.display_name) !== null && _d !== void 0 ? _d : this._pendingKernelName);\n        }\n        if (!kernel) {\n            return this.noKernelName;\n        }\n        return ((_g = (_f = (_e = this.specsManager.specs) === null || _e === void 0 ? void 0 : _e.kernelspecs[kernel.name]) === null || _f === void 0 ? void 0 : _f.display_name) !== null && _g !== void 0 ? _g : kernel.name);\n    }\n    /**\n     * A sensible status to display\n     *\n     * #### Notes\n     * This combines the status and connection status into a single status for\n     * the user.\n     */\n    get kernelDisplayStatus() {\n        var _a, _b;\n        const kernel = (_a = this.session) === null || _a === void 0 ? void 0 : _a.kernel;\n        if (this._isTerminating) {\n            return 'terminating';\n        }\n        if (this._isRestarting) {\n            return 'restarting';\n        }\n        if (this._pendingKernelName === this.noKernelName) {\n            return 'unknown';\n        }\n        if (!kernel && this._pendingKernelName) {\n            return 'initializing';\n        }\n        if (!kernel &&\n            !this.isReady &&\n            this.kernelPreference.canStart !== false &&\n            this.kernelPreference.shouldStart !== false) {\n            return 'initializing';\n        }\n        return ((_b = ((kernel === null || kernel === void 0 ? void 0 : kernel.connectionStatus) === 'connected'\n            ? kernel === null || kernel === void 0 ? void 0 : kernel.status\n            : kernel === null || kernel === void 0 ? void 0 : kernel.connectionStatus)) !== null && _b !== void 0 ? _b : 'unknown');\n    }\n    /**\n     * The name of the previously started kernel.\n     */\n    get prevKernelName() {\n        return this._prevKernelName;\n    }\n    /**\n     * Test whether the context is disposed.\n     */\n    get isDisposed() {\n        return this._isDisposed;\n    }\n    /**\n     * A signal emitted when the poll is disposed.\n     */\n    get disposed() {\n        return this._disposed;\n    }\n    /**\n     * Get the constant displayed name for \"No Kernel\"\n     */\n    get noKernelName() {\n        return this._trans.__('No Kernel');\n    }\n    /**\n     * Dispose of the resources held by the context.\n     */\n    dispose() {\n        if (this._isDisposed) {\n            return;\n        }\n        this._isDisposed = true;\n        this._disposed.emit();\n        if (this._session) {\n            if (this.kernelPreference.shutdownOnDispose) {\n                // Fire and forget the session shutdown request\n                this.sessionManager.shutdown(this._session.id).catch(reason => {\n                    console.error(`Kernel not shut down ${reason}`);\n                });\n            }\n            // Dispose the session connection\n            this._session.dispose();\n            this._session = null;\n        }\n        if (this._dialog) {\n            this._dialog.dispose();\n        }\n        if (this._busyDisposable) {\n            this._busyDisposable.dispose();\n            this._busyDisposable = null;\n        }\n        _lumino_signaling__WEBPACK_IMPORTED_MODULE_4__.Signal.clearData(this);\n    }\n    /**\n     * Starts new Kernel.\n     *\n     * @returns Whether to ask the user to pick a kernel.\n     */\n    async startKernel() {\n        const preference = this.kernelPreference;\n        if (!preference.autoStartDefault && preference.shouldStart === false) {\n            return true;\n        }\n        let options;\n        if (preference.id) {\n            options = { id: preference.id };\n        }\n        else {\n            const name = Private.getDefaultKernel({\n                specs: this.specsManager.specs,\n                sessions: this.sessionManager.running(),\n                preference\n            });\n            if (name) {\n                options = { name };\n            }\n        }\n        if (options) {\n            try {\n                await this._changeKernel(options);\n                return false;\n            }\n            catch (err) {\n                /* no-op */\n            }\n        }\n        // Always fall back to selecting a kernel\n        return true;\n    }\n    /**\n     * Restart the current Kernel.\n     *\n     * @returns A promise that resolves when the kernel is restarted.\n     */\n    async restartKernel() {\n        var _a, _b, _c, _d, _e, _f;\n        const kernel = ((_a = this.session) === null || _a === void 0 ? void 0 : _a.kernel) || null;\n        if (this._isRestarting) {\n            return;\n        }\n        this._isRestarting = true;\n        this._isReady = false;\n        this._statusChanged.emit('restarting');\n        try {\n            await ((_c = (_b = this.session) === null || _b === void 0 ? void 0 : _b.kernel) === null || _c === void 0 ? void 0 : _c.restart());\n            this._isReady = true;\n        }\n        catch (e) {\n            console.error(e);\n        }\n        this._isRestarting = false;\n        this._statusChanged.emit(((_e = (_d = this.session) === null || _d === void 0 ? void 0 : _d.kernel) === null || _e === void 0 ? void 0 : _e.status) || 'unknown');\n        this._kernelChanged.emit({\n            name: 'kernel',\n            oldValue: kernel,\n            newValue: ((_f = this.session) === null || _f === void 0 ? void 0 : _f.kernel) || null\n        });\n    }\n    /**\n     * Change the current kernel associated with the session.\n     */\n    async changeKernel(options = {}) {\n        if (this.isDisposed) {\n            throw new Error('Disposed');\n        }\n        // Wait for the initialization method to try\n        // and start its kernel first to ensure consistent\n        // ordering.\n        await this._initStarted.promise;\n        return this._changeKernel(options);\n    }\n    /**\n     * Kill the kernel and shutdown the session.\n     *\n     * @returns A promise that resolves when the session is shut down.\n     */\n    async shutdown() {\n        if (this.isDisposed || !this._initializing) {\n            return;\n        }\n        await this._initStarted.promise;\n        this._pendingSessionRequest = '';\n        this._pendingKernelName = this.noKernelName;\n        return this._shutdownSession();\n    }\n    /**\n     * Initialize the session context\n     *\n     * @returns A promise that resolves with whether to ask the user to select a kernel.\n     *\n     * #### Notes\n     * If a server session exists on the current path, we will connect to it.\n     * If preferences include disabling `canStart` or `shouldStart`, no\n     * server session will be started.\n     * If a kernel id is given, we attempt to start a session with that id.\n     * If a default kernel is available, we connect to it.\n     * Otherwise we ask the user to select a kernel.\n     */\n    async initialize() {\n        if (this._initializing) {\n            return this._initPromise.promise;\n        }\n        this._initializing = true;\n        const needsSelection = await this._initialize();\n        if (!needsSelection) {\n            this._isReady = true;\n            this._ready.resolve(undefined);\n        }\n        if (!this._pendingSessionRequest) {\n            this._initStarted.resolve(void 0);\n        }\n        this._initPromise.resolve(needsSelection);\n        return needsSelection;\n    }\n    /**\n     * Inner initialize function that doesn't handle promises.\n     * This makes it easier to consolidate promise handling logic.\n     */\n    async _initialize() {\n        const manager = this.sessionManager;\n        await manager.ready;\n        await manager.refreshRunning();\n        const model = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__.find)(manager.running(), item => {\n            return item.path === this._path;\n        });\n        if (model) {\n            try {\n                const session = manager.connectTo({ model });\n                this._handleNewSession(session);\n            }\n            catch (err) {\n                void this._handleSessionError(err);\n                return Promise.reject(err);\n            }\n        }\n        return await this._startIfNecessary();\n    }\n    /**\n     * Shut down the current session.\n     */\n    async _shutdownSession() {\n        var _a;\n        const session = this._session;\n        // Capture starting values in case an error is raised.\n        const isTerminating = this._isTerminating;\n        const isReady = this._isReady;\n        this._isTerminating = true;\n        this._isReady = false;\n        this._statusChanged.emit('terminating');\n        try {\n            await (session === null || session === void 0 ? void 0 : session.shutdown());\n            this._isTerminating = false;\n            session === null || session === void 0 ? void 0 : session.dispose();\n            this._session = null;\n            const kernel = (session === null || session === void 0 ? void 0 : session.kernel) || null;\n            this._statusChanged.emit('unknown');\n            this._kernelChanged.emit({\n                name: 'kernel',\n                oldValue: kernel,\n                newValue: null\n            });\n            this._sessionChanged.emit({\n                name: 'session',\n                oldValue: session,\n                newValue: null\n            });\n        }\n        catch (err) {\n            this._isTerminating = isTerminating;\n            this._isReady = isReady;\n            const status = (_a = session === null || session === void 0 ? void 0 : session.kernel) === null || _a === void 0 ? void 0 : _a.status;\n            if (status === undefined) {\n                this._statusChanged.emit('unknown');\n            }\n            else {\n                this._statusChanged.emit(status);\n            }\n            throw err;\n        }\n        return;\n    }\n    /**\n     * Start the session if necessary.\n     *\n     * @returns Whether to ask the user to pick a kernel.\n     */\n    async _startIfNecessary() {\n        var _a;\n        const preference = this.kernelPreference;\n        if (this.isDisposed ||\n            ((_a = this.session) === null || _a === void 0 ? void 0 : _a.kernel) ||\n            preference.shouldStart === false ||\n            preference.canStart === false) {\n            // Not necessary to start a kernel\n            return false;\n        }\n        return this.startKernel();\n    }\n    /**\n     * Change the kernel.\n     */\n    async _changeKernel(model = {}) {\n        if (model.name) {\n            this._pendingKernelName = model.name;\n        }\n        if (!this._session) {\n            this._kernelChanged.emit({\n                name: 'kernel',\n                oldValue: null,\n                newValue: null\n            });\n        }\n        // Guarantee that the initialized kernel\n        // will be started first.\n        if (!this._pendingSessionRequest) {\n            this._initStarted.resolve(void 0);\n        }\n        // If we already have a session, just change the kernel.\n        if (this._session && !this._isTerminating) {\n            try {\n                await this._session.changeKernel(model);\n                return this._session.kernel;\n            }\n            catch (err) {\n                void this._handleSessionError(err);\n                throw err;\n            }\n        }\n        // Use a UUID for the path to overcome a race condition on the server\n        // where it will re-use a session for a given path but only after\n        // the kernel finishes starting.\n        // We later switch to the real path below.\n        // Use the correct directory so the kernel will be started in that directory.\n        const dirName = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PathExt.dirname(this._path);\n        const requestId = (this._pendingSessionRequest = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PathExt.join(dirName, _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.UUID.uuid4()));\n        try {\n            this._statusChanged.emit('starting');\n            const session = await this.sessionManager.startNew({\n                path: requestId,\n                type: this._type,\n                name: this._name,\n                kernel: model\n            });\n            // Handle a preempt.\n            if (this._pendingSessionRequest !== session.path) {\n                await session.shutdown();\n                session.dispose();\n                return null;\n            }\n            // Change to the real path.\n            await session.setPath(this._path);\n            // Update the name in case it has changed since we launched the session.\n            await session.setName(this._name);\n            if (this._session && !this._isTerminating) {\n                await this._shutdownSession();\n            }\n            return this._handleNewSession(session);\n        }\n        catch (err) {\n            void this._handleSessionError(err);\n            throw err;\n        }\n    }\n    /**\n     * Handle a new session object.\n     */\n    _handleNewSession(session) {\n        var _a, _b, _c;\n        if (this.isDisposed) {\n            throw Error('Disposed');\n        }\n        if (!this._isReady) {\n            this._isReady = true;\n            this._ready.resolve(undefined);\n        }\n        if (this._session) {\n            this._session.dispose();\n        }\n        this._session = session;\n        this._pendingKernelName = '';\n        if (session) {\n            this._prevKernelName = (_b = (_a = session.kernel) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : '';\n            session.disposed.connect(this._onSessionDisposed, this);\n            session.propertyChanged.connect(this._onPropertyChanged, this);\n            session.kernelChanged.connect(this._onKernelChanged, this);\n            session.statusChanged.connect(this._onStatusChanged, this);\n            session.connectionStatusChanged.connect(this._onConnectionStatusChanged, this);\n            session.pendingInput.connect(this._onPendingInput, this);\n            session.iopubMessage.connect(this._onIopubMessage, this);\n            session.unhandledMessage.connect(this._onUnhandledMessage, this);\n            if (session.path !== this._path) {\n                this._onPropertyChanged(session, 'path');\n            }\n            if (session.name !== this._name) {\n                this._onPropertyChanged(session, 'name');\n            }\n            if (session.type !== this._type) {\n                this._onPropertyChanged(session, 'type');\n            }\n        }\n        // Any existing session/kernel connection was disposed above when the session was\n        // disposed, so the oldValue should be null.\n        this._sessionChanged.emit({\n            name: 'session',\n            oldValue: null,\n            newValue: session\n        });\n        this._kernelChanged.emit({\n            oldValue: null,\n            newValue: (session === null || session === void 0 ? void 0 : session.kernel) || null,\n            name: 'kernel'\n        });\n        this._statusChanged.emit(((_c = session === null || session === void 0 ? void 0 : session.kernel) === null || _c === void 0 ? void 0 : _c.status) || 'unknown');\n        return (session === null || session === void 0 ? void 0 : session.kernel) || null;\n    }\n    /**\n     * Handle an error in session startup.\n     */\n    async _handleSessionError(err) {\n        this._handleNewSession(null);\n        let traceback = '';\n        let message = '';\n        try {\n            traceback = err.traceback;\n            message = err.message;\n        }\n        catch (err) {\n            // no-op\n        }\n        await this._displayKernelError(message, traceback);\n    }\n    /**\n     * Display kernel error\n     */\n    async _displayKernelError(message, traceback) {\n        const body = (react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"div\", null,\n            message && react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"pre\", null, message),\n            traceback && (react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"details\", { className: \"jp-mod-wide\" },\n                react__WEBPACK_IMPORTED_MODULE_6__.createElement(\"pre\", null, traceback)))));\n        const dialog = (this._dialog = new _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog({\n            title: this._trans.__('Error Starting Kernel'),\n            body,\n            buttons: [_dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog.okButton()]\n        }));\n        await dialog.launch();\n        this._dialog = null;\n    }\n    /**\n     * Handle a session termination.\n     */\n    _onSessionDisposed() {\n        if (this._session) {\n            const oldValue = this._session;\n            this._session = null;\n            const newValue = this._session;\n            this._sessionChanged.emit({ name: 'session', oldValue, newValue });\n        }\n    }\n    /**\n     * Handle a change to a session property.\n     */\n    _onPropertyChanged(sender, property) {\n        switch (property) {\n            case 'path':\n                this._path = sender.path;\n                break;\n            case 'name':\n                this._name = sender.name;\n                break;\n            case 'type':\n                this._type = sender.type;\n                break;\n            default:\n                throw new Error(`unrecognized property ${property}`);\n        }\n        this._propertyChanged.emit(property);\n    }\n    /**\n     * Handle a change to the kernel.\n     */\n    _onKernelChanged(sender, args) {\n        this._kernelChanged.emit(args);\n    }\n    /**\n     * Handle a change to the session status.\n     */\n    _onStatusChanged(sender, status) {\n        var _a;\n        if (status === 'dead') {\n            const model = (_a = sender.kernel) === null || _a === void 0 ? void 0 : _a.model;\n            if (model === null || model === void 0 ? void 0 : model.reason) {\n                const traceback = model.traceback || '';\n                void this._displayKernelError(model.reason, traceback);\n            }\n        }\n        // Set that this kernel is busy, if we haven't already\n        // If we have already, and now we aren't busy, dispose\n        // of the busy disposable.\n        if (this._setBusy) {\n            if (status === 'busy') {\n                if (!this._busyDisposable) {\n                    this._busyDisposable = this._setBusy();\n                }\n            }\n            else {\n                if (this._busyDisposable) {\n                    this._busyDisposable.dispose();\n                    this._busyDisposable = null;\n                }\n            }\n        }\n        // Proxy the signal\n        this._statusChanged.emit(status);\n    }\n    /**\n     * Handle a change to the session status.\n     */\n    _onConnectionStatusChanged(sender, status) {\n        // Proxy the signal\n        this._connectionStatusChanged.emit(status);\n    }\n    /**\n     * Handle a change to the pending input.\n     */\n    _onPendingInput(sender, value) {\n        // Set the signal value\n        this._pendingInput = value;\n    }\n    /**\n     * Handle an iopub message.\n     */\n    _onIopubMessage(sender, message) {\n        if (message.header.msg_type === 'shutdown_reply') {\n            this.session.kernel.removeInputGuard();\n        }\n        this._iopubMessage.emit(message);\n    }\n    /**\n     * Handle an unhandled message.\n     */\n    _onUnhandledMessage(sender, message) {\n        this._unhandledMessage.emit(message);\n    }\n}\n/**\n * A namespace for `SessionContext` statics.\n */\n(function (SessionContext) {\n    /**\n     * Get the default kernel name given select options.\n     */\n    function getDefaultKernel(options) {\n        const { preference } = options;\n        const { shouldStart } = preference;\n        if (shouldStart === false) {\n            return null;\n        }\n        return Private.getDefaultKernel(options);\n    }\n    SessionContext.getDefaultKernel = getDefaultKernel;\n})(SessionContext || (SessionContext = {}));\n/**\n * The default implementation of the client session dialog provider.\n */\nclass SessionContextDialogs {\n    constructor(options = {}) {\n        var _a;\n        this._translator = (_a = options.translator) !== null && _a !== void 0 ? _a : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n    }\n    /**\n     * Select a kernel for the session.\n     */\n    async selectKernel(sessionContext) {\n        if (sessionContext.isDisposed) {\n            return Promise.resolve();\n        }\n        const trans = this._translator.load('jupyterlab');\n        // If there is no existing kernel, offer the option\n        // to keep no kernel.\n        let label = trans.__('Cancel');\n        if (sessionContext.hasNoKernel) {\n            label = sessionContext.kernelDisplayName;\n        }\n        const buttons = [\n            _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog.cancelButton({\n                label\n            }),\n            _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog.okButton({\n                label: trans.__('Select'),\n                ariaLabel: trans.__('Select Kernel')\n            })\n        ];\n        const autoStartDefault = sessionContext.kernelPreference.autoStartDefault;\n        const hasCheckbox = typeof autoStartDefault === 'boolean';\n        const dialog = new _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog({\n            title: trans.__('Select Kernel'),\n            body: new Private.KernelSelector(sessionContext, this._translator),\n            buttons,\n            checkbox: hasCheckbox\n                ? {\n                    label: trans.__('Always start the preferred kernel'),\n                    caption: trans.__('Remember my choice and always start the preferred kernel'),\n                    checked: autoStartDefault\n                }\n                : null\n        });\n        const result = await dialog.launch();\n        if (sessionContext.isDisposed || !result.button.accept) {\n            return;\n        }\n        if (hasCheckbox && result.isChecked !== null) {\n            sessionContext.kernelPreference = {\n                ...sessionContext.kernelPreference,\n                autoStartDefault: result.isChecked\n            };\n        }\n        const model = result.value;\n        if (model === null && !sessionContext.hasNoKernel) {\n            return sessionContext.shutdown();\n        }\n        if (model) {\n            await sessionContext.changeKernel(model);\n        }\n    }\n    /**\n     * Restart the session.\n     *\n     * @returns A promise that resolves with whether the kernel has restarted.\n     *\n     * #### Notes\n     * If there is a running kernel, present a dialog.\n     * If there is no kernel, we start a kernel with the last run\n     * kernel name and resolves with `true`.\n     */\n    async restart(sessionContext) {\n        var _a;\n        const trans = this._translator.load('jupyterlab');\n        await sessionContext.initialize();\n        if (sessionContext.isDisposed) {\n            throw new Error('session already disposed');\n        }\n        const kernel = (_a = sessionContext.session) === null || _a === void 0 ? void 0 : _a.kernel;\n        if (!kernel && sessionContext.prevKernelName) {\n            await sessionContext.changeKernel({\n                name: sessionContext.prevKernelName\n            });\n            return true;\n        }\n        // Bail if there is no previous kernel to start.\n        if (!kernel) {\n            throw new Error('No kernel to restart');\n        }\n        const restartBtn = _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog.warnButton({\n            label: trans.__('Restart'),\n            ariaLabel: trans.__('Confirm Kernel Restart')\n        });\n        const result = await (0,_dialog__WEBPACK_IMPORTED_MODULE_7__.showDialog)({\n            title: trans.__('Restart Kernel?'),\n            body: trans.__('Do you want to restart the kernel of %1? All variables will be lost.', sessionContext.name),\n            buttons: [\n                _dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog.cancelButton({ ariaLabel: trans.__('Cancel Kernel Restart') }),\n                restartBtn\n            ]\n        });\n        if (kernel.isDisposed) {\n            return false;\n        }\n        if (result.button.accept) {\n            await sessionContext.restartKernel();\n            return true;\n        }\n        return false;\n    }\n}\n/**\n * The namespace for module private data.\n */\nvar Private;\n(function (Private) {\n    /**\n     * A widget that provides a kernel selection.\n     */\n    class KernelSelector extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_5__.Widget {\n        /**\n         * Create a new kernel selector widget.\n         */\n        constructor(sessionContext, translator) {\n            super({ node: createSelectorNode(sessionContext, translator) });\n        }\n        /**\n         * Get the value of the kernel selector widget.\n         */\n        getValue() {\n            const selector = this.node.querySelector('select');\n            return JSON.parse(selector.value);\n        }\n    }\n    Private.KernelSelector = KernelSelector;\n    /**\n     * Create a node for a kernel selector widget.\n     */\n    function createSelectorNode(sessionContext, translator) {\n        // Create the dialog body.\n        translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n        const trans = translator.load('jupyterlab');\n        const body = document.createElement('div');\n        const text = document.createElement('label');\n        text.textContent = `${trans.__('Select kernel for:')} \"${sessionContext.name}\"`;\n        body.appendChild(text);\n        const options = getKernelSearch(sessionContext);\n        const selector = document.createElement('select');\n        populateKernelSelect(selector, options, translator, !sessionContext.hasNoKernel ? sessionContext.kernelDisplayName : null);\n        body.appendChild(selector);\n        return body;\n    }\n    /**\n     * Get the default kernel name given select options.\n     */\n    function getDefaultKernel(options) {\n        var _a;\n        const { specs, preference } = options;\n        const { name, language, canStart, autoStartDefault } = preference;\n        if (!specs || canStart === false) {\n            return null;\n        }\n        const defaultName = autoStartDefault ? specs.default : null;\n        if (!name && !language) {\n            return defaultName;\n        }\n        // Look for an exact match of a spec name.\n        for (const specName in specs.kernelspecs) {\n            if (specName === name) {\n                return name;\n            }\n        }\n        // Bail if there is no language.\n        if (!language) {\n            return defaultName;\n        }\n        // Check for a single kernel matching the language.\n        const matches = [];\n        for (const specName in specs.kernelspecs) {\n            const kernelLanguage = (_a = specs.kernelspecs[specName]) === null || _a === void 0 ? void 0 : _a.language;\n            if (language === kernelLanguage) {\n                matches.push(specName);\n            }\n        }\n        if (matches.length === 1) {\n            const specName = matches[0];\n            console.warn('No exact match found for ' +\n                specName +\n                ', using kernel ' +\n                specName +\n                ' that matches ' +\n                'language=' +\n                language);\n            return specName;\n        }\n        // No matches found.\n        return defaultName;\n    }\n    Private.getDefaultKernel = getDefaultKernel;\n    /**\n     * Populate a kernel select node for the session.\n     */\n    function populateKernelSelect(node, options, translator, currentKernelDisplayName = null) {\n        var _a;\n        while (node.firstChild) {\n            node.removeChild(node.firstChild);\n        }\n        const { preference, sessions, specs } = options;\n        const { name, id, language, canStart, shouldStart } = preference;\n        translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n        const trans = translator.load('jupyterlab');\n        if (!specs || canStart === false) {\n            node.appendChild(optionForNone(translator));\n            node.value = 'null';\n            node.disabled = true;\n            return;\n        }\n        node.disabled = false;\n        // Create mappings of display names and languages for kernel name.\n        const displayNames = Object.create(null);\n        const languages = Object.create(null);\n        for (const name in specs.kernelspecs) {\n            const spec = specs.kernelspecs[name];\n            displayNames[name] = spec.display_name;\n            languages[name] = spec.language;\n        }\n        // Handle a kernel by name.\n        const names = [];\n        if (name && name in specs.kernelspecs) {\n            names.push(name);\n        }\n        // Then look by language if we have a selected and existing kernel.\n        if (name && names.length > 0 && language) {\n            for (const specName in specs.kernelspecs) {\n                if (name !== specName && languages[specName] === language) {\n                    names.push(specName);\n                }\n            }\n        }\n        // Use the default kernel if no kernels were found.\n        if (!names.length) {\n            names.push(specs.default);\n        }\n        // Handle a preferred kernels in order of display name.\n        const preferred = document.createElement('optgroup');\n        preferred.label = trans.__('Start Preferred Kernel');\n        names.sort((a, b) => displayNames[a].localeCompare(displayNames[b]));\n        for (const name of names) {\n            preferred.appendChild(optionForName(name, displayNames[name]));\n        }\n        if (preferred.firstChild) {\n            node.appendChild(preferred);\n        }\n        // Add an option for no kernel\n        node.appendChild(optionForNone(translator));\n        const other = document.createElement('optgroup');\n        other.label = trans.__('Start Other Kernel');\n        // Add the rest of the kernel names in alphabetical order.\n        const otherNames = [];\n        for (const specName in specs.kernelspecs) {\n            if (names.indexOf(specName) !== -1) {\n                continue;\n            }\n            otherNames.push(specName);\n        }\n        otherNames.sort((a, b) => displayNames[a].localeCompare(displayNames[b]));\n        for (const otherName of otherNames) {\n            other.appendChild(optionForName(otherName, displayNames[otherName]));\n        }\n        // Add a separator option if there were any other names.\n        if (otherNames.length) {\n            node.appendChild(other);\n        }\n        // Handle the default value.\n        if (shouldStart === false) {\n            node.value = 'null';\n        }\n        else {\n            let selectedIndex = 0;\n            if (currentKernelDisplayName) {\n                // Select current kernel by default.\n                selectedIndex = [...node.options].findIndex(option => option.text === currentKernelDisplayName);\n                selectedIndex = Math.max(selectedIndex, 0);\n            }\n            node.selectedIndex = selectedIndex;\n        }\n        // Bail if there are no sessions.\n        if (!sessions) {\n            return;\n        }\n        // Add the sessions using the preferred language first.\n        const matchingSessions = [];\n        const otherSessions = [];\n        for (const session of sessions) {\n            if (language &&\n                session.kernel &&\n                languages[session.kernel.name] === language &&\n                session.kernel.id !== id) {\n                matchingSessions.push(session);\n            }\n            else if (((_a = session.kernel) === null || _a === void 0 ? void 0 : _a.id) !== id) {\n                otherSessions.push(session);\n            }\n        }\n        const matching = document.createElement('optgroup');\n        matching.label = trans.__('Use Kernel from Preferred Session');\n        node.appendChild(matching);\n        if (matchingSessions.length) {\n            matchingSessions.sort((a, b) => {\n                return a.path.localeCompare(b.path);\n            });\n            for (const session of matchingSessions) {\n                const name = session.kernel ? displayNames[session.kernel.name] : '';\n                matching.appendChild(optionForSession(session, name, translator));\n            }\n        }\n        const otherSessionsNode = document.createElement('optgroup');\n        otherSessionsNode.label = trans.__('Use Kernel from Other Session');\n        node.appendChild(otherSessionsNode);\n        if (otherSessions.length) {\n            otherSessions.sort((a, b) => {\n                return a.path.localeCompare(b.path);\n            });\n            for (const session of otherSessions) {\n                const name = session.kernel\n                    ? displayNames[session.kernel.name] || session.kernel.name\n                    : '';\n                otherSessionsNode.appendChild(optionForSession(session, name, translator));\n            }\n        }\n    }\n    Private.populateKernelSelect = populateKernelSelect;\n    /**\n     * Get the kernel search options given a session context and session manager.\n     */\n    function getKernelSearch(sessionContext) {\n        return {\n            specs: sessionContext.specsManager.specs,\n            sessions: sessionContext.sessionManager.running(),\n            preference: sessionContext.kernelPreference\n        };\n    }\n    /**\n     * Create an option element for a kernel name.\n     */\n    function optionForName(name, displayName) {\n        const option = document.createElement('option');\n        option.text = displayName;\n        option.value = JSON.stringify({ name });\n        return option;\n    }\n    /**\n     * Create an option for no kernel.\n     */\n    function optionForNone(translator) {\n        translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n        const trans = translator.load('jupyterlab');\n        const group = document.createElement('optgroup');\n        group.label = trans.__('Use No Kernel');\n        const option = document.createElement('option');\n        option.text = trans.__('No Kernel');\n        option.value = 'null';\n        group.appendChild(option);\n        return group;\n    }\n    /**\n     * Create an option element for a session.\n     */\n    function optionForSession(session, displayName, translator) {\n        var _a, _b;\n        translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n        const trans = translator.load('jupyterlab');\n        const option = document.createElement('option');\n        const sessionName = session.name || _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.PathExt.basename(session.path);\n        option.text = sessionName;\n        option.value = JSON.stringify({ id: (_a = session.kernel) === null || _a === void 0 ? void 0 : _a.id });\n        option.title =\n            `${trans.__('Path:')} ${session.path}\\n` +\n                `${trans.__('Name:')} ${sessionName}\\n` +\n                `${trans.__('Kernel Name:')} ${displayName}\\n` +\n                `${trans.__('Kernel Id:')} ${(_b = session.kernel) === null || _b === void 0 ? void 0 : _b.id}`;\n        return option;\n    }\n})(Private || (Private = {}));\n//# sourceMappingURL=sessioncontext.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/sessioncontext.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/thememanager.js":
/*!****************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/thememanager.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ThemeManager: () => (/* binding */ ThemeManager)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/coreutils */ \"webpack/sharing/consume/default/@jupyterlab/coreutils/@jupyterlab/coreutils\");\n/* harmony import */ var _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/disposable */ \"webpack/sharing/consume/default/@lumino/disposable/@lumino/disposable\");\n/* harmony import */ var _lumino_disposable__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_disposable__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dialog */ \"../node_modules/@jupyterlab/apputils/lib/dialog.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n/**\n * The number of milliseconds between theme loading attempts.\n */\nconst REQUEST_INTERVAL = 75;\n/**\n * The number of times to attempt to load a theme before giving up.\n */\nconst REQUEST_THRESHOLD = 20;\n/**\n * A class that provides theme management.\n */\nclass ThemeManager {\n    /**\n     * Construct a new theme manager.\n     */\n    constructor(options) {\n        this._current = null;\n        this._links = [];\n        this._overrides = {};\n        this._overrideProps = {};\n        this._outstanding = null;\n        this._pending = 0;\n        this._requests = {};\n        this._themes = {};\n        this._themeChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_3__.Signal(this);\n        const { host, key, splash, url } = options;\n        this.translator = options.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_1__.nullTranslator;\n        this._trans = this.translator.load('jupyterlab');\n        const registry = options.settings;\n        this._base = url;\n        this._host = host;\n        this._splash = splash || null;\n        void registry.load(key).then(settings => {\n            this._settings = settings;\n            // set up css overrides once we have a pointer to the settings schema\n            this._initOverrideProps();\n            this._settings.changed.connect(this._loadSettings, this);\n            this._loadSettings();\n        });\n    }\n    /**\n     * Get the name of the current theme.\n     */\n    get theme() {\n        return this._current;\n    }\n    /**\n     * Get the name of the preferred light theme.\n     */\n    get preferredLightTheme() {\n        return this._settings.composite['preferred-light-theme'];\n    }\n    /**\n     * Get the name of the preferred dark theme.\n     */\n    get preferredDarkTheme() {\n        return this._settings.composite['preferred-dark-theme'];\n    }\n    /**\n     * Get the name of the preferred theme\n     * When `adaptive-theme` is disabled, get current theme;\n     * Else, depending on the system settings, get preferred light or dark theme.\n     */\n    get preferredTheme() {\n        if (!this.isToggledAdaptiveTheme()) {\n            return this.theme;\n        }\n        if (this.isSystemColorSchemeDark()) {\n            return this.preferredDarkTheme;\n        }\n        return this.preferredLightTheme;\n    }\n    /**\n     * The names of the registered themes.\n     */\n    get themes() {\n        return Object.keys(this._themes);\n    }\n    /**\n     * Get the names of the light themes.\n     */\n    get lightThemes() {\n        return Object.entries(this._themes)\n            .filter(([_, theme]) => theme.isLight)\n            .map(([name, _]) => name);\n    }\n    /**\n     * Get the names of the dark themes.\n     */\n    get darkThemes() {\n        return Object.entries(this._themes)\n            .filter(([_, theme]) => !theme.isLight)\n            .map(([name, _]) => name);\n    }\n    /**\n     * A signal fired when the application theme changes.\n     */\n    get themeChanged() {\n        return this._themeChanged;\n    }\n    /**\n     * Test if the system's preferred color scheme is dark\n     */\n    isSystemColorSchemeDark() {\n        return (window.matchMedia &&\n            window.matchMedia('(prefers-color-scheme: dark)').matches);\n    }\n    /**\n     * Get the value of a CSS variable from its key.\n     *\n     * @param key - A Jupyterlab CSS variable, without the leading '--jp-'.\n     *\n     * @returns value - The current value of the Jupyterlab CSS variable\n     */\n    getCSS(key) {\n        var _a;\n        return ((_a = this._overrides[key]) !== null && _a !== void 0 ? _a : getComputedStyle(document.documentElement).getPropertyValue(`--jp-${key}`));\n    }\n    /**\n     * Load a theme CSS file by path.\n     *\n     * @param path - The path of the file to load.\n     */\n    loadCSS(path) {\n        const base = this._base;\n        const href = _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.URLExt.isLocal(path) ? _jupyterlab_coreutils__WEBPACK_IMPORTED_MODULE_0__.URLExt.join(base, path) : path;\n        const links = this._links;\n        return new Promise((resolve, reject) => {\n            const link = document.createElement('link');\n            link.setAttribute('rel', 'stylesheet');\n            link.setAttribute('type', 'text/css');\n            link.setAttribute('href', href);\n            link.addEventListener('load', () => {\n                resolve(undefined);\n            });\n            link.addEventListener('error', () => {\n                reject(`Stylesheet failed to load: ${href}`);\n            });\n            document.body.appendChild(link);\n            links.push(link);\n            // add any css overrides to document\n            this.loadCSSOverrides();\n        });\n    }\n    /**\n     * Loads all current CSS overrides from settings. If an override has been\n     * removed or is invalid, this function unloads it instead.\n     */\n    loadCSSOverrides() {\n        var _a;\n        const newOverrides = (_a = this._settings.user['overrides']) !== null && _a !== void 0 ? _a : {};\n        // iterate over the union of current and new CSS override keys\n        Object.keys({ ...this._overrides, ...newOverrides }).forEach(key => {\n            const val = newOverrides[key];\n            if (val && this.validateCSS(key, val)) {\n                // validation succeeded, set the override\n                document.documentElement.style.setProperty(`--jp-${key}`, val);\n            }\n            else {\n                // if key is not present or validation failed, the override will be removed\n                delete newOverrides[key];\n                document.documentElement.style.removeProperty(`--jp-${key}`);\n            }\n        });\n        // replace the current overrides with the new ones\n        this._overrides = newOverrides;\n    }\n    /**\n     * Validate a CSS value w.r.t. a key\n     *\n     * @param key - A Jupyterlab CSS variable, without the leading '--jp-'.\n     *\n     * @param val - A candidate CSS value\n     */\n    validateCSS(key, val) {\n        // determine the css property corresponding to the key\n        const prop = this._overrideProps[key];\n        if (!prop) {\n            console.warn('CSS validation failed: could not find property corresponding to key.\\n' +\n                `key: '${key}', val: '${val}'`);\n            return false;\n        }\n        // use built-in validation once we have the corresponding property\n        if (CSS.supports(prop, val)) {\n            return true;\n        }\n        else {\n            console.warn('CSS validation failed: invalid value.\\n' +\n                `key: '${key}', val: '${val}', prop: '${prop}'`);\n            return false;\n        }\n    }\n    /**\n     * Register a theme with the theme manager.\n     *\n     * @param theme - The theme to register.\n     *\n     * @returns A disposable that can be used to unregister the theme.\n     */\n    register(theme) {\n        const { name } = theme;\n        const themes = this._themes;\n        if (themes[name]) {\n            throw new Error(`Theme already registered for ${name}`);\n        }\n        themes[name] = theme;\n        return new _lumino_disposable__WEBPACK_IMPORTED_MODULE_2__.DisposableDelegate(() => {\n            delete themes[name];\n        });\n    }\n    /**\n     * Add a CSS override to the settings.\n     */\n    setCSSOverride(key, value) {\n        return this._settings.set('overrides', {\n            ...this._overrides,\n            [key]: value\n        });\n    }\n    /**\n     * Set the current theme.\n     */\n    setTheme(name) {\n        return this._settings.set('theme', name);\n    }\n    /**\n     * Set the preferred light theme.\n     */\n    setPreferredLightTheme(name) {\n        return this._settings.set('preferred-light-theme', name);\n    }\n    /**\n     * Set the preferred dark theme.\n     */\n    setPreferredDarkTheme(name) {\n        return this._settings.set('preferred-dark-theme', name);\n    }\n    /**\n     * Test whether a given theme is light.\n     */\n    isLight(name) {\n        return this._themes[name].isLight;\n    }\n    /**\n     * Increase a font size w.r.t. its current setting or its value in the\n     * current theme.\n     *\n     * @param key - A Jupyterlab font size CSS variable, without the leading '--jp-'.\n     */\n    incrFontSize(key) {\n        return this._incrFontSize(key, true);\n    }\n    /**\n     * Decrease a font size w.r.t. its current setting or its value in the\n     * current theme.\n     *\n     * @param key - A Jupyterlab font size CSS variable, without the leading '--jp-'.\n     */\n    decrFontSize(key) {\n        return this._incrFontSize(key, false);\n    }\n    /**\n     * Test whether a given theme styles scrollbars,\n     * and if the user has scrollbar styling enabled.\n     */\n    themeScrollbars(name) {\n        return (!!this._settings.composite['theme-scrollbars'] &&\n            !!this._themes[name].themeScrollbars);\n    }\n    /**\n     * Test if the user has scrollbar styling enabled.\n     */\n    isToggledThemeScrollbars() {\n        return !!this._settings.composite['theme-scrollbars'];\n    }\n    /**\n     * Toggle the `theme-scrollbars` setting.\n     */\n    toggleThemeScrollbars() {\n        return this._settings.set('theme-scrollbars', !this._settings.composite['theme-scrollbars']);\n    }\n    /**\n     * Test if the user enables adaptive theme.\n     */\n    isToggledAdaptiveTheme() {\n        return !!this._settings.composite['adaptive-theme'];\n    }\n    /**\n     * Toggle the `adaptive-theme` setting.\n     */\n    toggleAdaptiveTheme() {\n        return this._settings.set('adaptive-theme', !this._settings.composite['adaptive-theme']);\n    }\n    /**\n     * Get the display name of the theme.\n     */\n    getDisplayName(name) {\n        var _a, _b;\n        return (_b = (_a = this._themes[name]) === null || _a === void 0 ? void 0 : _a.displayName) !== null && _b !== void 0 ? _b : name;\n    }\n    /**\n     * Change a font size by a positive or negative increment.\n     */\n    _incrFontSize(key, add = true) {\n        var _a;\n        // get the numeric and unit parts of the current font size\n        const parts = ((_a = this.getCSS(key)) !== null && _a !== void 0 ? _a : '13px').split(/([a-zA-Z]+)/);\n        // determine the increment\n        const incr = (add ? 1 : -1) * (parts[1] === 'em' ? 0.1 : 1);\n        // increment the font size and set it as an override\n        return this.setCSSOverride(key, `${Number(parts[0]) + incr}${parts[1]}`);\n    }\n    /**\n     * Initialize the key -> property dict for the overrides\n     */\n    _initOverrideProps() {\n        const definitions = this._settings.schema.definitions;\n        const overidesSchema = definitions.cssOverrides.properties;\n        Object.keys(overidesSchema).forEach(key => {\n            // override validation is against the CSS property in the description\n            // field. Example: for key ui-font-family, .description is font-family\n            let description;\n            switch (key) {\n                case 'code-font-size':\n                case 'content-font-size1':\n                case 'ui-font-size1':\n                    description = 'font-size';\n                    break;\n                default:\n                    description = overidesSchema[key].description;\n                    break;\n            }\n            this._overrideProps[key] = description;\n        });\n    }\n    /**\n     * Handle the current settings.\n     */\n    _loadSettings() {\n        const outstanding = this._outstanding;\n        const pending = this._pending;\n        const requests = this._requests;\n        // If another request is pending, cancel it.\n        if (pending) {\n            window.clearTimeout(pending);\n            this._pending = 0;\n        }\n        const settings = this._settings;\n        const themes = this._themes;\n        let theme = settings.composite['theme'];\n        if (this.isToggledAdaptiveTheme()) {\n            if (this.isSystemColorSchemeDark()) {\n                theme = this.preferredDarkTheme;\n            }\n            else {\n                theme = this.preferredLightTheme;\n            }\n        }\n        // If another promise is outstanding, wait until it finishes before\n        // attempting to load the settings. Because outstanding promises cannot\n        // be aborted, the order in which they occur must be enforced.\n        if (outstanding) {\n            outstanding\n                .then(() => {\n                this._loadSettings();\n            })\n                .catch(() => {\n                this._loadSettings();\n            });\n            this._outstanding = null;\n            return;\n        }\n        // Increment the request counter.\n        requests[theme] = requests[theme] ? requests[theme] + 1 : 1;\n        // If the theme exists, load it right away.\n        if (themes[theme]) {\n            this._outstanding = this._loadTheme(theme);\n            delete requests[theme];\n            return;\n        }\n        // If the request has taken too long, give up.\n        if (requests[theme] > REQUEST_THRESHOLD) {\n            const fallback = settings.default('theme');\n            // Stop tracking the requests for this theme.\n            delete requests[theme];\n            if (!themes[fallback]) {\n                this._onError(this._trans.__('Neither theme %1 nor default %2 loaded.', theme, fallback));\n                return;\n            }\n            console.warn(`Could not load theme ${theme}, using default ${fallback}.`);\n            this._outstanding = this._loadTheme(fallback);\n            return;\n        }\n        // If the theme does not yet exist, attempt to wait for it.\n        this._pending = window.setTimeout(() => {\n            this._loadSettings();\n        }, REQUEST_INTERVAL);\n    }\n    /**\n     * Load the theme.\n     *\n     * #### Notes\n     * This method assumes that the `theme` exists.\n     */\n    _loadTheme(theme) {\n        var _a;\n        const current = this._current;\n        const links = this._links;\n        const themes = this._themes;\n        const splash = this._splash\n            ? this._splash.show(themes[theme].isLight)\n            : new _lumino_disposable__WEBPACK_IMPORTED_MODULE_2__.DisposableDelegate(() => undefined);\n        // Unload any CSS files that have been loaded.\n        links.forEach(link => {\n            if (link.parentElement) {\n                link.parentElement.removeChild(link);\n            }\n        });\n        links.length = 0;\n        const themeProps = (_a = this._settings.schema.properties) === null || _a === void 0 ? void 0 : _a.theme;\n        if (themeProps) {\n            themeProps.enum = Object.keys(themes).map(value => { var _a; return (_a = themes[value].displayName) !== null && _a !== void 0 ? _a : value; });\n        }\n        // Unload the previously loaded theme.\n        const old = current ? themes[current].unload() : Promise.resolve();\n        return Promise.all([old, themes[theme].load()])\n            .then(() => {\n            this._current = theme;\n            this._themeChanged.emit({\n                name: 'theme',\n                oldValue: current,\n                newValue: theme\n            });\n            // Need to force a redraw of the app here to avoid a Chrome rendering\n            // bug that can leave the scrollbars in an invalid state\n            this._host.hide();\n            // If we hide/show the widget too quickly, no redraw will happen.\n            // requestAnimationFrame delays until after the next frame render.\n            requestAnimationFrame(() => {\n                this._host.show();\n                Private.fitAll(this._host);\n                splash.dispose();\n            });\n        })\n            .catch(reason => {\n            this._onError(reason);\n            splash.dispose();\n        });\n    }\n    /**\n     * Handle a theme error.\n     */\n    _onError(reason) {\n        void (0,_dialog__WEBPACK_IMPORTED_MODULE_4__.showDialog)({\n            title: this._trans.__('Error Loading Theme'),\n            body: String(reason),\n            buttons: [_dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog.okButton({ label: this._trans.__('OK') })]\n        });\n    }\n}\n/**\n * A namespace for module private data.\n */\nvar Private;\n(function (Private) {\n    /**\n     * Fit a widget and all of its children, recursively.\n     */\n    function fitAll(widget) {\n        for (const child of widget.children()) {\n            fitAll(child);\n        }\n        widget.fit();\n    }\n    Private.fitAll = fitAll;\n})(Private || (Private = {}));\n//# sourceMappingURL=thememanager.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/thememanager.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/tokens.js":
/*!**********************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/tokens.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ICommandPalette: () => (/* binding */ ICommandPalette),\n/* harmony export */   IKernelStatusModel: () => (/* binding */ IKernelStatusModel),\n/* harmony export */   ISanitizer: () => (/* binding */ ISanitizer),\n/* harmony export */   ISessionContextDialogs: () => (/* binding */ ISessionContextDialogs),\n/* harmony export */   ISplashScreen: () => (/* binding */ ISplashScreen),\n/* harmony export */   IThemeManager: () => (/* binding */ IThemeManager),\n/* harmony export */   IToolbarWidgetRegistry: () => (/* binding */ IToolbarWidgetRegistry),\n/* harmony export */   IWindowResolver: () => (/* binding */ IWindowResolver)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * The command palette token.\n */\nconst ICommandPalette = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:ICommandPalette', `A service for the application command palette\n  in the left panel. Use this to add commands to the palette.`);\n/**\n * The kernel status indicator model.\n */\nconst IKernelStatusModel = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:IKernelStatusModel', 'A service to register kernel session provider to the kernel status indicator.');\n/**\n * The session context dialogs token.\n */\nconst ISessionContextDialogs = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:ISessionContextDialogs', 'A service for handling the session dialogs.');\n/**\n * The theme manager token.\n */\nconst IThemeManager = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:IThemeManager', 'A service for the theme manager for the application. This is used primarily in theme extensions to register new themes.');\n/**\n * The sanitizer token.\n */\nconst ISanitizer = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:ISanitizer', 'A service for sanitizing HTML strings.');\n/**\n * The main menu token.\n */\nconst ISplashScreen = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:ISplashScreen', `A service for the splash screen for the application.\n  Use this if you want to show the splash screen for your own purposes.`);\n/**\n * The default window resolver token.\n */\nconst IWindowResolver = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:IWindowResolver', `A service for a window resolver for the\n  application. JupyterLab workspaces are given a name, which are determined using\n  the window resolver. Require this if you want to use the name of the current workspace.`);\n/**\n * The toolbar registry token.\n */\nconst IToolbarWidgetRegistry = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.Token('@jupyterlab/apputils:IToolbarWidgetRegistry', `A registry for toolbar widgets. Require this\n  if you want to build the toolbar dynamically from a data definition (stored in settings for example).`);\n//# sourceMappingURL=tokens.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/tokens.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/toolbar/factory.js":
/*!*******************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/toolbar/factory.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   createToolbarFactory: () => (/* binding */ createToolbarFactory),\n/* harmony export */   setToolbar: () => (/* binding */ setToolbar)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/observables */ \"webpack/sharing/consume/default/@jupyterlab/observables/@jupyterlab/observables\");\n/* harmony import */ var _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/settingregistry */ \"webpack/sharing/consume/default/@jupyterlab/settingregistry/@jupyterlab/settingregistry\");\n/* harmony import */ var _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/algorithm */ \"webpack/sharing/consume/default/@lumino/algorithm/@lumino/algorithm\");\n/* harmony import */ var _lumino_algorithm__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dialog */ \"../node_modules/@jupyterlab/apputils/lib/dialog.js\");\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n\n\n/**\n * Default toolbar item rank\n *\n * #### Notes\n * This will place item just before the white spacer item in the notebook toolbar.\n */\nconst DEFAULT_TOOLBAR_ITEM_RANK = 50;\nconst TOOLBAR_KEY = 'jupyter.lab.toolbars';\n/**\n * Display warning when the toolbar definition have been modified.\n *\n * @param trans Translation bundle\n */\nasync function displayInformation(trans) {\n    const result = await (0,_dialog__WEBPACK_IMPORTED_MODULE_4__.showDialog)({\n        title: trans.__('Information'),\n        body: trans.__('Toolbar customization has changed. You will need to reload JupyterLab to see the changes.'),\n        buttons: [\n            _dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog.cancelButton(),\n            _dialog__WEBPACK_IMPORTED_MODULE_4__.Dialog.okButton({ label: trans.__('Reload') })\n        ]\n    });\n    if (result.button.accept) {\n        location.reload();\n    }\n}\n/**\n * Set the toolbar definition by accumulating all settings definition.\n *\n * The list will be populated only with the enabled items.\n *\n * @param toolbarItems Observable list to populate\n * @param registry Application settings registry\n * @param factoryName Widget factory name that needs a toolbar\n * @param pluginId Settings plugin id\n * @param translator Translator object\n * @param propertyId Property holding the toolbar definition in the settings; default 'toolbar'\n * @returns List of toolbar items\n */\nasync function setToolbarItems(toolbarItems, registry, factoryName, pluginId, translator, propertyId = 'toolbar') {\n    var _a;\n    const trans = translator.load('jupyterlab');\n    let canonical = null;\n    let loaded = {};\n    let listenPlugin = true;\n    try {\n        /**\n         * Populate the plugin's schema defaults.\n         *\n         * We keep track of disabled entries in case the plugin is loaded\n         * after the toolbar initialization.\n         */\n        function populate(schema) {\n            var _a, _b;\n            loaded = {};\n            const pluginDefaults = Object.keys(registry.plugins)\n                // Filter out the current plugin (will be listed when reloading)\n                // because we control its addition after the mapping step\n                .filter(plugin => plugin !== pluginId)\n                .map(plugin => {\n                var _a, _b;\n                const items = (_b = ((_a = registry.plugins[plugin].schema[TOOLBAR_KEY]) !== null && _a !== void 0 ? _a : {})[factoryName]) !== null && _b !== void 0 ? _b : [];\n                loaded[plugin] = items;\n                return items;\n            })\n                .concat([(_b = ((_a = schema[TOOLBAR_KEY]) !== null && _a !== void 0 ? _a : {})[factoryName]) !== null && _b !== void 0 ? _b : []])\n                .reduceRight((acc, val) => _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.SettingRegistry.reconcileToolbarItems(acc, val, true), []);\n            // Apply default value as last step to take into account overrides.json\n            // The standard toolbars default is [] as the plugin must use\n            // `jupyter.lab.toolbars.<factory>` to define its default value.\n            schema.properties[propertyId].default =\n                _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.SettingRegistry.reconcileToolbarItems(pluginDefaults, schema.properties[propertyId].default, true).sort((a, b) => {\n                    var _a, _b;\n                    return ((_a = a.rank) !== null && _a !== void 0 ? _a : DEFAULT_TOOLBAR_ITEM_RANK) -\n                        ((_b = b.rank) !== null && _b !== void 0 ? _b : DEFAULT_TOOLBAR_ITEM_RANK);\n                });\n        }\n        // Transform the plugin object to return different schema than the default.\n        registry.transform(pluginId, {\n            compose: plugin => {\n                var _a, _b, _c, _d, _e;\n                // Only override the canonical schema the first time.\n                if (!canonical) {\n                    canonical = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepCopy(plugin.schema);\n                    populate(canonical);\n                }\n                const defaults = (_c = ((_b = ((_a = canonical.properties) !== null && _a !== void 0 ? _a : {})[propertyId]) !== null && _b !== void 0 ? _b : {}).default) !== null && _c !== void 0 ? _c : [];\n                // Initialize the settings\n                const user = plugin.data.user;\n                const composite = plugin.data.composite;\n                // Overrides the value with using the aggregated default for the toolbar property\n                user[propertyId] =\n                    (_d = plugin.data.user[propertyId]) !== null && _d !== void 0 ? _d : [];\n                composite[propertyId] = ((_e = _jupyterlab_settingregistry__WEBPACK_IMPORTED_MODULE_1__.SettingRegistry.reconcileToolbarItems(defaults, user[propertyId], false)) !== null && _e !== void 0 ? _e : []).sort((a, b) => {\n                    var _a, _b;\n                    return ((_a = a.rank) !== null && _a !== void 0 ? _a : DEFAULT_TOOLBAR_ITEM_RANK) -\n                        ((_b = b.rank) !== null && _b !== void 0 ? _b : DEFAULT_TOOLBAR_ITEM_RANK);\n                });\n                plugin.data = { composite, user };\n                return plugin;\n            },\n            fetch: plugin => {\n                // Only override the canonical schema the first time.\n                if (!canonical) {\n                    canonical = _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepCopy(plugin.schema);\n                    populate(canonical);\n                }\n                return {\n                    data: plugin.data,\n                    id: plugin.id,\n                    raw: plugin.raw,\n                    schema: canonical,\n                    version: plugin.version\n                };\n            }\n        });\n    }\n    catch (error) {\n        if (error.name === 'TransformError') {\n            // Assume the existing transformer is the toolbar builder transformer\n            // from another factory set up.\n            listenPlugin = false;\n        }\n        else {\n            throw error;\n        }\n    }\n    // Repopulate the canonical variable after the setting registry has\n    // preloaded all initial plugins.\n    const settings = await registry.load(pluginId);\n    // React to customization by the user\n    settings.changed.connect(() => {\n        var _a;\n        const newItems = (_a = settings.composite[propertyId]) !== null && _a !== void 0 ? _a : [];\n        transferSettings(newItems);\n    });\n    const transferSettings = (newItems) => {\n        // This is not optimal but safer because a toolbar item with the same\n        // name cannot be inserted (it will be a no-op). But that could happen\n        // if the settings are changing the items order.\n        toolbarItems.clear();\n        toolbarItems.pushAll(newItems.filter(item => !item.disabled));\n    };\n    // Initialize the toolbar\n    transferSettings((_a = settings.composite[propertyId]) !== null && _a !== void 0 ? _a : []);\n    // React to plugin changes if no other transformer exists, otherwise bail.\n    if (!listenPlugin) {\n        return;\n    }\n    registry.pluginChanged.connect(async (sender, plugin) => {\n        var _a, _b, _c;\n        // Since the plugin storing the toolbar definition is transformed above,\n        // if it has changed, it means that a request to reload was triggered.\n        // Hence the toolbar definitions from the other plugins have been\n        // automatically reset during the transform step.\n        if (plugin === pluginId) {\n            return;\n        }\n        // If a plugin changed its toolbar items\n        const oldItems = (_a = loaded[plugin]) !== null && _a !== void 0 ? _a : [];\n        const newItems = (_c = ((_b = registry.plugins[plugin].schema[TOOLBAR_KEY]) !== null && _b !== void 0 ? _b : {})[factoryName]) !== null && _c !== void 0 ? _c : [];\n        if (!_lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepEqual(oldItems, newItems)) {\n            if (loaded[plugin]) {\n                // The plugin has changed, request the user to reload the UI\n                await displayInformation(trans);\n            }\n            else {\n                if (newItems.length > 0) {\n                    // Empty the default values to avoid toolbar settings collisions.\n                    canonical = null;\n                    const schema = registry.plugins[pluginId].schema;\n                    schema.properties.toolbar.default = [];\n                    // Run again the transformations.\n                    await registry.load(pluginId, true);\n                }\n            }\n        }\n    });\n}\n/**\n * Create the toolbar factory for a given container widget based\n * on a data description stored in settings\n *\n * @param toolbarRegistry Toolbar widgets registry\n * @param settingsRegistry Settings registry\n * @param factoryName Toolbar container factory name\n * @param pluginId Settings plugin id\n * @param translator Translator\n * @param propertyId Toolbar definition key in the settings plugin\n * @returns List of toolbar widgets factory\n */\nfunction createToolbarFactory(toolbarRegistry, settingsRegistry, factoryName, pluginId, translator, propertyId = 'toolbar') {\n    const items = new _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__.ObservableList({\n        itemCmp: (a, b) => _lumino_coreutils__WEBPACK_IMPORTED_MODULE_3__.JSONExt.deepEqual(a, b)\n    });\n    // Get toolbar definition from the settings\n    setToolbarItems(items, settingsRegistry, factoryName, pluginId, translator, propertyId).catch(reason => {\n        console.error(`Failed to load toolbar items for factory ${factoryName} from ${pluginId}`, reason);\n    });\n    return (widget) => {\n        const updateToolbar = (list, change) => {\n            switch (change.type) {\n                case 'move':\n                    toolbar.move(change.oldIndex, change.newIndex);\n                    break;\n                case 'add':\n                    change.newValues.forEach(item => toolbar.push({\n                        name: item.name,\n                        widget: toolbarRegistry.createWidget(factoryName, widget, item)\n                    }));\n                    break;\n                case 'remove':\n                    change.oldValues.forEach(() => toolbar.remove(change.oldIndex));\n                    break;\n                case 'set':\n                    change.newValues.forEach(item => toolbar.set(change.newIndex, {\n                        name: item.name,\n                        widget: toolbarRegistry.createWidget(factoryName, widget, item)\n                    }));\n                    break;\n            }\n        };\n        const updateWidget = (registry, itemName) => {\n            const itemIndex = Array.from(items).findIndex(item => item.name === itemName);\n            if (itemIndex >= 0) {\n                toolbar.set(itemIndex, {\n                    name: itemName,\n                    widget: toolbarRegistry.createWidget(factoryName, widget, items.get(itemIndex))\n                });\n            }\n        };\n        const toolbar = new _jupyterlab_observables__WEBPACK_IMPORTED_MODULE_0__.ObservableList({\n            values: Array.from(items).map(item => {\n                return {\n                    name: item.name,\n                    widget: toolbarRegistry.createWidget(factoryName, widget, item)\n                };\n            })\n        });\n        // Re-render the widget if a new factory has been added.\n        toolbarRegistry.factoryAdded.connect(updateWidget);\n        items.changed.connect(updateToolbar);\n        widget.disposed.connect(() => {\n            items.changed.disconnect(updateToolbar);\n            toolbarRegistry.factoryAdded.disconnect(updateWidget);\n        });\n        return toolbar;\n    };\n}\n/**\n * Set the toolbar items of a widget from a factory\n *\n * @param widget Widget with the toolbar to set\n * @param factory Toolbar items factory\n * @param toolbar Separated toolbar if widget is a raw widget\n */\nfunction setToolbar(widget, factory, toolbar) {\n    var _a;\n    // @ts-expect-error Widget has no toolbar\n    if (!widget.toolbar && !toolbar) {\n        console.log(`Widget ${widget.id} has no 'toolbar' and no explicit toolbar was provided.`);\n        return;\n    }\n    // @ts-expect-error Widget has no toolbar\n    const toolbar_ = (_a = widget.toolbar) !== null && _a !== void 0 ? _a : toolbar;\n    const items = factory(widget);\n    if (Array.isArray(items)) {\n        items.forEach(({ name, widget: item }) => {\n            toolbar_.addItem(name, item);\n        });\n    }\n    else {\n        const updateToolbar = (list, changes) => {\n            switch (changes.type) {\n                case 'add':\n                    changes.newValues.forEach((item, index) => {\n                        toolbar_.insertItem(changes.newIndex + index, item.name, item.widget);\n                    });\n                    break;\n                case 'move':\n                    changes.oldValues.forEach(item => {\n                        item.widget.parent = null;\n                    });\n                    changes.newValues.forEach((item, index) => {\n                        toolbar_.insertItem(changes.newIndex + index, item.name, item.widget);\n                    });\n                    break;\n                case 'remove':\n                    changes.oldValues.forEach(item => {\n                        item.widget.parent = null;\n                    });\n                    break;\n                case 'set':\n                    changes.oldValues.forEach(item => {\n                        item.widget.parent = null;\n                    });\n                    changes.newValues.forEach((item, index) => {\n                        const existingIndex = (0,_lumino_algorithm__WEBPACK_IMPORTED_MODULE_2__.findIndex)(toolbar_.names(), name => item.name === name);\n                        if (existingIndex >= 0) {\n                            Array.from(toolbar_.children())[existingIndex].parent = null;\n                        }\n                        toolbar_.insertItem(changes.newIndex + index, item.name, item.widget);\n                    });\n                    break;\n            }\n        };\n        updateToolbar(items, {\n            newIndex: 0,\n            newValues: Array.from(items),\n            oldIndex: 0,\n            oldValues: [],\n            type: 'add'\n        });\n        items.changed.connect(updateToolbar);\n        widget.disposed.connect(() => {\n            items.changed.disconnect(updateToolbar);\n        });\n    }\n}\n//# sourceMappingURL=factory.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/toolbar/factory.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/toolbar/registry.js":
/*!********************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/toolbar/registry.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ToolbarWidgetRegistry: () => (/* binding */ ToolbarWidgetRegistry),\n/* harmony export */   createDefaultFactory: () => (/* binding */ createDefaultFactory)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_2__);\n/*\n * Copyright (c) Jupyter Development Team.\n * Distributed under the terms of the Modified BSD License.\n */\n\n\n\n/**\n * Concrete implementation of IToolbarWidgetRegistry interface\n */\nclass ToolbarWidgetRegistry {\n    constructor(options) {\n        this._widgets = new Map();\n        this._factoryAdded = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_2__.Signal(this);\n        this._defaultFactory = options.defaultFactory;\n    }\n    /**\n     * Default toolbar item factory\n     */\n    get defaultFactory() {\n        return this._defaultFactory;\n    }\n    set defaultFactory(factory) {\n        this._defaultFactory = factory;\n    }\n    /**\n     * A signal emitted when a factory widget has been added.\n     */\n    get factoryAdded() {\n        return this._factoryAdded;\n    }\n    /**\n     * Create a toolbar item widget\n     *\n     * @param widgetFactory The widget factory name that creates the toolbar\n     * @param widget The newly widget containing the toolbar\n     * @param toolbarItem The toolbar item definition\n     * @returns The widget to be inserted in the toolbar.\n     */\n    createWidget(widgetFactory, widget, toolbarItem) {\n        var _a;\n        const factory = (_a = this._widgets.get(widgetFactory)) === null || _a === void 0 ? void 0 : _a.get(toolbarItem.name);\n        return factory\n            ? factory(widget)\n            : this._defaultFactory(widgetFactory, widget, toolbarItem);\n    }\n    /**\n     * Add a new toolbar item factory\n     *\n     * @param widgetFactory The widget factory name that creates the toolbar\n     * @param toolbarItemName The unique toolbar item\n     * @param factory The factory function that receives the widget containing the toolbar and returns the toolbar widget.\n     * @returns The previously defined factory\n     */\n    addFactory(widgetFactory, toolbarItemName, factory) {\n        let namespace = this._widgets.get(widgetFactory);\n        const oldFactory = namespace === null || namespace === void 0 ? void 0 : namespace.get(toolbarItemName);\n        if (!namespace) {\n            namespace = new Map();\n            this._widgets.set(widgetFactory, namespace);\n        }\n        namespace.set(toolbarItemName, factory);\n        this._factoryAdded.emit(toolbarItemName);\n        return oldFactory;\n    }\n    /**\n     * Register a new toolbar item factory\n     *\n     * @param widgetFactory The widget factory name that creates the toolbar\n     * @param toolbarItemName The unique toolbar item\n     * @param factory The factory function that receives the widget containing the toolbar and returns the toolbar widget.\n     * @returns The previously defined factory\n     *\n     * @deprecated since v4 use `addFactory` instead\n     */\n    registerFactory(widgetFactory, toolbarItemName, factory) {\n        return this.addFactory(widgetFactory, toolbarItemName, factory);\n    }\n}\n/**\n * Create the default toolbar item widget factory\n *\n * @param commands Application commands registry\n * @returns Default factory\n */\nfunction createDefaultFactory(commands) {\n    return (widgetFactory, widget, toolbarItem) => {\n        var _a;\n        switch ((_a = toolbarItem.type) !== null && _a !== void 0 ? _a : 'command') {\n            case 'command': {\n                const { command: tId, args: tArgs, label: tLabel, caption: tCaption, icon: tIcon } = toolbarItem;\n                const id = tId !== null && tId !== void 0 ? tId : '';\n                const args = { toolbar: true, ...tArgs };\n                const icon = tIcon ? _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.LabIcon.resolve({ icon: tIcon }) : undefined;\n                // If there is an icon, undefined label will results in no label\n                // otherwise the label will be set using the setting or the command label\n                const label = (icon !== null && icon !== void 0 ? icon : commands.icon(id, args)) ? tLabel !== null && tLabel !== void 0 ? tLabel : '' : tLabel;\n                return new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.CommandToolbarButton({\n                    commands,\n                    id,\n                    args,\n                    icon,\n                    label,\n                    caption: tCaption\n                });\n            }\n            case 'spacer':\n                return _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_0__.Toolbar.createSpacerItem();\n            default:\n                return new _lumino_widgets__WEBPACK_IMPORTED_MODULE_1__.Widget();\n        }\n    };\n}\n//# sourceMappingURL=registry.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/toolbar/registry.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/toolbar/widget.js":
/*!******************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/toolbar/widget.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Toolbar: () => (/* binding */ Toolbar)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/translation */ \"webpack/sharing/consume/default/@jupyterlab/translation/@jupyterlab/translation\");\n/* harmony import */ var _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @jupyterlab/ui-components */ \"webpack/sharing/consume/default/@jupyterlab/ui-components/@jupyterlab/ui-components\");\n/* harmony import */ var _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _sessioncontext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../sessioncontext */ \"../node_modules/@jupyterlab/apputils/lib/sessioncontext.js\");\n/* harmony import */ var _kernelstatuses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../kernelstatuses */ \"../node_modules/@jupyterlab/apputils/lib/kernelstatuses.js\");\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n\n\n\n/**\n * The class name added to toolbar kernel name text.\n */\nconst TOOLBAR_KERNEL_NAME_CLASS = 'jp-Toolbar-kernelName';\n/**\n * The class name added to toolbar kernel status icon.\n */\nconst TOOLBAR_KERNEL_STATUS_CLASS = 'jp-Toolbar-kernelStatus';\n/**\n * The namespace for Toolbar class statics.\n */\nvar Toolbar;\n(function (Toolbar) {\n    /**\n     * Create an interrupt toolbar item.\n     *\n     * @deprecated since version v3.2\n     * This is dead code now.\n     */\n    function createInterruptButton(sessionContext, translator) {\n        translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n        const trans = translator.load('jupyterlab');\n        return new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton({\n            icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.stopIcon,\n            onClick: () => {\n                var _a, _b;\n                void ((_b = (_a = sessionContext.session) === null || _a === void 0 ? void 0 : _a.kernel) === null || _b === void 0 ? void 0 : _b.interrupt());\n            },\n            tooltip: trans.__('Interrupt the kernel')\n        });\n    }\n    Toolbar.createInterruptButton = createInterruptButton;\n    /**\n     * Create a restart toolbar item.\n     *\n     * @deprecated since v3.2\n     * This is dead code now.\n     */\n    function createRestartButton(sessionContext, dialogs, translator) {\n        translator = translator !== null && translator !== void 0 ? translator : _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n        const trans = translator.load('jupyterlab');\n        return new _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButton({\n            icon: _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.refreshIcon,\n            onClick: () => {\n                void (dialogs !== null && dialogs !== void 0 ? dialogs : new _sessioncontext__WEBPACK_IMPORTED_MODULE_4__.SessionContextDialogs({ translator })).restart(sessionContext);\n            },\n            tooltip: trans.__('Restart the kernel')\n        });\n    }\n    Toolbar.createRestartButton = createRestartButton;\n    /**\n     * Create a kernel name indicator item.\n     *\n     * #### Notes\n     * It will display the `'display_name`' of the session context. It can\n     * handle a change in context or kernel.\n     */\n    function createKernelNameItem(sessionContext, dialogs, translator) {\n        const el = _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ReactWidget.create(react__WEBPACK_IMPORTED_MODULE_3__.createElement(Private.KernelNameComponent, { sessionContext: sessionContext, dialogs: dialogs !== null && dialogs !== void 0 ? dialogs : new _sessioncontext__WEBPACK_IMPORTED_MODULE_4__.SessionContextDialogs({ translator }), translator: translator }));\n        el.addClass('jp-KernelName');\n        return el;\n    }\n    Toolbar.createKernelNameItem = createKernelNameItem;\n    /**\n     * Create a kernel status indicator item.\n     *\n     * @deprecated since v3.5\n     * The kernel status indicator is now replaced by the execution status indicator.\n     *\n     * #### Notes\n     * It will show a busy status if the kernel status is busy.\n     * It will show the current status in the node title.\n     * It can handle a change to the context or the kernel.\n     */\n    function createKernelStatusItem(sessionContext, translator) {\n        return new Private.KernelStatus(sessionContext, translator);\n    }\n    Toolbar.createKernelStatusItem = createKernelStatusItem;\n})(Toolbar || (Toolbar = {}));\n/**\n * A namespace for private data.\n */\nvar Private;\n(function (Private) {\n    /**\n     * React component for a kernel name button.\n     *\n     * This wraps the ToolbarButtonComponent and watches the kernel\n     * session for changes.\n     */\n    function KernelNameComponent(props) {\n        const translator = props.translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n        const trans = translator.load('jupyterlab');\n        const callback = () => {\n            void props.dialogs.selectKernel(props.sessionContext);\n        };\n        return (react__WEBPACK_IMPORTED_MODULE_3__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.UseSignal, { signal: props.sessionContext.kernelChanged, initialSender: props.sessionContext }, sessionContext => (react__WEBPACK_IMPORTED_MODULE_3__.createElement(_jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.ToolbarButtonComponent, { className: TOOLBAR_KERNEL_NAME_CLASS, onClick: callback, tooltip: trans.__('Switch kernel'), label: sessionContext === null || sessionContext === void 0 ? void 0 : sessionContext.kernelDisplayName }))));\n    }\n    Private.KernelNameComponent = KernelNameComponent;\n    /**\n     * A toolbar item that displays kernel status.\n     *\n     * @deprecated This code is not use any longer and will be removed in JupyterLab 5\n     */\n    class KernelStatus extends _lumino_widgets__WEBPACK_IMPORTED_MODULE_2__.Widget {\n        /**\n         * Construct a new kernel status widget.\n         */\n        constructor(sessionContext, translator) {\n            super();\n            this.translator = translator || _jupyterlab_translation__WEBPACK_IMPORTED_MODULE_0__.nullTranslator;\n            this._trans = this.translator.load('jupyterlab');\n            this.addClass(TOOLBAR_KERNEL_STATUS_CLASS);\n            this._statusNames = (0,_kernelstatuses__WEBPACK_IMPORTED_MODULE_5__.translateKernelStatuses)(this.translator);\n            this._onStatusChanged(sessionContext);\n            sessionContext.statusChanged.connect(this._onStatusChanged, this);\n            sessionContext.connectionStatusChanged.connect(this._onStatusChanged, this);\n        }\n        /**\n         * Handle a status on a kernel.\n         */\n        _onStatusChanged(sessionContext) {\n            if (this.isDisposed) {\n                return;\n            }\n            const status = sessionContext.kernelDisplayStatus;\n            const circleIconProps = {\n                container: this.node,\n                title: this._trans.__('Kernel %1', this._statusNames[status] || status),\n                stylesheet: 'toolbarButton',\n                alignSelf: 'normal',\n                height: '24px'\n            };\n            // set the icon\n            _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.LabIcon.remove(this.node);\n            if (status === 'busy' ||\n                status === 'starting' ||\n                status === 'terminating' ||\n                status === 'restarting' ||\n                status === 'initializing') {\n                _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.circleIcon.element(circleIconProps);\n            }\n            else if (status === 'connecting' ||\n                status === 'disconnected' ||\n                status === 'unknown') {\n                _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.offlineBoltIcon.element(circleIconProps);\n            }\n            else {\n                _jupyterlab_ui_components__WEBPACK_IMPORTED_MODULE_1__.circleEmptyIcon.element(circleIconProps);\n            }\n        }\n    }\n    Private.KernelStatus = KernelStatus;\n})(Private || (Private = {}));\n//# sourceMappingURL=widget.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/toolbar/widget.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/widgettracker.js":
/*!*****************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/widgettracker.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   WidgetTracker: () => (/* binding */ WidgetTracker)\n/* harmony export */ });\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @jupyterlab/statedb */ \"webpack/sharing/consume/default/@jupyterlab/statedb/@jupyterlab/statedb\");\n/* harmony import */ var _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @lumino/signaling */ \"webpack/sharing/consume/default/@lumino/signaling/@lumino/signaling\");\n/* harmony import */ var _lumino_signaling__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_lumino_signaling__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @lumino/widgets */ \"webpack/sharing/consume/default/@lumino/widgets/@lumino/widgets\");\n/* harmony import */ var _lumino_widgets__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_lumino_widgets__WEBPACK_IMPORTED_MODULE_2__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n\n\n/**\n * A class that keeps track of widget instances on an Application shell.\n *\n * @typeparam T - The type of widget being tracked. Defaults to `Widget`.\n *\n * #### Notes\n * The API surface area of this concrete implementation is substantially larger\n * than the widget tracker interface it implements. The interface is intended\n * for export by JupyterLab plugins that create widgets and have clients who may\n * wish to keep track of newly created widgets. This class, however, can be used\n * internally by plugins to restore state as well.\n */\nclass WidgetTracker {\n    /**\n     * Create a new widget tracker.\n     *\n     * @param options - The instantiation options for a widget tracker.\n     */\n    constructor(options) {\n        this._currentChanged = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal(this);\n        this._deferred = null;\n        this._isDisposed = false;\n        this._widgetAdded = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal(this);\n        this._widgetUpdated = new _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal(this);\n        const focus = (this._focusTracker = new _lumino_widgets__WEBPACK_IMPORTED_MODULE_2__.FocusTracker());\n        const pool = (this._pool = new _jupyterlab_statedb__WEBPACK_IMPORTED_MODULE_0__.RestorablePool(options));\n        this.namespace = options.namespace;\n        focus.currentChanged.connect((_, current) => {\n            if (current.newValue !== this.currentWidget) {\n                pool.current = current.newValue;\n            }\n        }, this);\n        pool.added.connect((_, widget) => {\n            this._widgetAdded.emit(widget);\n        }, this);\n        pool.currentChanged.connect((_, widget) => {\n            // If the pool's current reference is `null` but the focus tracker has a\n            // current widget, update the pool to match the focus tracker.\n            if (widget === null && focus.currentWidget) {\n                pool.current = focus.currentWidget;\n                return;\n            }\n            this.onCurrentChanged(widget);\n            this._currentChanged.emit(widget);\n        }, this);\n        pool.updated.connect((_, widget) => {\n            this._widgetUpdated.emit(widget);\n        }, this);\n    }\n    /**\n     * A signal emitted when the current widget changes.\n     */\n    get currentChanged() {\n        return this._currentChanged;\n    }\n    /**\n     * The current widget is the most recently focused or added widget.\n     *\n     * #### Notes\n     * It is the most recently focused widget, or the most recently added\n     * widget if no widget has taken focus.\n     */\n    get currentWidget() {\n        return this._pool.current || null;\n    }\n    /**\n     * A promise resolved when the tracker has been restored.\n     */\n    get restored() {\n        if (this._deferred) {\n            return Promise.resolve();\n        }\n        else {\n            return this._pool.restored;\n        }\n    }\n    /**\n     * The number of widgets held by the tracker.\n     */\n    get size() {\n        return this._pool.size;\n    }\n    /**\n     * A signal emitted when a widget is added.\n     *\n     * #### Notes\n     * This signal will only fire when a widget is added to the tracker. It will\n     * not fire if a widget is injected into the tracker.\n     */\n    get widgetAdded() {\n        return this._widgetAdded;\n    }\n    /**\n     * A signal emitted when a widget is updated.\n     */\n    get widgetUpdated() {\n        return this._widgetUpdated;\n    }\n    /**\n     * Add a new widget to the tracker.\n     *\n     * @param widget - The widget being added.\n     *\n     * #### Notes\n     * The widget passed into the tracker is added synchronously; its existence in\n     * the tracker can be checked with the `has()` method. The promise this method\n     * returns resolves after the widget has been added and saved to an underlying\n     * restoration connector, if one is available.\n     *\n     * The newly added widget becomes the current widget unless the focus tracker\n     * already had a focused widget.\n     */\n    async add(widget) {\n        this._focusTracker.add(widget);\n        await this._pool.add(widget);\n        if (!this._focusTracker.activeWidget) {\n            this._pool.current = widget;\n        }\n    }\n    /**\n     * Test whether the tracker is disposed.\n     */\n    get isDisposed() {\n        return this._isDisposed;\n    }\n    /**\n     * Dispose of the resources held by the tracker.\n     */\n    dispose() {\n        if (this.isDisposed) {\n            return;\n        }\n        this._isDisposed = true;\n        this._pool.dispose();\n        this._focusTracker.dispose();\n        _lumino_signaling__WEBPACK_IMPORTED_MODULE_1__.Signal.clearData(this);\n    }\n    /**\n     * Find the first widget in the tracker that satisfies a filter function.\n     *\n     * @param fn The filter function to call on each widget.\n     *\n     * #### Notes\n     * If no widget is found, the value returned is `undefined`.\n     */\n    find(fn) {\n        return this._pool.find(fn);\n    }\n    /**\n     * Iterate through each widget in the tracker.\n     *\n     * @param fn - The function to call on each widget.\n     */\n    forEach(fn) {\n        return this._pool.forEach(fn);\n    }\n    /**\n     * Filter the widgets in the tracker based on a predicate.\n     *\n     * @param fn - The function by which to filter.\n     */\n    filter(fn) {\n        return this._pool.filter(fn);\n    }\n    /**\n     * Inject a foreign widget into the widget tracker.\n     *\n     * @param widget - The widget to inject into the tracker.\n     *\n     * #### Notes\n     * Injected widgets will not have their state saved by the tracker.\n     *\n     * The primary use case for widget injection is for a plugin that offers a\n     * sub-class of an extant plugin to have its instances share the same commands\n     * as the parent plugin (since most relevant commands will use the\n     * `currentWidget` of the parent plugin's widget tracker). In this situation,\n     * the sub-class plugin may well have its own widget tracker for layout and\n     * state restoration in addition to injecting its widgets into the parent\n     * plugin's widget tracker.\n     */\n    inject(widget) {\n        return this._pool.inject(widget);\n    }\n    /**\n     * Check if this tracker has the specified widget.\n     *\n     * @param widget - The widget whose existence is being checked.\n     */\n    has(widget) {\n        return this._pool.has(widget);\n    }\n    /**\n     * Restore the widgets in this tracker's namespace.\n     *\n     * @param options - The configuration options that describe restoration.\n     *\n     * @returns A promise that resolves when restoration has completed.\n     *\n     * #### Notes\n     * This function should not typically be invoked by client code.\n     * Its primary use case is to be invoked by a restorer.\n     */\n    async restore(options) {\n        const deferred = this._deferred;\n        if (deferred) {\n            this._deferred = null;\n            return this._pool.restore(deferred);\n        }\n        if (options) {\n            return this._pool.restore(options);\n        }\n        console.warn('No options provided to restore the tracker.');\n    }\n    /**\n     * Save the restore options for this tracker, but do not restore yet.\n     *\n     * @param options - The configuration options that describe restoration.\n     *\n     * ### Notes\n     * This function is useful when starting the shell in 'single-document' mode,\n     * to avoid restoring all useless widgets. It should not ordinarily be called\n     * by client code.\n     */\n    defer(options) {\n        this._deferred = options;\n    }\n    /**\n     * Save the restore data for a given widget.\n     *\n     * @param widget - The widget being saved.\n     */\n    async save(widget) {\n        return this._pool.save(widget);\n    }\n    /**\n     * Handle the current change event.\n     *\n     * #### Notes\n     * The default implementation is a no-op.\n     */\n    onCurrentChanged(value) {\n        /* no-op */\n    }\n}\n//# sourceMappingURL=widgettracker.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/widgettracker.js?");

/***/ }),

/***/ "../node_modules/@jupyterlab/apputils/lib/windowresolver.js":
/*!******************************************************************!*\
  !*** ../node_modules/@jupyterlab/apputils/lib/windowresolver.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   WindowResolver: () => (/* binding */ WindowResolver)\n/* harmony export */ });\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @lumino/coreutils */ \"webpack/sharing/consume/default/@lumino/coreutils/@lumino/coreutils\");\n/* harmony import */ var _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__);\n// Copyright (c) Jupyter Development Team.\n// Distributed under the terms of the Modified BSD License.\n\n/**\n * A concrete implementation of a window name resolver.\n */\nclass WindowResolver {\n    /**\n     * The resolved window name.\n     *\n     * #### Notes\n     * If the `resolve` promise has not resolved, the behavior is undefined.\n     */\n    get name() {\n        return this._name;\n    }\n    /**\n     * Resolve a window name to use as a handle among shared resources.\n     *\n     * @param candidate - The potential window name being resolved.\n     *\n     * #### Notes\n     * Typically, the name candidate should be a JupyterLab workspace name or\n     * an empty string if there is no workspace.\n     *\n     * If the returned promise rejects, a window name cannot be resolved without\n     * user intervention, which typically means navigation to a new URL.\n     */\n    resolve(candidate) {\n        return Private.resolve(candidate).then(name => {\n            this._name = name;\n        });\n    }\n}\n/*\n * A namespace for private module data.\n */\nvar Private;\n(function (Private) {\n    /**\n     * The internal prefix for private local storage keys.\n     */\n    const PREFIX = '@jupyterlab/statedb:StateDB';\n    /**\n     * The local storage beacon key.\n     */\n    const BEACON = `${PREFIX}:beacon`;\n    /**\n     * The timeout (in ms) to wait for beacon responders.\n     *\n     * #### Notes\n     * This value is a whole number between 200 and 500 in order to prevent\n     * perfect timeout collisions between multiple simultaneously opening windows\n     * that have the same URL. This is an edge case because multiple windows\n     * should not ordinarily share the same URL, but it can be contrived.\n     */\n    const TIMEOUT = Math.floor(200 + Math.random() * 300);\n    /**\n     * The local storage window key.\n     */\n    const WINDOW = `${PREFIX}:window`;\n    /**\n     * Current beacon request\n     *\n     * #### Notes\n     * We keep track of the current request so that we can ignore our own beacon\n     * requests. This is to work around a bug in Safari, where Safari sometimes\n     * triggers local storage events for changes made by the current tab. See\n     * https://github.com/jupyterlab/jupyterlab/issues/6921#issuecomment-540817283\n     * for more details.\n     */\n    let currentBeaconRequest = null;\n    /**\n     * A potential preferred default window name.\n     */\n    let candidate = null;\n    /**\n     * The window name promise.\n     */\n    const delegate = new _lumino_coreutils__WEBPACK_IMPORTED_MODULE_0__.PromiseDelegate();\n    /**\n     * The known window names.\n     */\n    const known = {};\n    /**\n     * The window name.\n     */\n    let name = null;\n    /**\n     * Whether the name resolution has completed.\n     */\n    let resolved = false;\n    /**\n     * Start the storage event handler.\n     */\n    function initialize() {\n        // Listen to all storage events for beacons and window names.\n        window.addEventListener('storage', (event) => {\n            const { key, newValue } = event;\n            // All the keys we care about have values.\n            if (newValue === null) {\n                return;\n            }\n            // If the beacon was fired, respond with a ping.\n            if (key === BEACON &&\n                newValue !== currentBeaconRequest &&\n                candidate !== null) {\n                ping(resolved ? name : candidate);\n                return;\n            }\n            // If the window name is resolved, bail.\n            if (resolved || key !== WINDOW) {\n                return;\n            }\n            const reported = newValue.replace(/\\-\\d+$/, '');\n            // Store the reported window name.\n            known[reported] = null;\n            // If a reported window name and candidate collide, reject the candidate.\n            if (!candidate || candidate in known) {\n                reject();\n            }\n        });\n    }\n    /**\n     * Ping peers with payload.\n     */\n    function ping(payload) {\n        if (payload === null) {\n            return;\n        }\n        const { localStorage } = window;\n        localStorage.setItem(WINDOW, `${payload}-${new Date().getTime()}`);\n    }\n    /**\n     * Reject the candidate.\n     */\n    function reject() {\n        resolved = true;\n        currentBeaconRequest = null;\n        delegate.reject(`Window name candidate \"${candidate}\" already exists`);\n    }\n    /**\n     * Returns a promise that resolves with the window name used for restoration.\n     */\n    function resolve(potential) {\n        if (resolved) {\n            return delegate.promise;\n        }\n        // Set the local candidate.\n        candidate = potential;\n        if (candidate in known) {\n            reject();\n            return delegate.promise;\n        }\n        const { localStorage, setTimeout } = window;\n        // Wait until other windows have reported before claiming the candidate.\n        setTimeout(() => {\n            if (resolved) {\n                return;\n            }\n            // If the window name has not already been resolved, check one last time\n            // to confirm it is not a duplicate before resolving.\n            if (!candidate || candidate in known) {\n                return reject();\n            }\n            resolved = true;\n            currentBeaconRequest = null;\n            delegate.resolve((name = candidate));\n            ping(name);\n        }, TIMEOUT);\n        // Fire the beacon to collect other windows' names.\n        currentBeaconRequest = `${Math.random()}-${new Date().getTime()}`;\n        localStorage.setItem(BEACON, currentBeaconRequest);\n        return delegate.promise;\n    }\n    Private.resolve = resolve;\n    // Initialize the storage listener at runtime.\n    (() => {\n        initialize();\n    })();\n})(Private || (Private = {}));\n//# sourceMappingURL=windowresolver.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/@jupyterlab/apputils/lib/windowresolver.js?");

/***/ }),

/***/ "../node_modules/deepmerge/dist/cjs.js":
/*!*********************************************!*\
  !*** ../node_modules/deepmerge/dist/cjs.js ***!
  \*********************************************/
/***/ ((module) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/deepmerge/dist/cjs.js?");

/***/ }),

/***/ "../node_modules/dom-serializer/lib/foreignNames.js":
/*!**********************************************************!*\
  !*** ../node_modules/dom-serializer/lib/foreignNames.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/dom-serializer/lib/foreignNames.js?");

/***/ }),

/***/ "../node_modules/dom-serializer/lib/index.js":
/*!***************************************************!*\
  !*** ../node_modules/dom-serializer/lib/index.js ***!
  \***************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\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(__webpack_require__(/*! domelementtype */ \"../node_modules/domelementtype/lib/index.js\"));\nvar entities_1 = __webpack_require__(/*! entities */ \"../node_modules/entities/lib/index.js\");\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 = __webpack_require__(/*! ./foreignNames.js */ \"../node_modules/dom-serializer/lib/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, \"&quot;\");\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/dom-serializer/lib/index.js?");

/***/ }),

/***/ "../node_modules/domelementtype/lib/index.js":
/*!***************************************************!*\
  !*** ../node_modules/domelementtype/lib/index.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domelementtype/lib/index.js?");

/***/ }),

/***/ "../node_modules/domhandler/lib/index.js":
/*!***********************************************!*\
  !*** ../node_modules/domhandler/lib/index.js ***!
  \***********************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\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 = __webpack_require__(/*! domelementtype */ \"../node_modules/domelementtype/lib/index.js\");\nvar node_js_1 = __webpack_require__(/*! ./node.js */ \"../node_modules/domhandler/lib/node.js\");\n__exportStar(__webpack_require__(/*! ./node.js */ \"../node_modules/domhandler/lib/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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domhandler/lib/index.js?");

/***/ }),

/***/ "../node_modules/domhandler/lib/node.js":
/*!**********************************************!*\
  !*** ../node_modules/domhandler/lib/node.js ***!
  \**********************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\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 = __webpack_require__(/*! domelementtype */ \"../node_modules/domelementtype/lib/index.js\");\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domhandler/lib/node.js?");

/***/ }),

/***/ "../node_modules/domutils/lib/feeds.js":
/*!*********************************************!*\
  !*** ../node_modules/domutils/lib/feeds.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getFeed = void 0;\nvar stringify_js_1 = __webpack_require__(/*! ./stringify.js */ \"../node_modules/domutils/lib/stringify.js\");\nvar legacy_js_1 = __webpack_require__(/*! ./legacy.js */ \"../node_modules/domutils/lib/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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/feeds.js?");

/***/ }),

/***/ "../node_modules/domutils/lib/helpers.js":
/*!***********************************************!*\
  !*** ../node_modules/domutils/lib/helpers.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.uniqueSort = exports.compareDocumentPosition = exports.DocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = __webpack_require__(/*! domhandler */ \"../node_modules/domhandler/lib/index.js\");\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/helpers.js?");

/***/ }),

/***/ "../node_modules/domutils/lib/index.js":
/*!*********************************************!*\
  !*** ../node_modules/domutils/lib/index.js ***!
  \*********************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\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(__webpack_require__(/*! ./stringify.js */ \"../node_modules/domutils/lib/stringify.js\"), exports);\n__exportStar(__webpack_require__(/*! ./traversal.js */ \"../node_modules/domutils/lib/traversal.js\"), exports);\n__exportStar(__webpack_require__(/*! ./manipulation.js */ \"../node_modules/domutils/lib/manipulation.js\"), exports);\n__exportStar(__webpack_require__(/*! ./querying.js */ \"../node_modules/domutils/lib/querying.js\"), exports);\n__exportStar(__webpack_require__(/*! ./legacy.js */ \"../node_modules/domutils/lib/legacy.js\"), exports);\n__exportStar(__webpack_require__(/*! ./helpers.js */ \"../node_modules/domutils/lib/helpers.js\"), exports);\n__exportStar(__webpack_require__(/*! ./feeds.js */ \"../node_modules/domutils/lib/feeds.js\"), exports);\n/** @deprecated Use these methods from `domhandler` directly. */\nvar domhandler_1 = __webpack_require__(/*! domhandler */ \"../node_modules/domhandler/lib/index.js\");\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/index.js?");

/***/ }),

/***/ "../node_modules/domutils/lib/legacy.js":
/*!**********************************************!*\
  !*** ../node_modules/domutils/lib/legacy.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = __webpack_require__(/*! domhandler */ \"../node_modules/domhandler/lib/index.js\");\nvar querying_js_1 = __webpack_require__(/*! ./querying.js */ \"../node_modules/domutils/lib/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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/legacy.js?");

/***/ }),

/***/ "../node_modules/domutils/lib/manipulation.js":
/*!****************************************************!*\
  !*** ../node_modules/domutils/lib/manipulation.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/manipulation.js?");

/***/ }),

/***/ "../node_modules/domutils/lib/querying.js":
/*!************************************************!*\
  !*** ../node_modules/domutils/lib/querying.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = __webpack_require__(/*! domhandler */ \"../node_modules/domhandler/lib/index.js\");\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/querying.js?");

/***/ }),

/***/ "../node_modules/domutils/lib/stringify.js":
/*!*************************************************!*\
  !*** ../node_modules/domutils/lib/stringify.js ***!
  \*************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\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 = __webpack_require__(/*! domhandler */ \"../node_modules/domhandler/lib/index.js\");\nvar dom_serializer_1 = __importDefault(__webpack_require__(/*! dom-serializer */ \"../node_modules/dom-serializer/lib/index.js\"));\nvar domelementtype_1 = __webpack_require__(/*! domelementtype */ \"../node_modules/domelementtype/lib/index.js\");\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/stringify.js?");

/***/ }),

/***/ "../node_modules/domutils/lib/traversal.js":
/*!*************************************************!*\
  !*** ../node_modules/domutils/lib/traversal.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\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 = __webpack_require__(/*! domhandler */ \"../node_modules/domhandler/lib/index.js\");\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/domutils/lib/traversal.js?");

/***/ }),

/***/ "../node_modules/entities/lib/decode.js":
/*!**********************************************!*\
  !*** ../node_modules/entities/lib/decode.js ***!
  \**********************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\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(__webpack_require__(/*! ./generated/decode-data-html.js */ \"../node_modules/entities/lib/generated/decode-data-html.js\"));\nexports.htmlDecodeTree = decode_data_html_js_1.default;\nvar decode_data_xml_js_1 = __importDefault(__webpack_require__(/*! ./generated/decode-data-xml.js */ \"../node_modules/entities/lib/generated/decode-data-xml.js\"));\nexports.xmlDecodeTree = decode_data_xml_js_1.default;\nvar decode_codepoint_js_1 = __importStar(__webpack_require__(/*! ./decode_codepoint.js */ \"../node_modules/entities/lib/decode_codepoint.js\"));\nexports.decodeCodePoint = decode_codepoint_js_1.default;\nvar decode_codepoint_js_2 = __webpack_require__(/*! ./decode_codepoint.js */ \"../node_modules/entities/lib/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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/decode.js?");

/***/ }),

/***/ "../node_modules/entities/lib/decode_codepoint.js":
/*!********************************************************!*\
  !*** ../node_modules/entities/lib/decode_codepoint.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/decode_codepoint.js?");

/***/ }),

/***/ "../node_modules/entities/lib/encode.js":
/*!**********************************************!*\
  !*** ../node_modules/entities/lib/encode.js ***!
  \**********************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\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(__webpack_require__(/*! ./generated/encode-html.js */ \"../node_modules/entities/lib/generated/encode-html.js\"));\nvar escape_js_1 = __webpack_require__(/*! ./escape.js */ \"../node_modules/entities/lib/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. `&#xfc;`) 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. `&#xfc;`) 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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/encode.js?");

/***/ }),

/***/ "../node_modules/entities/lib/escape.js":
/*!**********************************************!*\
  !*** ../node_modules/entities/lib/escape.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\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, \"&quot;\"],\n    [38, \"&amp;\"],\n    [39, \"&apos;\"],\n    [60, \"&lt;\"],\n    [62, \"&gt;\"],\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. `&#xfc;`) 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. `&#xfc;`).\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, \"&quot;\"],\n    [38, \"&amp;\"],\n    [160, \"&nbsp;\"],\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, \"&amp;\"],\n    [60, \"&lt;\"],\n    [62, \"&gt;\"],\n    [160, \"&nbsp;\"],\n]));\n//# sourceMappingURL=escape.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/escape.js?");

/***/ }),

/***/ "../node_modules/entities/lib/generated/decode-data-html.js":
/*!******************************************************************!*\
  !*** ../node_modules/entities/lib/generated/decode-data-html.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/generated/decode-data-html.js?");

/***/ }),

/***/ "../node_modules/entities/lib/generated/decode-data-xml.js":
/*!*****************************************************************!*\
  !*** ../node_modules/entities/lib/generated/decode-data-xml.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/generated/decode-data-xml.js?");

/***/ }),

/***/ "../node_modules/entities/lib/generated/encode-html.js":
/*!*************************************************************!*\
  !*** ../node_modules/entities/lib/generated/encode-html.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\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, \"&Tab;\"], [0, \"&NewLine;\"], [22, \"&excl;\"], [0, \"&quot;\"], [0, \"&num;\"], [0, \"&dollar;\"], [0, \"&percnt;\"], [0, \"&amp;\"], [0, \"&apos;\"], [0, \"&lpar;\"], [0, \"&rpar;\"], [0, \"&ast;\"], [0, \"&plus;\"], [0, \"&comma;\"], [1, \"&period;\"], [0, \"&sol;\"], [10, \"&colon;\"], [0, \"&semi;\"], [0, { v: \"&lt;\", n: 8402, o: \"&nvlt;\" }], [0, { v: \"&equals;\", n: 8421, o: \"&bne;\" }], [0, { v: \"&gt;\", n: 8402, o: \"&nvgt;\" }], [0, \"&quest;\"], [0, \"&commat;\"], [26, \"&lbrack;\"], [0, \"&bsol;\"], [0, \"&rbrack;\"], [0, \"&Hat;\"], [0, \"&lowbar;\"], [0, \"&DiacriticalGrave;\"], [5, { n: 106, o: \"&fjlig;\" }], [20, \"&lbrace;\"], [0, \"&verbar;\"], [0, \"&rbrace;\"], [34, \"&nbsp;\"], [0, \"&iexcl;\"], [0, \"&cent;\"], [0, \"&pound;\"], [0, \"&curren;\"], [0, \"&yen;\"], [0, \"&brvbar;\"], [0, \"&sect;\"], [0, \"&die;\"], [0, \"&copy;\"], [0, \"&ordf;\"], [0, \"&laquo;\"], [0, \"&not;\"], [0, \"&shy;\"], [0, \"&circledR;\"], [0, \"&macr;\"], [0, \"&deg;\"], [0, \"&PlusMinus;\"], [0, \"&sup2;\"], [0, \"&sup3;\"], [0, \"&acute;\"], [0, \"&micro;\"], [0, \"&para;\"], [0, \"&centerdot;\"], [0, \"&cedil;\"], [0, \"&sup1;\"], [0, \"&ordm;\"], [0, \"&raquo;\"], [0, \"&frac14;\"], [0, \"&frac12;\"], [0, \"&frac34;\"], [0, \"&iquest;\"], [0, \"&Agrave;\"], [0, \"&Aacute;\"], [0, \"&Acirc;\"], [0, \"&Atilde;\"], [0, \"&Auml;\"], [0, \"&angst;\"], [0, \"&AElig;\"], [0, \"&Ccedil;\"], [0, \"&Egrave;\"], [0, \"&Eacute;\"], [0, \"&Ecirc;\"], [0, \"&Euml;\"], [0, \"&Igrave;\"], [0, \"&Iacute;\"], [0, \"&Icirc;\"], [0, \"&Iuml;\"], [0, \"&ETH;\"], [0, \"&Ntilde;\"], [0, \"&Ograve;\"], [0, \"&Oacute;\"], [0, \"&Ocirc;\"], [0, \"&Otilde;\"], [0, \"&Ouml;\"], [0, \"&times;\"], [0, \"&Oslash;\"], [0, \"&Ugrave;\"], [0, \"&Uacute;\"], [0, \"&Ucirc;\"], [0, \"&Uuml;\"], [0, \"&Yacute;\"], [0, \"&THORN;\"], [0, \"&szlig;\"], [0, \"&agrave;\"], [0, \"&aacute;\"], [0, \"&acirc;\"], [0, \"&atilde;\"], [0, \"&auml;\"], [0, \"&aring;\"], [0, \"&aelig;\"], [0, \"&ccedil;\"], [0, \"&egrave;\"], [0, \"&eacute;\"], [0, \"&ecirc;\"], [0, \"&euml;\"], [0, \"&igrave;\"], [0, \"&iacute;\"], [0, \"&icirc;\"], [0, \"&iuml;\"], [0, \"&eth;\"], [0, \"&ntilde;\"], [0, \"&ograve;\"], [0, \"&oacute;\"], [0, \"&ocirc;\"], [0, \"&otilde;\"], [0, \"&ouml;\"], [0, \"&div;\"], [0, \"&oslash;\"], [0, \"&ugrave;\"], [0, \"&uacute;\"], [0, \"&ucirc;\"], [0, \"&uuml;\"], [0, \"&yacute;\"], [0, \"&thorn;\"], [0, \"&yuml;\"], [0, \"&Amacr;\"], [0, \"&amacr;\"], [0, \"&Abreve;\"], [0, \"&abreve;\"], [0, \"&Aogon;\"], [0, \"&aogon;\"], [0, \"&Cacute;\"], [0, \"&cacute;\"], [0, \"&Ccirc;\"], [0, \"&ccirc;\"], [0, \"&Cdot;\"], [0, \"&cdot;\"], [0, \"&Ccaron;\"], [0, \"&ccaron;\"], [0, \"&Dcaron;\"], [0, \"&dcaron;\"], [0, \"&Dstrok;\"], [0, \"&dstrok;\"], [0, \"&Emacr;\"], [0, \"&emacr;\"], [2, \"&Edot;\"], [0, \"&edot;\"], [0, \"&Eogon;\"], [0, \"&eogon;\"], [0, \"&Ecaron;\"], [0, \"&ecaron;\"], [0, \"&Gcirc;\"], [0, \"&gcirc;\"], [0, \"&Gbreve;\"], [0, \"&gbreve;\"], [0, \"&Gdot;\"], [0, \"&gdot;\"], [0, \"&Gcedil;\"], [1, \"&Hcirc;\"], [0, \"&hcirc;\"], [0, \"&Hstrok;\"], [0, \"&hstrok;\"], [0, \"&Itilde;\"], [0, \"&itilde;\"], [0, \"&Imacr;\"], [0, \"&imacr;\"], [2, \"&Iogon;\"], [0, \"&iogon;\"], [0, \"&Idot;\"], [0, \"&imath;\"], [0, \"&IJlig;\"], [0, \"&ijlig;\"], [0, \"&Jcirc;\"], [0, \"&jcirc;\"], [0, \"&Kcedil;\"], [0, \"&kcedil;\"], [0, \"&kgreen;\"], [0, \"&Lacute;\"], [0, \"&lacute;\"], [0, \"&Lcedil;\"], [0, \"&lcedil;\"], [0, \"&Lcaron;\"], [0, \"&lcaron;\"], [0, \"&Lmidot;\"], [0, \"&lmidot;\"], [0, \"&Lstrok;\"], [0, \"&lstrok;\"], [0, \"&Nacute;\"], [0, \"&nacute;\"], [0, \"&Ncedil;\"], [0, \"&ncedil;\"], [0, \"&Ncaron;\"], [0, \"&ncaron;\"], [0, \"&napos;\"], [0, \"&ENG;\"], [0, \"&eng;\"], [0, \"&Omacr;\"], [0, \"&omacr;\"], [2, \"&Odblac;\"], [0, \"&odblac;\"], [0, \"&OElig;\"], [0, \"&oelig;\"], [0, \"&Racute;\"], [0, \"&racute;\"], [0, \"&Rcedil;\"], [0, \"&rcedil;\"], [0, \"&Rcaron;\"], [0, \"&rcaron;\"], [0, \"&Sacute;\"], [0, \"&sacute;\"], [0, \"&Scirc;\"], [0, \"&scirc;\"], [0, \"&Scedil;\"], [0, \"&scedil;\"], [0, \"&Scaron;\"], [0, \"&scaron;\"], [0, \"&Tcedil;\"], [0, \"&tcedil;\"], [0, \"&Tcaron;\"], [0, \"&tcaron;\"], [0, \"&Tstrok;\"], [0, \"&tstrok;\"], [0, \"&Utilde;\"], [0, \"&utilde;\"], [0, \"&Umacr;\"], [0, \"&umacr;\"], [0, \"&Ubreve;\"], [0, \"&ubreve;\"], [0, \"&Uring;\"], [0, \"&uring;\"], [0, \"&Udblac;\"], [0, \"&udblac;\"], [0, \"&Uogon;\"], [0, \"&uogon;\"], [0, \"&Wcirc;\"], [0, \"&wcirc;\"], [0, \"&Ycirc;\"], [0, \"&ycirc;\"], [0, \"&Yuml;\"], [0, \"&Zacute;\"], [0, \"&zacute;\"], [0, \"&Zdot;\"], [0, \"&zdot;\"], [0, \"&Zcaron;\"], [0, \"&zcaron;\"], [19, \"&fnof;\"], [34, \"&imped;\"], [63, \"&gacute;\"], [65, \"&jmath;\"], [142, \"&circ;\"], [0, \"&caron;\"], [16, \"&breve;\"], [0, \"&DiacriticalDot;\"], [0, \"&ring;\"], [0, \"&ogon;\"], [0, \"&DiacriticalTilde;\"], [0, \"&dblac;\"], [51, \"&DownBreve;\"], [127, \"&Alpha;\"], [0, \"&Beta;\"], [0, \"&Gamma;\"], [0, \"&Delta;\"], [0, \"&Epsilon;\"], [0, \"&Zeta;\"], [0, \"&Eta;\"], [0, \"&Theta;\"], [0, \"&Iota;\"], [0, \"&Kappa;\"], [0, \"&Lambda;\"], [0, \"&Mu;\"], [0, \"&Nu;\"], [0, \"&Xi;\"], [0, \"&Omicron;\"], [0, \"&Pi;\"], [0, \"&Rho;\"], [1, \"&Sigma;\"], [0, \"&Tau;\"], [0, \"&Upsilon;\"], [0, \"&Phi;\"], [0, \"&Chi;\"], [0, \"&Psi;\"], [0, \"&ohm;\"], [7, \"&alpha;\"], [0, \"&beta;\"], [0, \"&gamma;\"], [0, \"&delta;\"], [0, \"&epsi;\"], [0, \"&zeta;\"], [0, \"&eta;\"], [0, \"&theta;\"], [0, \"&iota;\"], [0, \"&kappa;\"], [0, \"&lambda;\"], [0, \"&mu;\"], [0, \"&nu;\"], [0, \"&xi;\"], [0, \"&omicron;\"], [0, \"&pi;\"], [0, \"&rho;\"], [0, \"&sigmaf;\"], [0, \"&sigma;\"], [0, \"&tau;\"], [0, \"&upsi;\"], [0, \"&phi;\"], [0, \"&chi;\"], [0, \"&psi;\"], [0, \"&omega;\"], [7, \"&thetasym;\"], [0, \"&Upsi;\"], [2, \"&phiv;\"], [0, \"&piv;\"], [5, \"&Gammad;\"], [0, \"&digamma;\"], [18, \"&kappav;\"], [0, \"&rhov;\"], [3, \"&epsiv;\"], [0, \"&backepsilon;\"], [10, \"&IOcy;\"], [0, \"&DJcy;\"], [0, \"&GJcy;\"], [0, \"&Jukcy;\"], [0, \"&DScy;\"], [0, \"&Iukcy;\"], [0, \"&YIcy;\"], [0, \"&Jsercy;\"], [0, \"&LJcy;\"], [0, \"&NJcy;\"], [0, \"&TSHcy;\"], [0, \"&KJcy;\"], [1, \"&Ubrcy;\"], [0, \"&DZcy;\"], [0, \"&Acy;\"], [0, \"&Bcy;\"], [0, \"&Vcy;\"], [0, \"&Gcy;\"], [0, \"&Dcy;\"], [0, \"&IEcy;\"], [0, \"&ZHcy;\"], [0, \"&Zcy;\"], [0, \"&Icy;\"], [0, \"&Jcy;\"], [0, \"&Kcy;\"], [0, \"&Lcy;\"], [0, \"&Mcy;\"], [0, \"&Ncy;\"], [0, \"&Ocy;\"], [0, \"&Pcy;\"], [0, \"&Rcy;\"], [0, \"&Scy;\"], [0, \"&Tcy;\"], [0, \"&Ucy;\"], [0, \"&Fcy;\"], [0, \"&KHcy;\"], [0, \"&TScy;\"], [0, \"&CHcy;\"], [0, \"&SHcy;\"], [0, \"&SHCHcy;\"], [0, \"&HARDcy;\"], [0, \"&Ycy;\"], [0, \"&SOFTcy;\"], [0, \"&Ecy;\"], [0, \"&YUcy;\"], [0, \"&YAcy;\"], [0, \"&acy;\"], [0, \"&bcy;\"], [0, \"&vcy;\"], [0, \"&gcy;\"], [0, \"&dcy;\"], [0, \"&iecy;\"], [0, \"&zhcy;\"], [0, \"&zcy;\"], [0, \"&icy;\"], [0, \"&jcy;\"], [0, \"&kcy;\"], [0, \"&lcy;\"], [0, \"&mcy;\"], [0, \"&ncy;\"], [0, \"&ocy;\"], [0, \"&pcy;\"], [0, \"&rcy;\"], [0, \"&scy;\"], [0, \"&tcy;\"], [0, \"&ucy;\"], [0, \"&fcy;\"], [0, \"&khcy;\"], [0, \"&tscy;\"], [0, \"&chcy;\"], [0, \"&shcy;\"], [0, \"&shchcy;\"], [0, \"&hardcy;\"], [0, \"&ycy;\"], [0, \"&softcy;\"], [0, \"&ecy;\"], [0, \"&yucy;\"], [0, \"&yacy;\"], [1, \"&iocy;\"], [0, \"&djcy;\"], [0, \"&gjcy;\"], [0, \"&jukcy;\"], [0, \"&dscy;\"], [0, \"&iukcy;\"], [0, \"&yicy;\"], [0, \"&jsercy;\"], [0, \"&ljcy;\"], [0, \"&njcy;\"], [0, \"&tshcy;\"], [0, \"&kjcy;\"], [1, \"&ubrcy;\"], [0, \"&dzcy;\"], [7074, \"&ensp;\"], [0, \"&emsp;\"], [0, \"&emsp13;\"], [0, \"&emsp14;\"], [1, \"&numsp;\"], [0, \"&puncsp;\"], [0, \"&ThinSpace;\"], [0, \"&hairsp;\"], [0, \"&NegativeMediumSpace;\"], [0, \"&zwnj;\"], [0, \"&zwj;\"], [0, \"&lrm;\"], [0, \"&rlm;\"], [0, \"&dash;\"], [2, \"&ndash;\"], [0, \"&mdash;\"], [0, \"&horbar;\"], [0, \"&Verbar;\"], [1, \"&lsquo;\"], [0, \"&CloseCurlyQuote;\"], [0, \"&lsquor;\"], [1, \"&ldquo;\"], [0, \"&CloseCurlyDoubleQuote;\"], [0, \"&bdquo;\"], [1, \"&dagger;\"], [0, \"&Dagger;\"], [0, \"&bull;\"], [2, \"&nldr;\"], [0, \"&hellip;\"], [9, \"&permil;\"], [0, \"&pertenk;\"], [0, \"&prime;\"], [0, \"&Prime;\"], [0, \"&tprime;\"], [0, \"&backprime;\"], [3, \"&lsaquo;\"], [0, \"&rsaquo;\"], [3, \"&oline;\"], [2, \"&caret;\"], [1, \"&hybull;\"], [0, \"&frasl;\"], [10, \"&bsemi;\"], [7, \"&qprime;\"], [7, { v: \"&MediumSpace;\", n: 8202, o: \"&ThickSpace;\" }], [0, \"&NoBreak;\"], [0, \"&af;\"], [0, \"&InvisibleTimes;\"], [0, \"&ic;\"], [72, \"&euro;\"], [46, \"&tdot;\"], [0, \"&DotDot;\"], [37, \"&complexes;\"], [2, \"&incare;\"], [4, \"&gscr;\"], [0, \"&hamilt;\"], [0, \"&Hfr;\"], [0, \"&Hopf;\"], [0, \"&planckh;\"], [0, \"&hbar;\"], [0, \"&imagline;\"], [0, \"&Ifr;\"], [0, \"&lagran;\"], [0, \"&ell;\"], [1, \"&naturals;\"], [0, \"&numero;\"], [0, \"&copysr;\"], [0, \"&weierp;\"], [0, \"&Popf;\"], [0, \"&Qopf;\"], [0, \"&realine;\"], [0, \"&real;\"], [0, \"&reals;\"], [0, \"&rx;\"], [3, \"&trade;\"], [1, \"&integers;\"], [2, \"&mho;\"], [0, \"&zeetrf;\"], [0, \"&iiota;\"], [2, \"&bernou;\"], [0, \"&Cayleys;\"], [1, \"&escr;\"], [0, \"&Escr;\"], [0, \"&Fouriertrf;\"], [1, \"&Mellintrf;\"], [0, \"&order;\"], [0, \"&alefsym;\"], [0, \"&beth;\"], [0, \"&gimel;\"], [0, \"&daleth;\"], [12, \"&CapitalDifferentialD;\"], [0, \"&dd;\"], [0, \"&ee;\"], [0, \"&ii;\"], [10, \"&frac13;\"], [0, \"&frac23;\"], [0, \"&frac15;\"], [0, \"&frac25;\"], [0, \"&frac35;\"], [0, \"&frac45;\"], [0, \"&frac16;\"], [0, \"&frac56;\"], [0, \"&frac18;\"], [0, \"&frac38;\"], [0, \"&frac58;\"], [0, \"&frac78;\"], [49, \"&larr;\"], [0, \"&ShortUpArrow;\"], [0, \"&rarr;\"], [0, \"&darr;\"], [0, \"&harr;\"], [0, \"&updownarrow;\"], [0, \"&nwarr;\"], [0, \"&nearr;\"], [0, \"&LowerRightArrow;\"], [0, \"&LowerLeftArrow;\"], [0, \"&nlarr;\"], [0, \"&nrarr;\"], [1, { v: \"&rarrw;\", n: 824, o: \"&nrarrw;\" }], [0, \"&Larr;\"], [0, \"&Uarr;\"], [0, \"&Rarr;\"], [0, \"&Darr;\"], [0, \"&larrtl;\"], [0, \"&rarrtl;\"], [0, \"&LeftTeeArrow;\"], [0, \"&mapstoup;\"], [0, \"&map;\"], [0, \"&DownTeeArrow;\"], [1, \"&hookleftarrow;\"], [0, \"&hookrightarrow;\"], [0, \"&larrlp;\"], [0, \"&looparrowright;\"], [0, \"&harrw;\"], [0, \"&nharr;\"], [1, \"&lsh;\"], [0, \"&rsh;\"], [0, \"&ldsh;\"], [0, \"&rdsh;\"], [1, \"&crarr;\"], [0, \"&cularr;\"], [0, \"&curarr;\"], [2, \"&circlearrowleft;\"], [0, \"&circlearrowright;\"], [0, \"&leftharpoonup;\"], [0, \"&DownLeftVector;\"], [0, \"&RightUpVector;\"], [0, \"&LeftUpVector;\"], [0, \"&rharu;\"], [0, \"&DownRightVector;\"], [0, \"&dharr;\"], [0, \"&dharl;\"], [0, \"&RightArrowLeftArrow;\"], [0, \"&udarr;\"], [0, \"&LeftArrowRightArrow;\"], [0, \"&leftleftarrows;\"], [0, \"&upuparrows;\"], [0, \"&rightrightarrows;\"], [0, \"&ddarr;\"], [0, \"&leftrightharpoons;\"], [0, \"&Equilibrium;\"], [0, \"&nlArr;\"], [0, \"&nhArr;\"], [0, \"&nrArr;\"], [0, \"&DoubleLeftArrow;\"], [0, \"&DoubleUpArrow;\"], [0, \"&DoubleRightArrow;\"], [0, \"&dArr;\"], [0, \"&DoubleLeftRightArrow;\"], [0, \"&DoubleUpDownArrow;\"], [0, \"&nwArr;\"], [0, \"&neArr;\"], [0, \"&seArr;\"], [0, \"&swArr;\"], [0, \"&lAarr;\"], [0, \"&rAarr;\"], [1, \"&zigrarr;\"], [6, \"&larrb;\"], [0, \"&rarrb;\"], [15, \"&DownArrowUpArrow;\"], [7, \"&loarr;\"], [0, \"&roarr;\"], [0, \"&hoarr;\"], [0, \"&forall;\"], [0, \"&comp;\"], [0, { v: \"&part;\", n: 824, o: \"&npart;\" }], [0, \"&exist;\"], [0, \"&nexist;\"], [0, \"&empty;\"], [1, \"&Del;\"], [0, \"&Element;\"], [0, \"&NotElement;\"], [1, \"&ni;\"], [0, \"&notni;\"], [2, \"&prod;\"], [0, \"&coprod;\"], [0, \"&sum;\"], [0, \"&minus;\"], [0, \"&MinusPlus;\"], [0, \"&dotplus;\"], [1, \"&Backslash;\"], [0, \"&lowast;\"], [0, \"&compfn;\"], [1, \"&radic;\"], [2, \"&prop;\"], [0, \"&infin;\"], [0, \"&angrt;\"], [0, { v: \"&ang;\", n: 8402, o: \"&nang;\" }], [0, \"&angmsd;\"], [0, \"&angsph;\"], [0, \"&mid;\"], [0, \"&nmid;\"], [0, \"&DoubleVerticalBar;\"], [0, \"&NotDoubleVerticalBar;\"], [0, \"&and;\"], [0, \"&or;\"], [0, { v: \"&cap;\", n: 65024, o: \"&caps;\" }], [0, { v: \"&cup;\", n: 65024, o: \"&cups;\" }], [0, \"&int;\"], [0, \"&Int;\"], [0, \"&iiint;\"], [0, \"&conint;\"], [0, \"&Conint;\"], [0, \"&Cconint;\"], [0, \"&cwint;\"], [0, \"&ClockwiseContourIntegral;\"], [0, \"&awconint;\"], [0, \"&there4;\"], [0, \"&becaus;\"], [0, \"&ratio;\"], [0, \"&Colon;\"], [0, \"&dotminus;\"], [1, \"&mDDot;\"], [0, \"&homtht;\"], [0, { v: \"&sim;\", n: 8402, o: \"&nvsim;\" }], [0, { v: \"&backsim;\", n: 817, o: \"&race;\" }], [0, { v: \"&ac;\", n: 819, o: \"&acE;\" }], [0, \"&acd;\"], [0, \"&VerticalTilde;\"], [0, \"&NotTilde;\"], [0, { v: \"&eqsim;\", n: 824, o: \"&nesim;\" }], [0, \"&sime;\"], [0, \"&NotTildeEqual;\"], [0, \"&cong;\"], [0, \"&simne;\"], [0, \"&ncong;\"], [0, \"&ap;\"], [0, \"&nap;\"], [0, \"&ape;\"], [0, { v: \"&apid;\", n: 824, o: \"&napid;\" }], [0, \"&backcong;\"], [0, { v: \"&asympeq;\", n: 8402, o: \"&nvap;\" }], [0, { v: \"&bump;\", n: 824, o: \"&nbump;\" }], [0, { v: \"&bumpe;\", n: 824, o: \"&nbumpe;\" }], [0, { v: \"&doteq;\", n: 824, o: \"&nedot;\" }], [0, \"&doteqdot;\"], [0, \"&efDot;\"], [0, \"&erDot;\"], [0, \"&Assign;\"], [0, \"&ecolon;\"], [0, \"&ecir;\"], [0, \"&circeq;\"], [1, \"&wedgeq;\"], [0, \"&veeeq;\"], [1, \"&triangleq;\"], [2, \"&equest;\"], [0, \"&ne;\"], [0, { v: \"&Congruent;\", n: 8421, o: \"&bnequiv;\" }], [0, \"&nequiv;\"], [1, { v: \"&le;\", n: 8402, o: \"&nvle;\" }], [0, { v: \"&ge;\", n: 8402, o: \"&nvge;\" }], [0, { v: \"&lE;\", n: 824, o: \"&nlE;\" }], [0, { v: \"&gE;\", n: 824, o: \"&ngE;\" }], [0, { v: \"&lnE;\", n: 65024, o: \"&lvertneqq;\" }], [0, { v: \"&gnE;\", n: 65024, o: \"&gvertneqq;\" }], [0, { v: \"&ll;\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"&nLtv;\"], [7577, \"&nLt;\"]])) }], [0, { v: \"&gg;\", n: new Map(/* #__PURE__ */ restoreDiff([[824, \"&nGtv;\"], [7577, \"&nGt;\"]])) }], [0, \"&between;\"], [0, \"&NotCupCap;\"], [0, \"&nless;\"], [0, \"&ngt;\"], [0, \"&nle;\"], [0, \"&nge;\"], [0, \"&lesssim;\"], [0, \"&GreaterTilde;\"], [0, \"&nlsim;\"], [0, \"&ngsim;\"], [0, \"&LessGreater;\"], [0, \"&gl;\"], [0, \"&NotLessGreater;\"], [0, \"&NotGreaterLess;\"], [0, \"&pr;\"], [0, \"&sc;\"], [0, \"&prcue;\"], [0, \"&sccue;\"], [0, \"&PrecedesTilde;\"], [0, { v: \"&scsim;\", n: 824, o: \"&NotSucceedsTilde;\" }], [0, \"&NotPrecedes;\"], [0, \"&NotSucceeds;\"], [0, { v: \"&sub;\", n: 8402, o: \"&NotSubset;\" }], [0, { v: \"&sup;\", n: 8402, o: \"&NotSuperset;\" }], [0, \"&nsub;\"], [0, \"&nsup;\"], [0, \"&sube;\"], [0, \"&supe;\"], [0, \"&NotSubsetEqual;\"], [0, \"&NotSupersetEqual;\"], [0, { v: \"&subne;\", n: 65024, o: \"&varsubsetneq;\" }], [0, { v: \"&supne;\", n: 65024, o: \"&varsupsetneq;\" }], [1, \"&cupdot;\"], [0, \"&UnionPlus;\"], [0, { v: \"&sqsub;\", n: 824, o: \"&NotSquareSubset;\" }], [0, { v: \"&sqsup;\", n: 824, o: \"&NotSquareSuperset;\" }], [0, \"&sqsube;\"], [0, \"&sqsupe;\"], [0, { v: \"&sqcap;\", n: 65024, o: \"&sqcaps;\" }], [0, { v: \"&sqcup;\", n: 65024, o: \"&sqcups;\" }], [0, \"&CirclePlus;\"], [0, \"&CircleMinus;\"], [0, \"&CircleTimes;\"], [0, \"&osol;\"], [0, \"&CircleDot;\"], [0, \"&circledcirc;\"], [0, \"&circledast;\"], [1, \"&circleddash;\"], [0, \"&boxplus;\"], [0, \"&boxminus;\"], [0, \"&boxtimes;\"], [0, \"&dotsquare;\"], [0, \"&RightTee;\"], [0, \"&dashv;\"], [0, \"&DownTee;\"], [0, \"&bot;\"], [1, \"&models;\"], [0, \"&DoubleRightTee;\"], [0, \"&Vdash;\"], [0, \"&Vvdash;\"], [0, \"&VDash;\"], [0, \"&nvdash;\"], [0, \"&nvDash;\"], [0, \"&nVdash;\"], [0, \"&nVDash;\"], [0, \"&prurel;\"], [1, \"&LeftTriangle;\"], [0, \"&RightTriangle;\"], [0, { v: \"&LeftTriangleEqual;\", n: 8402, o: \"&nvltrie;\" }], [0, { v: \"&RightTriangleEqual;\", n: 8402, o: \"&nvrtrie;\" }], [0, \"&origof;\"], [0, \"&imof;\"], [0, \"&multimap;\"], [0, \"&hercon;\"], [0, \"&intcal;\"], [0, \"&veebar;\"], [1, \"&barvee;\"], [0, \"&angrtvb;\"], [0, \"&lrtri;\"], [0, \"&bigwedge;\"], [0, \"&bigvee;\"], [0, \"&bigcap;\"], [0, \"&bigcup;\"], [0, \"&diam;\"], [0, \"&sdot;\"], [0, \"&sstarf;\"], [0, \"&divideontimes;\"], [0, \"&bowtie;\"], [0, \"&ltimes;\"], [0, \"&rtimes;\"], [0, \"&leftthreetimes;\"], [0, \"&rightthreetimes;\"], [0, \"&backsimeq;\"], [0, \"&curlyvee;\"], [0, \"&curlywedge;\"], [0, \"&Sub;\"], [0, \"&Sup;\"], [0, \"&Cap;\"], [0, \"&Cup;\"], [0, \"&fork;\"], [0, \"&epar;\"], [0, \"&lessdot;\"], [0, \"&gtdot;\"], [0, { v: \"&Ll;\", n: 824, o: \"&nLl;\" }], [0, { v: \"&Gg;\", n: 824, o: \"&nGg;\" }], [0, { v: \"&leg;\", n: 65024, o: \"&lesg;\" }], [0, { v: \"&gel;\", n: 65024, o: \"&gesl;\" }], [2, \"&cuepr;\"], [0, \"&cuesc;\"], [0, \"&NotPrecedesSlantEqual;\"], [0, \"&NotSucceedsSlantEqual;\"], [0, \"&NotSquareSubsetEqual;\"], [0, \"&NotSquareSupersetEqual;\"], [2, \"&lnsim;\"], [0, \"&gnsim;\"], [0, \"&precnsim;\"], [0, \"&scnsim;\"], [0, \"&nltri;\"], [0, \"&NotRightTriangle;\"], [0, \"&nltrie;\"], [0, \"&NotRightTriangleEqual;\"], [0, \"&vellip;\"], [0, \"&ctdot;\"], [0, \"&utdot;\"], [0, \"&dtdot;\"], [0, \"&disin;\"], [0, \"&isinsv;\"], [0, \"&isins;\"], [0, { v: \"&isindot;\", n: 824, o: \"&notindot;\" }], [0, \"&notinvc;\"], [0, \"&notinvb;\"], [1, { v: \"&isinE;\", n: 824, o: \"&notinE;\" }], [0, \"&nisd;\"], [0, \"&xnis;\"], [0, \"&nis;\"], [0, \"&notnivc;\"], [0, \"&notnivb;\"], [6, \"&barwed;\"], [0, \"&Barwed;\"], [1, \"&lceil;\"], [0, \"&rceil;\"], [0, \"&LeftFloor;\"], [0, \"&rfloor;\"], [0, \"&drcrop;\"], [0, \"&dlcrop;\"], [0, \"&urcrop;\"], [0, \"&ulcrop;\"], [0, \"&bnot;\"], [1, \"&profline;\"], [0, \"&profsurf;\"], [1, \"&telrec;\"], [0, \"&target;\"], [5, \"&ulcorn;\"], [0, \"&urcorn;\"], [0, \"&dlcorn;\"], [0, \"&drcorn;\"], [2, \"&frown;\"], [0, \"&smile;\"], [9, \"&cylcty;\"], [0, \"&profalar;\"], [7, \"&topbot;\"], [6, \"&ovbar;\"], [1, \"&solbar;\"], [60, \"&angzarr;\"], [51, \"&lmoustache;\"], [0, \"&rmoustache;\"], [2, \"&OverBracket;\"], [0, \"&bbrk;\"], [0, \"&bbrktbrk;\"], [37, \"&OverParenthesis;\"], [0, \"&UnderParenthesis;\"], [0, \"&OverBrace;\"], [0, \"&UnderBrace;\"], [2, \"&trpezium;\"], [4, \"&elinters;\"], [59, \"&blank;\"], [164, \"&circledS;\"], [55, \"&boxh;\"], [1, \"&boxv;\"], [9, \"&boxdr;\"], [3, \"&boxdl;\"], [3, \"&boxur;\"], [3, \"&boxul;\"], [3, \"&boxvr;\"], [7, \"&boxvl;\"], [7, \"&boxhd;\"], [7, \"&boxhu;\"], [7, \"&boxvh;\"], [19, \"&boxH;\"], [0, \"&boxV;\"], [0, \"&boxdR;\"], [0, \"&boxDr;\"], [0, \"&boxDR;\"], [0, \"&boxdL;\"], [0, \"&boxDl;\"], [0, \"&boxDL;\"], [0, \"&boxuR;\"], [0, \"&boxUr;\"], [0, \"&boxUR;\"], [0, \"&boxuL;\"], [0, \"&boxUl;\"], [0, \"&boxUL;\"], [0, \"&boxvR;\"], [0, \"&boxVr;\"], [0, \"&boxVR;\"], [0, \"&boxvL;\"], [0, \"&boxVl;\"], [0, \"&boxVL;\"], [0, \"&boxHd;\"], [0, \"&boxhD;\"], [0, \"&boxHD;\"], [0, \"&boxHu;\"], [0, \"&boxhU;\"], [0, \"&boxHU;\"], [0, \"&boxvH;\"], [0, \"&boxVh;\"], [0, \"&boxVH;\"], [19, \"&uhblk;\"], [3, \"&lhblk;\"], [3, \"&block;\"], [8, \"&blk14;\"], [0, \"&blk12;\"], [0, \"&blk34;\"], [13, \"&square;\"], [8, \"&blacksquare;\"], [0, \"&EmptyVerySmallSquare;\"], [1, \"&rect;\"], [0, \"&marker;\"], [2, \"&fltns;\"], [1, \"&bigtriangleup;\"], [0, \"&blacktriangle;\"], [0, \"&triangle;\"], [2, \"&blacktriangleright;\"], [0, \"&rtri;\"], [3, \"&bigtriangledown;\"], [0, \"&blacktriangledown;\"], [0, \"&dtri;\"], [2, \"&blacktriangleleft;\"], [0, \"&ltri;\"], [6, \"&loz;\"], [0, \"&cir;\"], [32, \"&tridot;\"], [2, \"&bigcirc;\"], [8, \"&ultri;\"], [0, \"&urtri;\"], [0, \"&lltri;\"], [0, \"&EmptySmallSquare;\"], [0, \"&FilledSmallSquare;\"], [8, \"&bigstar;\"], [0, \"&star;\"], [7, \"&phone;\"], [49, \"&female;\"], [1, \"&male;\"], [29, \"&spades;\"], [2, \"&clubs;\"], [1, \"&hearts;\"], [0, \"&diamondsuit;\"], [3, \"&sung;\"], [2, \"&flat;\"], [0, \"&natural;\"], [0, \"&sharp;\"], [163, \"&check;\"], [3, \"&cross;\"], [8, \"&malt;\"], [21, \"&sext;\"], [33, \"&VerticalSeparator;\"], [25, \"&lbbrk;\"], [0, \"&rbbrk;\"], [84, \"&bsolhsub;\"], [0, \"&suphsol;\"], [28, \"&LeftDoubleBracket;\"], [0, \"&RightDoubleBracket;\"], [0, \"&lang;\"], [0, \"&rang;\"], [0, \"&Lang;\"], [0, \"&Rang;\"], [0, \"&loang;\"], [0, \"&roang;\"], [7, \"&longleftarrow;\"], [0, \"&longrightarrow;\"], [0, \"&longleftrightarrow;\"], [0, \"&DoubleLongLeftArrow;\"], [0, \"&DoubleLongRightArrow;\"], [0, \"&DoubleLongLeftRightArrow;\"], [1, \"&longmapsto;\"], [2, \"&dzigrarr;\"], [258, \"&nvlArr;\"], [0, \"&nvrArr;\"], [0, \"&nvHarr;\"], [0, \"&Map;\"], [6, \"&lbarr;\"], [0, \"&bkarow;\"], [0, \"&lBarr;\"], [0, \"&dbkarow;\"], [0, \"&drbkarow;\"], [0, \"&DDotrahd;\"], [0, \"&UpArrowBar;\"], [0, \"&DownArrowBar;\"], [2, \"&Rarrtl;\"], [2, \"&latail;\"], [0, \"&ratail;\"], [0, \"&lAtail;\"], [0, \"&rAtail;\"], [0, \"&larrfs;\"], [0, \"&rarrfs;\"], [0, \"&larrbfs;\"], [0, \"&rarrbfs;\"], [2, \"&nwarhk;\"], [0, \"&nearhk;\"], [0, \"&hksearow;\"], [0, \"&hkswarow;\"], [0, \"&nwnear;\"], [0, \"&nesear;\"], [0, \"&seswar;\"], [0, \"&swnwar;\"], [8, { v: \"&rarrc;\", n: 824, o: \"&nrarrc;\" }], [1, \"&cudarrr;\"], [0, \"&ldca;\"], [0, \"&rdca;\"], [0, \"&cudarrl;\"], [0, \"&larrpl;\"], [2, \"&curarrm;\"], [0, \"&cularrp;\"], [7, \"&rarrpl;\"], [2, \"&harrcir;\"], [0, \"&Uarrocir;\"], [0, \"&lurdshar;\"], [0, \"&ldrushar;\"], [2, \"&LeftRightVector;\"], [0, \"&RightUpDownVector;\"], [0, \"&DownLeftRightVector;\"], [0, \"&LeftUpDownVector;\"], [0, \"&LeftVectorBar;\"], [0, \"&RightVectorBar;\"], [0, \"&RightUpVectorBar;\"], [0, \"&RightDownVectorBar;\"], [0, \"&DownLeftVectorBar;\"], [0, \"&DownRightVectorBar;\"], [0, \"&LeftUpVectorBar;\"], [0, \"&LeftDownVectorBar;\"], [0, \"&LeftTeeVector;\"], [0, \"&RightTeeVector;\"], [0, \"&RightUpTeeVector;\"], [0, \"&RightDownTeeVector;\"], [0, \"&DownLeftTeeVector;\"], [0, \"&DownRightTeeVector;\"], [0, \"&LeftUpTeeVector;\"], [0, \"&LeftDownTeeVector;\"], [0, \"&lHar;\"], [0, \"&uHar;\"], [0, \"&rHar;\"], [0, \"&dHar;\"], [0, \"&luruhar;\"], [0, \"&ldrdhar;\"], [0, \"&ruluhar;\"], [0, \"&rdldhar;\"], [0, \"&lharul;\"], [0, \"&llhard;\"], [0, \"&rharul;\"], [0, \"&lrhard;\"], [0, \"&udhar;\"], [0, \"&duhar;\"], [0, \"&RoundImplies;\"], [0, \"&erarr;\"], [0, \"&simrarr;\"], [0, \"&larrsim;\"], [0, \"&rarrsim;\"], [0, \"&rarrap;\"], [0, \"&ltlarr;\"], [1, \"&gtrarr;\"], [0, \"&subrarr;\"], [1, \"&suplarr;\"], [0, \"&lfisht;\"], [0, \"&rfisht;\"], [0, \"&ufisht;\"], [0, \"&dfisht;\"], [5, \"&lopar;\"], [0, \"&ropar;\"], [4, \"&lbrke;\"], [0, \"&rbrke;\"], [0, \"&lbrkslu;\"], [0, \"&rbrksld;\"], [0, \"&lbrksld;\"], [0, \"&rbrkslu;\"], [0, \"&langd;\"], [0, \"&rangd;\"], [0, \"&lparlt;\"], [0, \"&rpargt;\"], [0, \"&gtlPar;\"], [0, \"&ltrPar;\"], [3, \"&vzigzag;\"], [1, \"&vangrt;\"], [0, \"&angrtvbd;\"], [6, \"&ange;\"], [0, \"&range;\"], [0, \"&dwangle;\"], [0, \"&uwangle;\"], [0, \"&angmsdaa;\"], [0, \"&angmsdab;\"], [0, \"&angmsdac;\"], [0, \"&angmsdad;\"], [0, \"&angmsdae;\"], [0, \"&angmsdaf;\"], [0, \"&angmsdag;\"], [0, \"&angmsdah;\"], [0, \"&bemptyv;\"], [0, \"&demptyv;\"], [0, \"&cemptyv;\"], [0, \"&raemptyv;\"], [0, \"&laemptyv;\"], [0, \"&ohbar;\"], [0, \"&omid;\"], [0, \"&opar;\"], [1, \"&operp;\"], [1, \"&olcross;\"], [0, \"&odsold;\"], [1, \"&olcir;\"], [0, \"&ofcir;\"], [0, \"&olt;\"], [0, \"&ogt;\"], [0, \"&cirscir;\"], [0, \"&cirE;\"], [0, \"&solb;\"], [0, \"&bsolb;\"], [3, \"&boxbox;\"], [3, \"&trisb;\"], [0, \"&rtriltri;\"], [0, { v: \"&LeftTriangleBar;\", n: 824, o: \"&NotLeftTriangleBar;\" }], [0, { v: \"&RightTriangleBar;\", n: 824, o: \"&NotRightTriangleBar;\" }], [11, \"&iinfin;\"], [0, \"&infintie;\"], [0, \"&nvinfin;\"], [4, \"&eparsl;\"], [0, \"&smeparsl;\"], [0, \"&eqvparsl;\"], [5, \"&blacklozenge;\"], [8, \"&RuleDelayed;\"], [1, \"&dsol;\"], [9, \"&bigodot;\"], [0, \"&bigoplus;\"], [0, \"&bigotimes;\"], [1, \"&biguplus;\"], [1, \"&bigsqcup;\"], [5, \"&iiiint;\"], [0, \"&fpartint;\"], [2, \"&cirfnint;\"], [0, \"&awint;\"], [0, \"&rppolint;\"], [0, \"&scpolint;\"], [0, \"&npolint;\"], [0, \"&pointint;\"], [0, \"&quatint;\"], [0, \"&intlarhk;\"], [10, \"&pluscir;\"], [0, \"&plusacir;\"], [0, \"&simplus;\"], [0, \"&plusdu;\"], [0, \"&plussim;\"], [0, \"&plustwo;\"], [1, \"&mcomma;\"], [0, \"&minusdu;\"], [2, \"&loplus;\"], [0, \"&roplus;\"], [0, \"&Cross;\"], [0, \"&timesd;\"], [0, \"&timesbar;\"], [1, \"&smashp;\"], [0, \"&lotimes;\"], [0, \"&rotimes;\"], [0, \"&otimesas;\"], [0, \"&Otimes;\"], [0, \"&odiv;\"], [0, \"&triplus;\"], [0, \"&triminus;\"], [0, \"&tritime;\"], [0, \"&intprod;\"], [2, \"&amalg;\"], [0, \"&capdot;\"], [1, \"&ncup;\"], [0, \"&ncap;\"], [0, \"&capand;\"], [0, \"&cupor;\"], [0, \"&cupcap;\"], [0, \"&capcup;\"], [0, \"&cupbrcap;\"], [0, \"&capbrcup;\"], [0, \"&cupcup;\"], [0, \"&capcap;\"], [0, \"&ccups;\"], [0, \"&ccaps;\"], [2, \"&ccupssm;\"], [2, \"&And;\"], [0, \"&Or;\"], [0, \"&andand;\"], [0, \"&oror;\"], [0, \"&orslope;\"], [0, \"&andslope;\"], [1, \"&andv;\"], [0, \"&orv;\"], [0, \"&andd;\"], [0, \"&ord;\"], [1, \"&wedbar;\"], [6, \"&sdote;\"], [3, \"&simdot;\"], [2, { v: \"&congdot;\", n: 824, o: \"&ncongdot;\" }], [0, \"&easter;\"], [0, \"&apacir;\"], [0, { v: \"&apE;\", n: 824, o: \"&napE;\" }], [0, \"&eplus;\"], [0, \"&pluse;\"], [0, \"&Esim;\"], [0, \"&Colone;\"], [0, \"&Equal;\"], [1, \"&ddotseq;\"], [0, \"&equivDD;\"], [0, \"&ltcir;\"], [0, \"&gtcir;\"], [0, \"&ltquest;\"], [0, \"&gtquest;\"], [0, { v: \"&leqslant;\", n: 824, o: \"&nleqslant;\" }], [0, { v: \"&geqslant;\", n: 824, o: \"&ngeqslant;\" }], [0, \"&lesdot;\"], [0, \"&gesdot;\"], [0, \"&lesdoto;\"], [0, \"&gesdoto;\"], [0, \"&lesdotor;\"], [0, \"&gesdotol;\"], [0, \"&lap;\"], [0, \"&gap;\"], [0, \"&lne;\"], [0, \"&gne;\"], [0, \"&lnap;\"], [0, \"&gnap;\"], [0, \"&lEg;\"], [0, \"&gEl;\"], [0, \"&lsime;\"], [0, \"&gsime;\"], [0, \"&lsimg;\"], [0, \"&gsiml;\"], [0, \"&lgE;\"], [0, \"&glE;\"], [0, \"&lesges;\"], [0, \"&gesles;\"], [0, \"&els;\"], [0, \"&egs;\"], [0, \"&elsdot;\"], [0, \"&egsdot;\"], [0, \"&el;\"], [0, \"&eg;\"], [2, \"&siml;\"], [0, \"&simg;\"], [0, \"&simlE;\"], [0, \"&simgE;\"], [0, { v: \"&LessLess;\", n: 824, o: \"&NotNestedLessLess;\" }], [0, { v: \"&GreaterGreater;\", n: 824, o: \"&NotNestedGreaterGreater;\" }], [1, \"&glj;\"], [0, \"&gla;\"], [0, \"&ltcc;\"], [0, \"&gtcc;\"], [0, \"&lescc;\"], [0, \"&gescc;\"], [0, \"&smt;\"], [0, \"&lat;\"], [0, { v: \"&smte;\", n: 65024, o: \"&smtes;\" }], [0, { v: \"&late;\", n: 65024, o: \"&lates;\" }], [0, \"&bumpE;\"], [0, { v: \"&PrecedesEqual;\", n: 824, o: \"&NotPrecedesEqual;\" }], [0, { v: \"&sce;\", n: 824, o: \"&NotSucceedsEqual;\" }], [2, \"&prE;\"], [0, \"&scE;\"], [0, \"&precneqq;\"], [0, \"&scnE;\"], [0, \"&prap;\"], [0, \"&scap;\"], [0, \"&precnapprox;\"], [0, \"&scnap;\"], [0, \"&Pr;\"], [0, \"&Sc;\"], [0, \"&subdot;\"], [0, \"&supdot;\"], [0, \"&subplus;\"], [0, \"&supplus;\"], [0, \"&submult;\"], [0, \"&supmult;\"], [0, \"&subedot;\"], [0, \"&supedot;\"], [0, { v: \"&subE;\", n: 824, o: \"&nsubE;\" }], [0, { v: \"&supE;\", n: 824, o: \"&nsupE;\" }], [0, \"&subsim;\"], [0, \"&supsim;\"], [2, { v: \"&subnE;\", n: 65024, o: \"&varsubsetneqq;\" }], [0, { v: \"&supnE;\", n: 65024, o: \"&varsupsetneqq;\" }], [2, \"&csub;\"], [0, \"&csup;\"], [0, \"&csube;\"], [0, \"&csupe;\"], [0, \"&subsup;\"], [0, \"&supsub;\"], [0, \"&subsub;\"], [0, \"&supsup;\"], [0, \"&suphsub;\"], [0, \"&supdsub;\"], [0, \"&forkv;\"], [0, \"&topfork;\"], [0, \"&mlcp;\"], [8, \"&Dashv;\"], [1, \"&Vdashl;\"], [0, \"&Barv;\"], [0, \"&vBar;\"], [0, \"&vBarv;\"], [1, \"&Vbar;\"], [0, \"&Not;\"], [0, \"&bNot;\"], [0, \"&rnmid;\"], [0, \"&cirmid;\"], [0, \"&midcir;\"], [0, \"&topcir;\"], [0, \"&nhpar;\"], [0, \"&parsim;\"], [9, { v: \"&parsl;\", n: 8421, o: \"&nparsl;\" }], [44343, { n: new Map(/* #__PURE__ */ restoreDiff([[56476, \"&Ascr;\"], [1, \"&Cscr;\"], [0, \"&Dscr;\"], [2, \"&Gscr;\"], [2, \"&Jscr;\"], [0, \"&Kscr;\"], [2, \"&Nscr;\"], [0, \"&Oscr;\"], [0, \"&Pscr;\"], [0, \"&Qscr;\"], [1, \"&Sscr;\"], [0, \"&Tscr;\"], [0, \"&Uscr;\"], [0, \"&Vscr;\"], [0, \"&Wscr;\"], [0, \"&Xscr;\"], [0, \"&Yscr;\"], [0, \"&Zscr;\"], [0, \"&ascr;\"], [0, \"&bscr;\"], [0, \"&cscr;\"], [0, \"&dscr;\"], [1, \"&fscr;\"], [1, \"&hscr;\"], [0, \"&iscr;\"], [0, \"&jscr;\"], [0, \"&kscr;\"], [0, \"&lscr;\"], [0, \"&mscr;\"], [0, \"&nscr;\"], [1, \"&pscr;\"], [0, \"&qscr;\"], [0, \"&rscr;\"], [0, \"&sscr;\"], [0, \"&tscr;\"], [0, \"&uscr;\"], [0, \"&vscr;\"], [0, \"&wscr;\"], [0, \"&xscr;\"], [0, \"&yscr;\"], [0, \"&zscr;\"], [52, \"&Afr;\"], [0, \"&Bfr;\"], [1, \"&Dfr;\"], [0, \"&Efr;\"], [0, \"&Ffr;\"], [0, \"&Gfr;\"], [2, \"&Jfr;\"], [0, \"&Kfr;\"], [0, \"&Lfr;\"], [0, \"&Mfr;\"], [0, \"&Nfr;\"], [0, \"&Ofr;\"], [0, \"&Pfr;\"], [0, \"&Qfr;\"], [1, \"&Sfr;\"], [0, \"&Tfr;\"], [0, \"&Ufr;\"], [0, \"&Vfr;\"], [0, \"&Wfr;\"], [0, \"&Xfr;\"], [0, \"&Yfr;\"], [1, \"&afr;\"], [0, \"&bfr;\"], [0, \"&cfr;\"], [0, \"&dfr;\"], [0, \"&efr;\"], [0, \"&ffr;\"], [0, \"&gfr;\"], [0, \"&hfr;\"], [0, \"&ifr;\"], [0, \"&jfr;\"], [0, \"&kfr;\"], [0, \"&lfr;\"], [0, \"&mfr;\"], [0, \"&nfr;\"], [0, \"&ofr;\"], [0, \"&pfr;\"], [0, \"&qfr;\"], [0, \"&rfr;\"], [0, \"&sfr;\"], [0, \"&tfr;\"], [0, \"&ufr;\"], [0, \"&vfr;\"], [0, \"&wfr;\"], [0, \"&xfr;\"], [0, \"&yfr;\"], [0, \"&zfr;\"], [0, \"&Aopf;\"], [0, \"&Bopf;\"], [1, \"&Dopf;\"], [0, \"&Eopf;\"], [0, \"&Fopf;\"], [0, \"&Gopf;\"], [1, \"&Iopf;\"], [0, \"&Jopf;\"], [0, \"&Kopf;\"], [0, \"&Lopf;\"], [0, \"&Mopf;\"], [1, \"&Oopf;\"], [3, \"&Sopf;\"], [0, \"&Topf;\"], [0, \"&Uopf;\"], [0, \"&Vopf;\"], [0, \"&Wopf;\"], [0, \"&Xopf;\"], [0, \"&Yopf;\"], [1, \"&aopf;\"], [0, \"&bopf;\"], [0, \"&copf;\"], [0, \"&dopf;\"], [0, \"&eopf;\"], [0, \"&fopf;\"], [0, \"&gopf;\"], [0, \"&hopf;\"], [0, \"&iopf;\"], [0, \"&jopf;\"], [0, \"&kopf;\"], [0, \"&lopf;\"], [0, \"&mopf;\"], [0, \"&nopf;\"], [0, \"&oopf;\"], [0, \"&popf;\"], [0, \"&qopf;\"], [0, \"&ropf;\"], [0, \"&sopf;\"], [0, \"&topf;\"], [0, \"&uopf;\"], [0, \"&vopf;\"], [0, \"&wopf;\"], [0, \"&xopf;\"], [0, \"&yopf;\"], [0, \"&zopf;\"]])) }], [8906, \"&fflig;\"], [0, \"&filig;\"], [0, \"&fllig;\"], [0, \"&ffilig;\"], [0, \"&ffllig;\"]]));\n//# sourceMappingURL=encode-html.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/generated/encode-html.js?");

/***/ }),

/***/ "../node_modules/entities/lib/index.js":
/*!*********************************************!*\
  !*** ../node_modules/entities/lib/index.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\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 = __webpack_require__(/*! ./decode.js */ \"../node_modules/entities/lib/decode.js\");\nvar encode_js_1 = __webpack_require__(/*! ./encode.js */ \"../node_modules/entities/lib/encode.js\");\nvar escape_js_1 = __webpack_require__(/*! ./escape.js */ \"../node_modules/entities/lib/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 = __webpack_require__(/*! ./escape.js */ \"../node_modules/entities/lib/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 = __webpack_require__(/*! ./encode.js */ \"../node_modules/entities/lib/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 = __webpack_require__(/*! ./decode.js */ \"../node_modules/entities/lib/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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/entities/lib/index.js?");

/***/ }),

/***/ "../node_modules/htmlparser2/lib/Parser.js":
/*!*************************************************!*\
  !*** ../node_modules/htmlparser2/lib/Parser.js ***!
  \*************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\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(__webpack_require__(/*! ./Tokenizer.js */ \"../node_modules/htmlparser2/lib/Tokenizer.js\"));\nvar decode_js_1 = __webpack_require__(/*! entities/lib/decode.js */ \"../node_modules/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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/htmlparser2/lib/Parser.js?");

/***/ }),

/***/ "../node_modules/htmlparser2/lib/Tokenizer.js":
/*!****************************************************!*\
  !*** ../node_modules/htmlparser2/lib/Tokenizer.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.QuoteType = void 0;\nvar decode_js_1 = __webpack_require__(/*! entities/lib/decode.js */ \"../node_modules/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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/htmlparser2/lib/Tokenizer.js?");

/***/ }),

/***/ "../node_modules/htmlparser2/lib/index.js":
/*!************************************************!*\
  !*** ../node_modules/htmlparser2/lib/index.js ***!
  \************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\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 = __webpack_require__(/*! ./Parser.js */ \"../node_modules/htmlparser2/lib/Parser.js\");\nvar Parser_js_2 = __webpack_require__(/*! ./Parser.js */ \"../node_modules/htmlparser2/lib/Parser.js\");\nObject.defineProperty(exports, \"Parser\", ({ enumerable: true, get: function () { return Parser_js_2.Parser; } }));\nvar domhandler_1 = __webpack_require__(/*! domhandler */ \"../node_modules/domhandler/lib/index.js\");\nvar domhandler_2 = __webpack_require__(/*! domhandler */ \"../node_modules/domhandler/lib/index.js\");\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 = __webpack_require__(/*! ./Tokenizer.js */ \"../node_modules/htmlparser2/lib/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(__webpack_require__(/*! domelementtype */ \"../node_modules/domelementtype/lib/index.js\"));\nvar domutils_1 = __webpack_require__(/*! domutils */ \"../node_modules/domutils/lib/index.js\");\nvar domutils_2 = __webpack_require__(/*! domutils */ \"../node_modules/domutils/lib/index.js\");\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(__webpack_require__(/*! domutils */ \"../node_modules/domutils/lib/index.js\"));\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/htmlparser2/lib/index.js?");

/***/ }),

/***/ "../node_modules/is-plain-object/dist/is-plain-object.js":
/*!***************************************************************!*\
  !*** ../node_modules/is-plain-object/dist/is-plain-object.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\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\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/is-plain-object/dist/is-plain-object.js?");

/***/ }),

/***/ "../node_modules/parse-srcset/src/parse-srcset.js":
/*!********************************************************!*\
  !*** ../node_modules/parse-srcset/src/parse-srcset.js ***!
  \********************************************************/
/***/ (function(module, exports) {

eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\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 (true) {\n\t\t// AMD. Register as an anonymous module.\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/parse-srcset/src/parse-srcset.js?");

/***/ }),

/***/ "../node_modules/picocolors/picocolors.browser.js":
/*!********************************************************!*\
  !*** ../node_modules/picocolors/picocolors.browser.js ***!
  \********************************************************/
/***/ ((module) => {

eval("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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/picocolors/picocolors.browser.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/at-rule.js":
/*!**********************************************!*\
  !*** ../node_modules/postcss/lib/at-rule.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet Container = __webpack_require__(/*! ./container */ \"../node_modules/postcss/lib/container.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/at-rule.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/comment.js":
/*!**********************************************!*\
  !*** ../node_modules/postcss/lib/comment.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet Node = __webpack_require__(/*! ./node */ \"../node_modules/postcss/lib/node.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/comment.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/container.js":
/*!************************************************!*\
  !*** ../node_modules/postcss/lib/container.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet { isClean, my } = __webpack_require__(/*! ./symbols */ \"../node_modules/postcss/lib/symbols.js\")\nlet Declaration = __webpack_require__(/*! ./declaration */ \"../node_modules/postcss/lib/declaration.js\")\nlet Comment = __webpack_require__(/*! ./comment */ \"../node_modules/postcss/lib/comment.js\")\nlet Node = __webpack_require__(/*! ./node */ \"../node_modules/postcss/lib/node.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/container.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/css-syntax-error.js":
/*!*******************************************************!*\
  !*** ../node_modules/postcss/lib/css-syntax-error.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet pico = __webpack_require__(/*! picocolors */ \"../node_modules/picocolors/picocolors.browser.js\")\n\nlet terminalHighlight = __webpack_require__(/*! ./terminal-highlight */ \"?8883\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/css-syntax-error.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/declaration.js":
/*!**************************************************!*\
  !*** ../node_modules/postcss/lib/declaration.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet Node = __webpack_require__(/*! ./node */ \"../node_modules/postcss/lib/node.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/declaration.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/document.js":
/*!***********************************************!*\
  !*** ../node_modules/postcss/lib/document.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet Container = __webpack_require__(/*! ./container */ \"../node_modules/postcss/lib/container.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/document.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/fromJSON.js":
/*!***********************************************!*\
  !*** ../node_modules/postcss/lib/fromJSON.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet Declaration = __webpack_require__(/*! ./declaration */ \"../node_modules/postcss/lib/declaration.js\")\nlet PreviousMap = __webpack_require__(/*! ./previous-map */ \"../node_modules/postcss/lib/previous-map.js\")\nlet Comment = __webpack_require__(/*! ./comment */ \"../node_modules/postcss/lib/comment.js\")\nlet AtRule = __webpack_require__(/*! ./at-rule */ \"../node_modules/postcss/lib/at-rule.js\")\nlet Input = __webpack_require__(/*! ./input */ \"../node_modules/postcss/lib/input.js\")\nlet Root = __webpack_require__(/*! ./root */ \"../node_modules/postcss/lib/root.js\")\nlet Rule = __webpack_require__(/*! ./rule */ \"../node_modules/postcss/lib/rule.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/fromJSON.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/input.js":
/*!********************************************!*\
  !*** ../node_modules/postcss/lib/input.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet { SourceMapConsumer, SourceMapGenerator } = __webpack_require__(/*! source-map-js */ \"?2abd\")\nlet { fileURLToPath, pathToFileURL } = __webpack_require__(/*! url */ \"?0836\")\nlet { isAbsolute, resolve } = __webpack_require__(/*! path */ \"?1b46\")\nlet { nanoid } = __webpack_require__(/*! nanoid/non-secure */ \"../node_modules/nanoid/non-secure/index.cjs\")\n\nlet terminalHighlight = __webpack_require__(/*! ./terminal-highlight */ \"?8883\")\nlet CssSyntaxError = __webpack_require__(/*! ./css-syntax-error */ \"../node_modules/postcss/lib/css-syntax-error.js\")\nlet PreviousMap = __webpack_require__(/*! ./previous-map */ \"../node_modules/postcss/lib/previous-map.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/input.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/lazy-result.js":
/*!**************************************************!*\
  !*** ../node_modules/postcss/lib/lazy-result.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet { isClean, my } = __webpack_require__(/*! ./symbols */ \"../node_modules/postcss/lib/symbols.js\")\nlet MapGenerator = __webpack_require__(/*! ./map-generator */ \"../node_modules/postcss/lib/map-generator.js\")\nlet stringify = __webpack_require__(/*! ./stringify */ \"../node_modules/postcss/lib/stringify.js\")\nlet Container = __webpack_require__(/*! ./container */ \"../node_modules/postcss/lib/container.js\")\nlet Document = __webpack_require__(/*! ./document */ \"../node_modules/postcss/lib/document.js\")\nlet warnOnce = __webpack_require__(/*! ./warn-once */ \"../node_modules/postcss/lib/warn-once.js\")\nlet Result = __webpack_require__(/*! ./result */ \"../node_modules/postcss/lib/result.js\")\nlet parse = __webpack_require__(/*! ./parse */ \"../node_modules/postcss/lib/parse.js\")\nlet Root = __webpack_require__(/*! ./root */ \"../node_modules/postcss/lib/root.js\")\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 (true) {\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 (true) {\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/lazy-result.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/list.js":
/*!*******************************************!*\
  !*** ../node_modules/postcss/lib/list.js ***!
  \*******************************************/
/***/ ((module) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/list.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/map-generator.js":
/*!****************************************************!*\
  !*** ../node_modules/postcss/lib/map-generator.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet { SourceMapConsumer, SourceMapGenerator } = __webpack_require__(/*! source-map-js */ \"?2abd\")\nlet { dirname, relative, resolve, sep } = __webpack_require__(/*! path */ \"?1b46\")\nlet { pathToFileURL } = __webpack_require__(/*! url */ \"?0836\")\n\nlet Input = __webpack_require__(/*! ./input */ \"../node_modules/postcss/lib/input.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/map-generator.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/no-work-result.js":
/*!*****************************************************!*\
  !*** ../node_modules/postcss/lib/no-work-result.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet MapGenerator = __webpack_require__(/*! ./map-generator */ \"../node_modules/postcss/lib/map-generator.js\")\nlet stringify = __webpack_require__(/*! ./stringify */ \"../node_modules/postcss/lib/stringify.js\")\nlet warnOnce = __webpack_require__(/*! ./warn-once */ \"../node_modules/postcss/lib/warn-once.js\")\nlet parse = __webpack_require__(/*! ./parse */ \"../node_modules/postcss/lib/parse.js\")\nconst Result = __webpack_require__(/*! ./result */ \"../node_modules/postcss/lib/result.js\")\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 (true) {\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/no-work-result.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/node.js":
/*!*******************************************!*\
  !*** ../node_modules/postcss/lib/node.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet { isClean, my } = __webpack_require__(/*! ./symbols */ \"../node_modules/postcss/lib/symbols.js\")\nlet CssSyntaxError = __webpack_require__(/*! ./css-syntax-error */ \"../node_modules/postcss/lib/css-syntax-error.js\")\nlet Stringifier = __webpack_require__(/*! ./stringifier */ \"../node_modules/postcss/lib/stringifier.js\")\nlet stringify = __webpack_require__(/*! ./stringify */ \"../node_modules/postcss/lib/stringify.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/node.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/parse.js":
/*!********************************************!*\
  !*** ../node_modules/postcss/lib/parse.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet Container = __webpack_require__(/*! ./container */ \"../node_modules/postcss/lib/container.js\")\nlet Parser = __webpack_require__(/*! ./parser */ \"../node_modules/postcss/lib/parser.js\")\nlet Input = __webpack_require__(/*! ./input */ \"../node_modules/postcss/lib/input.js\")\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 (true) {\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/parse.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/parser.js":
/*!*********************************************!*\
  !*** ../node_modules/postcss/lib/parser.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet Declaration = __webpack_require__(/*! ./declaration */ \"../node_modules/postcss/lib/declaration.js\")\nlet tokenizer = __webpack_require__(/*! ./tokenize */ \"../node_modules/postcss/lib/tokenize.js\")\nlet Comment = __webpack_require__(/*! ./comment */ \"../node_modules/postcss/lib/comment.js\")\nlet AtRule = __webpack_require__(/*! ./at-rule */ \"../node_modules/postcss/lib/at-rule.js\")\nlet Root = __webpack_require__(/*! ./root */ \"../node_modules/postcss/lib/root.js\")\nlet Rule = __webpack_require__(/*! ./rule */ \"../node_modules/postcss/lib/rule.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/parser.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/postcss.js":
/*!**********************************************!*\
  !*** ../node_modules/postcss/lib/postcss.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var process = __webpack_require__(/*! process/browser */ \"../node_modules/process/browser.js\");\n\n\nlet CssSyntaxError = __webpack_require__(/*! ./css-syntax-error */ \"../node_modules/postcss/lib/css-syntax-error.js\")\nlet Declaration = __webpack_require__(/*! ./declaration */ \"../node_modules/postcss/lib/declaration.js\")\nlet LazyResult = __webpack_require__(/*! ./lazy-result */ \"../node_modules/postcss/lib/lazy-result.js\")\nlet Container = __webpack_require__(/*! ./container */ \"../node_modules/postcss/lib/container.js\")\nlet Processor = __webpack_require__(/*! ./processor */ \"../node_modules/postcss/lib/processor.js\")\nlet stringify = __webpack_require__(/*! ./stringify */ \"../node_modules/postcss/lib/stringify.js\")\nlet fromJSON = __webpack_require__(/*! ./fromJSON */ \"../node_modules/postcss/lib/fromJSON.js\")\nlet Document = __webpack_require__(/*! ./document */ \"../node_modules/postcss/lib/document.js\")\nlet Warning = __webpack_require__(/*! ./warning */ \"../node_modules/postcss/lib/warning.js\")\nlet Comment = __webpack_require__(/*! ./comment */ \"../node_modules/postcss/lib/comment.js\")\nlet AtRule = __webpack_require__(/*! ./at-rule */ \"../node_modules/postcss/lib/at-rule.js\")\nlet Result = __webpack_require__(/*! ./result.js */ \"../node_modules/postcss/lib/result.js\")\nlet Input = __webpack_require__(/*! ./input */ \"../node_modules/postcss/lib/input.js\")\nlet parse = __webpack_require__(/*! ./parse */ \"../node_modules/postcss/lib/parse.js\")\nlet list = __webpack_require__(/*! ./list */ \"../node_modules/postcss/lib/list.js\")\nlet Rule = __webpack_require__(/*! ./rule */ \"../node_modules/postcss/lib/rule.js\")\nlet Root = __webpack_require__(/*! ./root */ \"../node_modules/postcss/lib/root.js\")\nlet Node = __webpack_require__(/*! ./node */ \"../node_modules/postcss/lib/node.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/postcss.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/previous-map.js":
/*!***************************************************!*\
  !*** ../node_modules/postcss/lib/previous-map.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet { SourceMapConsumer, SourceMapGenerator } = __webpack_require__(/*! source-map-js */ \"?2abd\")\nlet { existsSync, readFileSync } = __webpack_require__(/*! fs */ \"?5fa1\")\nlet { dirname, join } = __webpack_require__(/*! path */ \"?1b46\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/previous-map.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/processor.js":
/*!************************************************!*\
  !*** ../node_modules/postcss/lib/processor.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet NoWorkResult = __webpack_require__(/*! ./no-work-result */ \"../node_modules/postcss/lib/no-work-result.js\")\nlet LazyResult = __webpack_require__(/*! ./lazy-result */ \"../node_modules/postcss/lib/lazy-result.js\")\nlet Document = __webpack_require__(/*! ./document */ \"../node_modules/postcss/lib/document.js\")\nlet Root = __webpack_require__(/*! ./root */ \"../node_modules/postcss/lib/root.js\")\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 (true) {\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/processor.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/result.js":
/*!*********************************************!*\
  !*** ../node_modules/postcss/lib/result.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet Warning = __webpack_require__(/*! ./warning */ \"../node_modules/postcss/lib/warning.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/result.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/root.js":
/*!*******************************************!*\
  !*** ../node_modules/postcss/lib/root.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet Container = __webpack_require__(/*! ./container */ \"../node_modules/postcss/lib/container.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/root.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/rule.js":
/*!*******************************************!*\
  !*** ../node_modules/postcss/lib/rule.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet Container = __webpack_require__(/*! ./container */ \"../node_modules/postcss/lib/container.js\")\nlet list = __webpack_require__(/*! ./list */ \"../node_modules/postcss/lib/list.js\")\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/rule.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/stringifier.js":
/*!**************************************************!*\
  !*** ../node_modules/postcss/lib/stringifier.js ***!
  \**************************************************/
/***/ ((module) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/stringifier.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/stringify.js":
/*!************************************************!*\
  !*** ../node_modules/postcss/lib/stringify.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nlet Stringifier = __webpack_require__(/*! ./stringifier */ \"../node_modules/postcss/lib/stringifier.js\")\n\nfunction stringify(node, builder) {\n  let str = new Stringifier(builder)\n  str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/stringify.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/symbols.js":
/*!**********************************************!*\
  !*** ../node_modules/postcss/lib/symbols.js ***!
  \**********************************************/
/***/ ((module) => {

"use strict";
eval("\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/symbols.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/tokenize.js":
/*!***********************************************!*\
  !*** ../node_modules/postcss/lib/tokenize.js ***!
  \***********************************************/
/***/ ((module) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/tokenize.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/warn-once.js":
/*!************************************************!*\
  !*** ../node_modules/postcss/lib/warn-once.js ***!
  \************************************************/
/***/ ((module) => {

"use strict";
eval("/* eslint-disable no-console */\n\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/warn-once.js?");

/***/ }),

/***/ "../node_modules/postcss/lib/warning.js":
/*!**********************************************!*\
  !*** ../node_modules/postcss/lib/warning.js ***!
  \**********************************************/
/***/ ((module) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/postcss/lib/warning.js?");

/***/ }),

/***/ "../node_modules/process/browser.js":
/*!******************************************!*\
  !*** ../node_modules/process/browser.js ***!
  \******************************************/
/***/ ((module) => {

eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/process/browser.js?");

/***/ }),

/***/ "../node_modules/sanitize-html/index.js":
/*!**********************************************!*\
  !*** ../node_modules/sanitize-html/index.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("const htmlparser = __webpack_require__(/*! htmlparser2 */ \"../node_modules/htmlparser2/lib/index.js\");\nconst escapeStringRegexp = __webpack_require__(/*! escape-string-regexp */ \"../node_modules/sanitize-html/node_modules/escape-string-regexp/index.js\");\nconst { isPlainObject } = __webpack_require__(/*! is-plain-object */ \"../node_modules/is-plain-object/dist/is-plain-object.js\");\nconst deepmerge = __webpack_require__(/*! deepmerge */ \"../node_modules/deepmerge/dist/cjs.js\");\nconst parseSrcset = __webpack_require__(/*! parse-srcset */ \"../node_modules/parse-srcset/src/parse-srcset.js\");\nconst { parse: postcssParse } = __webpack_require__(/*! postcss */ \"../node_modules/postcss/lib/postcss.js\");\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, check if the attribute is in the allowedEmptyAttributes array.\n          // If it is not in the allowedEmptyAttributes array, and it 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.allowedEmptyAttributes.includes(a)) &&\n            (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 + '}', { map: false });\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            } else if (options.allowedEmptyAttributes.includes(a)) {\n              result += '=\"\"';\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, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n      if (quote) {\n        s = s.replace(/\"/g, '&quot;');\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, '&amp;') // Match ampersands not part of existing HTML entity\n      .replace(/</g, '&lt;')\n      .replace(/>/g, '&gt;');\n    if (quote) {\n      s = s.replace(/\"/g, '&quot;');\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  allowedEmptyAttributes: [\n    'alt'\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/sanitize-html/index.js?");

/***/ }),

/***/ "../node_modules/sanitize-html/node_modules/escape-string-regexp/index.js":
/*!********************************************************************************!*\
  !*** ../node_modules/sanitize-html/node_modules/escape-string-regexp/index.js ***!
  \********************************************************************************/
/***/ ((module) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/sanitize-html/node_modules/escape-string-regexp/index.js?");

/***/ }),

/***/ "../node_modules/nanoid/non-secure/index.cjs":
/*!***************************************************!*\
  !*** ../node_modules/nanoid/non-secure/index.cjs ***!
  \***************************************************/
/***/ ((module) => {

eval("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\n\n//# sourceURL=webpack://_JUPYTERLAB.CORE_OUTPUT/../node_modules/nanoid/non-secure/index.cjs?");

/***/ })

}]);