notjs-react 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js","../../node_modules/state-local/lib/es/state-local.js","../../node_modules/@monaco-editor/loader/lib/es/config/index.js","../../node_modules/@monaco-editor/loader/lib/es/utils/curry.js","../../node_modules/@monaco-editor/loader/lib/es/utils/isObject.js","../../node_modules/@monaco-editor/loader/lib/es/validators/index.js","../../node_modules/@monaco-editor/loader/lib/es/utils/compose.js","../../node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js","../../node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js","../../node_modules/@monaco-editor/loader/lib/es/loader/index.js","../../node_modules/@monaco-editor/react/dist/index.mjs","../../node_modules/@xterm/xterm/lib/xterm.js","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../node_modules/classnames/index.js","../../node_modules/react-tooltip/dist/react-tooltip.min.mjs","../../node_modules/lucide-react/dist/esm/shared/src/utils.js","../../node_modules/lucide-react/dist/esm/defaultAttributes.js","../../node_modules/lucide-react/dist/esm/Icon.js","../../node_modules/lucide-react/dist/esm/createLucideIcon.js","../../node_modules/lucide-react/dist/esm/icons/check.js","../../node_modules/lucide-react/dist/esm/icons/circle-alert.js","../../node_modules/lucide-react/dist/esm/icons/copy.js","../../node_modules/lucide-react/dist/esm/icons/moon.js","../../node_modules/lucide-react/dist/esm/icons/rotate-ccw.js","../../node_modules/lucide-react/dist/esm/icons/sun.js","../src/assets/notjslogo.png","../src/NotJS.tsx"],"sourcesContent":["function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = _objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey, _unsupportedIterableToArray as unsupportedIterableToArray };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\n\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\n\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\n\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\n\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\n\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n\n return [getState, setState];\n}\n\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\n\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\n\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\n\nvar index = {\n create: create\n};\n\nexport default index;\n","var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs'\n }\n};\n\nexport { config as default };\n","function curry(fn) {\n return function curried() {\n var _this = this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nexport { curry as default };\n","function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nexport { isObject as default };\n","import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n return config;\n}\n\n/**\n * logs deprecation message\n */\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\n\nexport { validators as default, errorHandler, errorMessages };\n","var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\n\nexport { compose as default };\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\n\nexport { merge as default };\n","// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\n\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\n\nexport { CANCELATION_MESSAGE, makeCancelable as default };\n","import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\nvar _excluded = [\"monaco\"];\n\n/** the local state of the module */\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n }),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, _excluded);\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n return makeCancelable(wrapperPromise);\n}\n\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n loaderScript.onload = function () {\n return configureLoader();\n };\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n\n/**\n * configures the monaco loader\n */\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n require.config(state.config);\n require(['vs/editor/editor.main'], function (loaded) {\n var monaco = loaded.m /* for 0.53 & 0.54 */ || loaded /* for other versions */;\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n\n/**\n * store monaco instance in local state\n */\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\n\nexport { loader as default };\n","import _t from\"@monaco-editor/loader\";import{memo as Te}from\"react\";import ke,{useState as re,useRef as S,useCallback as oe,useEffect as ne}from\"react\";import Se from\"@monaco-editor/loader\";import{memo as ye}from\"react\";import K from\"react\";var le={wrapper:{display:\"flex\",position:\"relative\",textAlign:\"initial\"},fullWidth:{width:\"100%\"},hide:{display:\"none\"}},v=le;import me from\"react\";var ae={container:{display:\"flex\",height:\"100%\",width:\"100%\",justifyContent:\"center\",alignItems:\"center\"}},Y=ae;function Me({children:e}){return me.createElement(\"div\",{style:Y.container},e)}var Z=Me;var $=Z;function Ee({width:e,height:r,isEditorReady:n,loading:t,_ref:a,className:m,wrapperProps:E}){return K.createElement(\"section\",{style:{...v.wrapper,width:e,height:r},...E},!n&&K.createElement($,null,t),K.createElement(\"div\",{ref:a,style:{...v.fullWidth,...!n&&v.hide},className:m}))}var ee=Ee;var H=ye(ee);import{useEffect as xe}from\"react\";function Ce(e){xe(e,[])}var k=Ce;import{useEffect as ge,useRef as Re}from\"react\";function he(e,r,n=!0){let t=Re(!0);ge(t.current||!n?()=>{t.current=!1}:e,r)}var l=he;function D(){}function h(e,r,n,t){return De(e,t)||be(e,r,n,t)}function De(e,r){return e.editor.getModel(te(e,r))}function be(e,r,n,t){return e.editor.createModel(r,n,t?te(e,t):void 0)}function te(e,r){return e.Uri.parse(r)}function Oe({original:e,modified:r,language:n,originalLanguage:t,modifiedLanguage:a,originalModelPath:m,modifiedModelPath:E,keepCurrentOriginalModel:g=!1,keepCurrentModifiedModel:N=!1,theme:x=\"light\",loading:P=\"Loading...\",options:y={},height:V=\"100%\",width:z=\"100%\",className:F,wrapperProps:j={},beforeMount:A=D,onMount:q=D}){let[M,O]=re(!1),[T,s]=re(!0),u=S(null),c=S(null),w=S(null),d=S(q),o=S(A),b=S(!1);k(()=>{let i=Se.init();return i.then(f=>(c.current=f)&&s(!1)).catch(f=>f?.type!==\"cancelation\"&&console.error(\"Monaco initialization: error:\",f)),()=>u.current?I():i.cancel()}),l(()=>{if(u.current&&c.current){let i=u.current.getOriginalEditor(),f=h(c.current,e||\"\",t||n||\"text\",m||\"\");f!==i.getModel()&&i.setModel(f)}},[m],M),l(()=>{if(u.current&&c.current){let i=u.current.getModifiedEditor(),f=h(c.current,r||\"\",a||n||\"text\",E||\"\");f!==i.getModel()&&i.setModel(f)}},[E],M),l(()=>{let i=u.current.getModifiedEditor();i.getOption(c.current.editor.EditorOption.readOnly)?i.setValue(r||\"\"):r!==i.getValue()&&(i.executeEdits(\"\",[{range:i.getModel().getFullModelRange(),text:r||\"\",forceMoveMarkers:!0}]),i.pushUndoStop())},[r],M),l(()=>{u.current?.getModel()?.original.setValue(e||\"\")},[e],M),l(()=>{let{original:i,modified:f}=u.current.getModel();c.current.editor.setModelLanguage(i,t||n||\"text\"),c.current.editor.setModelLanguage(f,a||n||\"text\")},[n,t,a],M),l(()=>{c.current?.editor.setTheme(x)},[x],M),l(()=>{u.current?.updateOptions(y)},[y],M);let L=oe(()=>{if(!c.current)return;o.current(c.current);let i=h(c.current,e||\"\",t||n||\"text\",m||\"\"),f=h(c.current,r||\"\",a||n||\"text\",E||\"\");u.current?.setModel({original:i,modified:f})},[n,r,a,e,t,m,E]),U=oe(()=>{!b.current&&w.current&&(u.current=c.current.editor.createDiffEditor(w.current,{automaticLayout:!0,...y}),L(),c.current?.editor.setTheme(x),O(!0),b.current=!0)},[y,x,L]);ne(()=>{M&&d.current(u.current,c.current)},[M]),ne(()=>{!T&&!M&&U()},[T,M,U]);function I(){let i=u.current?.getModel();g||i?.original?.dispose(),N||i?.modified?.dispose(),u.current?.dispose()}return ke.createElement(H,{width:z,height:V,isEditorReady:M,loading:P,_ref:w,className:F,wrapperProps:j})}var ie=Oe;var we=Te(ie);import{useState as Ie}from\"react\";import ce from\"@monaco-editor/loader\";function Pe(){let[e,r]=Ie(ce.__getMonacoInstance());return k(()=>{let n;return e||(n=ce.init(),n.then(t=>{r(t)})),()=>n?.cancel()}),e}var Le=Pe;import{memo as ze}from\"react\";import We,{useState as ue,useEffect as W,useRef as C,useCallback as _e}from\"react\";import Ne from\"@monaco-editor/loader\";import{useEffect as Ue,useRef as ve}from\"react\";function He(e){let r=ve();return Ue(()=>{r.current=e},[e]),r.current}var se=He;var _=new Map;function Ve({defaultValue:e,defaultLanguage:r,defaultPath:n,value:t,language:a,path:m,theme:E=\"light\",line:g,loading:N=\"Loading...\",options:x={},overrideServices:P={},saveViewState:y=!0,keepCurrentModel:V=!1,width:z=\"100%\",height:F=\"100%\",className:j,wrapperProps:A={},beforeMount:q=D,onMount:M=D,onChange:O,onValidate:T=D}){let[s,u]=ue(!1),[c,w]=ue(!0),d=C(null),o=C(null),b=C(null),L=C(M),U=C(q),I=C(),i=C(t),f=se(m),Q=C(!1),B=C(!1);k(()=>{let p=Ne.init();return p.then(R=>(d.current=R)&&w(!1)).catch(R=>R?.type!==\"cancelation\"&&console.error(\"Monaco initialization: error:\",R)),()=>o.current?pe():p.cancel()}),l(()=>{let p=h(d.current,e||t||\"\",r||a||\"\",m||n||\"\");p!==o.current?.getModel()&&(y&&_.set(f,o.current?.saveViewState()),o.current?.setModel(p),y&&o.current?.restoreViewState(_.get(m)))},[m],s),l(()=>{o.current?.updateOptions(x)},[x],s),l(()=>{!o.current||t===void 0||(o.current.getOption(d.current.editor.EditorOption.readOnly)?o.current.setValue(t):t!==o.current.getValue()&&(B.current=!0,o.current.executeEdits(\"\",[{range:o.current.getModel().getFullModelRange(),text:t,forceMoveMarkers:!0}]),o.current.pushUndoStop(),B.current=!1))},[t],s),l(()=>{let p=o.current?.getModel();p&&a&&d.current?.editor.setModelLanguage(p,a)},[a],s),l(()=>{g!==void 0&&o.current?.revealLine(g)},[g],s),l(()=>{d.current?.editor.setTheme(E)},[E],s);let X=_e(()=>{if(!(!b.current||!d.current)&&!Q.current){U.current(d.current);let p=m||n,R=h(d.current,t||e||\"\",r||a||\"\",p||\"\");o.current=d.current?.editor.create(b.current,{model:R,automaticLayout:!0,...x},P),y&&o.current.restoreViewState(_.get(p)),d.current.editor.setTheme(E),g!==void 0&&o.current.revealLine(g),u(!0),Q.current=!0}},[e,r,n,t,a,m,x,P,y,E,g]);W(()=>{s&&L.current(o.current,d.current)},[s]),W(()=>{!c&&!s&&X()},[c,s,X]),i.current=t,W(()=>{s&&O&&(I.current?.dispose(),I.current=o.current?.onDidChangeModelContent(p=>{B.current||O(o.current.getValue(),p)}))},[s,O]),W(()=>{if(s){let p=d.current.editor.onDidChangeMarkers(R=>{let G=o.current.getModel()?.uri;if(G&&R.find(J=>J.path===G.path)){let J=d.current.editor.getModelMarkers({resource:G});T?.(J)}});return()=>{p?.dispose()}}return()=>{}},[s,T]);function pe(){I.current?.dispose(),V?y&&_.set(m,o.current.saveViewState()):o.current.getModel()?.dispose(),o.current.dispose()}return We.createElement(H,{width:z,height:F,isEditorReady:s,loading:N,_ref:b,className:j,wrapperProps:A})}var fe=Ve;var de=ze(fe);var Ft=de;export{we as DiffEditor,de as Editor,Ft as default,_t as loader,Le as useMonaco};\n//# sourceMappingURL=index.mjs.map","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var i=t();for(var s in i)(\"object\"==typeof exports?exports:e)[s]=i[s]}}(globalThis,(()=>(()=>{\"use strict\";var e={4567:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.AccessibilityManager=void 0;const n=i(9042),o=i(9924),a=i(844),h=i(4725),c=i(2585),l=i(3656);let d=t.AccessibilityManager=class extends a.Disposable{constructor(e,t,i,s){super(),this._terminal=e,this._coreBrowserService=i,this._renderService=s,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce=\"\",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement(\"div\"),this._accessibilityContainer.classList.add(\"xterm-accessibility\"),this._rowContainer=this._coreBrowserService.mainDocument.createElement(\"div\"),this._rowContainer.setAttribute(\"role\",\"list\"),this._rowContainer.classList.add(\"xterm-accessibility-tree\"),this._rowElements=[];for(let e=0;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);if(this._topBoundaryFocusListener=e=>this._handleBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._handleBoundaryFocus(e,1),this._rowElements[0].addEventListener(\"focus\",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement(\"div\"),this._liveRegion.classList.add(\"live-region\"),this._liveRegion.setAttribute(\"aria-live\",\"assertive\"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new o.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error(\"Cannot enable accessibility before Terminal.open\");this._terminal.element.insertAdjacentElement(\"afterbegin\",this._accessibilityContainer),this.register(this._terminal.onResize((e=>this._handleResize(e.rows)))),this.register(this._terminal.onRender((e=>this._refreshRows(e.start,e.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((e=>this._handleChar(e)))),this.register(this._terminal.onLineFeed((()=>this._handleChar(\"\\n\")))),this.register(this._terminal.onA11yTab((e=>this._handleTab(e)))),this.register(this._terminal.onKey((e=>this._handleKey(e.key)))),this.register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this.register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this.register((0,l.addDisposableDomListener)(document,\"selectionchange\",(()=>this._handleSelectionChange()))),this.register(this._coreBrowserService.onDprChange((()=>this._refreshRowsDimensions()))),this._refreshRows(),this.register((0,a.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(e){for(let t=0;t<e;t++)this._handleChar(\" \")}_handleChar(e){this._liveRegionLineCount<21&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,\"\\n\"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=n.tooMuchOutput)))}_clearLiveRegion(){this._liveRegion.textContent=\"\",this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){const i=this._terminal.buffer,s=i.lines.length.toString();for(let r=e;r<=t;r++){const e=i.lines.get(i.ydisp+r),t=[],n=e?.translateToString(!0,void 0,void 0,t)||\"\",o=(i.ydisp+r+1).toString(),a=this._rowElements[r];a&&(0===n.length?(a.innerText=\" \",this._rowColumns.set(a,[0,1])):(a.textContent=n,this._rowColumns.set(a,t)),a.setAttribute(\"aria-posinset\",o),a.setAttribute(\"aria-setsize\",s))}this._announceCharacters()}_announceCharacters(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce=\"\")}_handleBoundaryFocus(e,t){const i=e.target,s=this._rowElements[0===t?1:this._rowElements.length-2];if(i.getAttribute(\"aria-posinset\")===(0===t?\"1\":`${this._terminal.buffer.lines.length}`))return;if(e.relatedTarget!==s)return;let r,n;if(0===t?(r=i,n=this._rowElements.pop(),this._rowContainer.removeChild(n)):(r=this._rowElements.shift(),n=i,this._rowContainer.removeChild(r)),r.removeEventListener(\"focus\",this._topBoundaryFocusListener),n.removeEventListener(\"focus\",this._bottomBoundaryFocusListener),0===t){const e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement(\"afterbegin\",e)}else{const e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener(\"focus\",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===t?-1:1),this._rowElements[0===t?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(0===this._rowElements.length)return;const e=document.getSelection();if(!e)return;if(e.isCollapsed)return void(this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection());if(!e.anchorNode||!e.focusNode)return void console.error(\"anchorNode and/or focusNode are null\");let t={node:e.anchorNode,offset:e.anchorOffset},i={node:e.focusNode,offset:e.focusOffset};if((t.node.compareDocumentPosition(i.node)&Node.DOCUMENT_POSITION_PRECEDING||t.node===i.node&&t.offset>i.offset)&&([t,i]=[i,t]),t.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(t={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(t.node))return;const s=this._rowElements.slice(-1)[0];if(i.node.compareDocumentPosition(s)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(i={node:s,offset:s.textContent?.length??0}),!this._rowContainer.contains(i.node))return;const r=({node:e,offset:t})=>{const i=e instanceof Text?e.parentNode:e;let s=parseInt(i?.getAttribute(\"aria-posinset\"),10)-1;if(isNaN(s))return console.warn(\"row is invalid. Race condition?\"),null;const r=this._rowColumns.get(i);if(!r)return console.warn(\"columns is null. Race condition?\"),null;let n=t<r.length?r[t]:r.slice(-1)[0]+1;return n>=this._terminal.cols&&(++s,n=0),{row:s,column:n}},n=r(t),o=r(i);if(n&&o){if(n.row>o.row||n.row===o.row&&n.column>=o.column)throw new Error(\"invalid range\");this._terminal.select(n.column,n.row,(o.row-n.row)*this._terminal.cols-n.column+o.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener(\"focus\",this._bottomBoundaryFocusListener);for(let e=this._rowContainer.children.length;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const e=this._coreBrowserService.mainDocument.createElement(\"div\");return e.setAttribute(\"role\",\"listitem\"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e])}}_refreshRowDimensions(e){e.style.height=`${this._renderService.dimensions.css.cell.height}px`}};t.AccessibilityManager=d=s([r(1,c.IInstantiationService),r(2,h.ICoreBrowserService),r(3,h.IRenderService)],d)},3614:(e,t)=>{function i(e){return e.replace(/\\r?\\n/g,\"\\r\")}function s(e,t){return t?\"\u001b[200~\"+e+\"\u001b[201~\":e}function r(e,t,r,n){e=s(e=i(e),r.decPrivateModes.bracketedPasteMode&&!0!==n.rawOptions.ignoreBracketedPasteMode),r.triggerDataEvent(e,!0),t.value=\"\"}function n(e,t,i){const s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width=\"20px\",t.style.height=\"20px\",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex=\"1000\",t.focus()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.rightClickHandler=t.moveTextAreaUnderMouseCursor=t.paste=t.handlePasteEvent=t.copyHandler=t.bracketTextForPaste=t.prepareTextForTerminal=void 0,t.prepareTextForTerminal=i,t.bracketTextForPaste=s,t.copyHandler=function(e,t){e.clipboardData&&e.clipboardData.setData(\"text/plain\",t.selectionText),e.preventDefault()},t.handlePasteEvent=function(e,t,i,s){e.stopPropagation(),e.clipboardData&&r(e.clipboardData.getData(\"text/plain\"),t,i,s)},t.paste=r,t.moveTextAreaUnderMouseCursor=n,t.rightClickHandler=function(e,t,i,s,r){n(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}},7239:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ColorContrastCache=void 0;const s=i(1505);t.ColorContrastCache=class{constructor(){this._color=new s.TwoKeyMap,this._css=new s.TwoKeyMap}setCss(e,t,i){this._css.set(e,t,i)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,i){this._color.set(e,t,i)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}}},3656:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(e,t,i,s){e.addEventListener(t,i,s);let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(t,i,s))}}}},3551:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.Linkifier=void 0;const n=i(3656),o=i(8460),a=i(844),h=i(2585),c=i(4725);let l=t.Linkifier=class extends a.Disposable{get currentLink(){return this._currentLink}constructor(e,t,i,s,r){super(),this._element=e,this._mouseService=t,this._renderService=i,this._bufferService=s,this._linkProviderService=r,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new o.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new o.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,a.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,a.toDisposable)((()=>{this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()}))),this.register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0}))),this.register((0,n.addDisposableDomListener)(this._element,\"mouseleave\",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,n.addDisposableDomListener)(this._element,\"mousemove\",this._handleMouseMove.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,\"mousedown\",this._handleMouseDown.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,\"mouseup\",this._handleMouseUp.bind(this)))}_handleMouseMove(e){this._lastMouseEvent=e;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;const i=e.composedPath();for(let e=0;e<i.length;e++){const t=i[e];if(t.classList.contains(\"xterm\"))break;if(t.classList.contains(\"xterm-hover\"))return}this._lastBufferCell&&t.x===this._lastBufferCell.x&&t.y===this._lastBufferCell.y||(this._handleHover(t),this._lastBufferCell=t)}_handleHover(e){if(this._activeLine!==e.y||this._wasResized)return this._clearCurrentLink(),this._askForLink(e,!1),void(this._wasResized=!1);this._currentLink&&this._linkAtPosition(this._currentLink.link,e)||(this._clearCurrentLink(),this._askForLink(e,!0))}_askForLink(e,t){this._activeProviderReplies&&t||(this._activeProviderReplies?.forEach((e=>{e?.forEach((e=>{e.link.dispose&&e.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=e.y);let i=!1;for(const[s,r]of this._linkProviderService.linkProviders.entries())if(t){const t=this._activeProviderReplies?.get(s);t&&(i=this._checkLinkProviderResult(s,e,i))}else r.provideLinks(e.y,(t=>{if(this._isMouseOut)return;const r=t?.map((e=>({link:e})));this._activeProviderReplies?.set(s,r),i=this._checkLinkProviderResult(s,e,i),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)}))}_removeIntersectingLinks(e,t){const i=new Set;for(let s=0;s<t.size;s++){const r=t.get(s);if(r)for(let t=0;t<r.length;t++){const s=r[t],n=s.link.range.start.y<e?0:s.link.range.start.x,o=s.link.range.end.y>e?this._bufferService.cols:s.link.range.end.x;for(let e=n;e<=o;e++){if(i.has(e)){r.splice(t--,1);break}i.add(e)}}}}_checkLinkProviderResult(e,t,i){if(!this._activeProviderReplies)return i;const s=this._activeProviderReplies.get(e);let r=!1;for(let t=0;t<e;t++)this._activeProviderReplies.has(t)&&!this._activeProviderReplies.get(t)||(r=!0);if(!r&&s){const e=s.find((e=>this._linkAtPosition(e.link,t)));e&&(i=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!i)for(let e=0;e<this._activeProviderReplies.size;e++){const s=this._activeProviderReplies.get(e)?.find((e=>this._linkAtPosition(e.link,t)));if(s){i=!0,this._handleNewLink(s);break}}return i}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._currentLink)return;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){this._currentLink&&this._lastMouseEvent&&(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,a.disposeArray)(this._linkCacheDisposables))}_handleNewLink(e){if(!this._lastMouseEvent)return;const t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:void 0===e.link.decorations||e.link.decorations.underline,pointerCursor:void 0===e.link.decorations||e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:e=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&this._element.classList.toggle(\"xterm-cursor-pointer\",e))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:t=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,t))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((e=>{if(!this._currentLink)return;const t=0===e.start?0:e.start+1+this._bufferService.buffer.ydisp,i=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=t&&this._currentLink.link.range.end.y<=i&&(this._clearCurrentLink(t,i),this._lastMouseEvent)){const e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._askForLink(e,!1)}}))))}_linkHover(e,t,i){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add(\"xterm-cursor-pointer\")),t.hover&&t.hover(i,t.text)}_fireUnderlineEvent(e,t){const i=e.range,s=this._bufferService.buffer.ydisp,r=this._createLinkUnderlineEvent(i.start.x-1,i.start.y-s-1,i.end.x,i.end.y-s-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(r)}_linkLeave(e,t,i){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove(\"xterm-cursor-pointer\")),t.leave&&t.leave(i,t.text)}_linkAtPosition(e,t){const i=e.range.start.y*this._bufferService.cols+e.range.start.x,s=e.range.end.y*this._bufferService.cols+e.range.end.x,r=t.y*this._bufferService.cols+t.x;return i<=r&&r<=s}_positionFromMouseEvent(e,t,i){const s=i.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(s)return{x:s[0],y:s[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,i,s,r){return{x1:e,y1:t,x2:i,y2:s,cols:this._bufferService.cols,fg:r}}};t.Linkifier=l=s([r(1,c.IMouseService),r(2,c.IRenderService),r(3,h.IBufferService),r(4,c.ILinkProviderService)],l)},9042:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.tooMuchOutput=t.promptLabel=void 0,t.promptLabel=\"Terminal input\",t.tooMuchOutput=\"Too much output to announce, navigate to rows manually to read\"},3730:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscLinkProvider=void 0;const n=i(511),o=i(2585);let a=t.OscLinkProvider=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){const i=this._bufferService.buffer.lines.get(e-1);if(!i)return void t(void 0);const s=[],r=this._optionsService.rawOptions.linkHandler,o=new n.CellData,a=i.getTrimmedLength();let c=-1,l=-1,d=!1;for(let t=0;t<a;t++)if(-1!==l||i.hasContent(t)){if(i.loadCell(t,o),o.hasExtendedAttrs()&&o.extended.urlId){if(-1===l){l=t,c=o.extended.urlId;continue}d=o.extended.urlId!==c}else-1!==l&&(d=!0);if(d||-1!==l&&t===a-1){const i=this._oscLinkService.getLinkData(c)?.uri;if(i){const n={start:{x:l+1,y:e},end:{x:t+(d||t!==a-1?0:1),y:e}};let o=!1;if(!r?.allowNonHttpProtocols)try{const e=new URL(i);[\"http:\",\"https:\"].includes(e.protocol)||(o=!0)}catch(e){o=!0}o||s.push({text:i,range:n,activate:(e,t)=>r?r.activate(e,t,n):h(0,t),hover:(e,t)=>r?.hover?.(e,t,n),leave:(e,t)=>r?.leave?.(e,t,n)})}d=!1,o.hasExtendedAttrs()&&o.extended.urlId?(l=t,c=o.extended.urlId):(l=-1,c=-1)}}t(s)}};function h(e,t){if(confirm(`Do you want to navigate to ${t}?\\n\\nWARNING: This link could potentially be dangerous`)){const e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(\"Opening link blocked as opener could not be cleared\")}}t.OscLinkProvider=a=s([r(0,o.IBufferService),r(1,o.IOptionsService),r(2,o.IOscLinkService)],a)},6193:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RenderDebouncer=void 0,t.RenderDebouncer=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(e){return this._refreshCallbacks.push(e),this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh()))),this._animationFrame}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._animationFrame=void 0,void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return void this._runRefreshCallbacks();const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(const e of this._refreshCallbacks)e(0);this._refreshCallbacks=[]}}},3236:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Terminal=void 0;const s=i(3614),r=i(3656),n=i(3551),o=i(9042),a=i(3730),h=i(1680),c=i(3107),l=i(5744),d=i(2950),_=i(1296),u=i(428),f=i(4269),v=i(5114),p=i(8934),g=i(3230),m=i(9312),S=i(4725),C=i(6731),b=i(8055),w=i(8969),y=i(8460),E=i(844),k=i(6114),L=i(8437),D=i(2584),R=i(7399),x=i(5941),A=i(9074),B=i(2585),T=i(5435),M=i(4567),O=i(779);class P extends w.CoreTerminal{get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}constructor(e={}){super(e),this.browser=k,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this.register(new E.MutableDisposable),this._onCursorMove=this.register(new y.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new y.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new y.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new y.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new y.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new y.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new y.EventEmitter),this._onBlur=this.register(new y.EventEmitter),this._onA11yCharEmitter=this.register(new y.EventEmitter),this._onA11yTabEmitter=this.register(new y.EventEmitter),this._onWillOpen=this.register(new y.EventEmitter),this._setup(),this._decorationService=this._instantiationService.createInstance(A.DecorationService),this._instantiationService.setService(B.IDecorationService,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(O.LinkProviderService),this._instantiationService.setService(S.ILinkProviderService,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(a.OscLinkProvider)),this.register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this.register(this._inputHandler.onRequestRefreshRows(((e,t)=>this.refresh(e,t)))),this.register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this.register(this._inputHandler.onRequestReset((()=>this.reset()))),this.register(this._inputHandler.onRequestWindowsOptionsReport((e=>this._reportWindowsOptions(e)))),this.register(this._inputHandler.onColor((e=>this._handleColorEvent(e)))),this.register((0,y.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,y.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,y.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,y.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize((e=>this._afterResize(e.cols,e.rows)))),this.register((0,E.toDisposable)((()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)})))}_handleColorEvent(e){if(this._themeService)for(const t of e){let e,i=\"\";switch(t.index){case 256:e=\"foreground\",i=\"10\";break;case 257:e=\"background\",i=\"11\";break;case 258:e=\"cursor\",i=\"12\";break;default:e=\"ansi\",i=\"4;\"+t.index}switch(t.type){case 0:const s=b.color.toColorRGB(\"ansi\"===e?this._themeService.colors.ansi[t.index]:this._themeService.colors[e]);this.coreService.triggerDataEvent(`${D.C0.ESC}]${i};${(0,x.toRgbString)(s)}${D.C1_ESCAPED.ST}`);break;case 1:if(\"ansi\"===e)this._themeService.modifyColors((e=>e.ansi[t.index]=b.channels.toColor(...t.color)));else{const i=e;this._themeService.modifyColors((e=>e[i]=b.channels.toColor(...t.color)))}break;case 2:this._themeService.restoreColor(t.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){e?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(D.C0.ESC+\"[I\"),this.element.classList.add(\"focus\"),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value=\"\",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(D.C0.ESC+\"[O\"),this.element.classList.remove(\"focus\"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;const e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;const i=Math.min(this.buffer.x,this.cols-1),s=this._renderService.dimensions.css.cell.height,r=t.getWidth(i),n=this._renderService.dimensions.css.cell.width*r,o=this.buffer.y*this._renderService.dimensions.css.cell.height,a=i*this._renderService.dimensions.css.cell.width;this.textarea.style.left=a+\"px\",this.textarea.style.top=o+\"px\",this.textarea.style.width=n+\"px\",this.textarea.style.height=s+\"px\",this.textarea.style.lineHeight=s+\"px\",this.textarea.style.zIndex=\"-5\"}_initGlobal(){this._bindKeys(),this.register((0,r.addDisposableDomListener)(this.element,\"copy\",(e=>{this.hasSelection()&&(0,s.copyHandler)(e,this._selectionService)})));const e=e=>(0,s.handlePasteEvent)(e,this.textarea,this.coreService,this.optionsService);this.register((0,r.addDisposableDomListener)(this.textarea,\"paste\",e)),this.register((0,r.addDisposableDomListener)(this.element,\"paste\",e)),k.isFirefox?this.register((0,r.addDisposableDomListener)(this.element,\"mousedown\",(e=>{2===e.button&&(0,s.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this.register((0,r.addDisposableDomListener)(this.element,\"contextmenu\",(e=>{(0,s.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),k.isLinux&&this.register((0,r.addDisposableDomListener)(this.element,\"auxclick\",(e=>{1===e.button&&(0,s.moveTextAreaUnderMouseCursor)(e,this.textarea,this.screenElement)})))}_bindKeys(){this.register((0,r.addDisposableDomListener)(this.textarea,\"keyup\",(e=>this._keyUp(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,\"keydown\",(e=>this._keyDown(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,\"keypress\",(e=>this._keyPress(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,\"compositionstart\",(()=>this._compositionHelper.compositionstart()))),this.register((0,r.addDisposableDomListener)(this.textarea,\"compositionupdate\",(e=>this._compositionHelper.compositionupdate(e)))),this.register((0,r.addDisposableDomListener)(this.textarea,\"compositionend\",(()=>this._compositionHelper.compositionend()))),this.register((0,r.addDisposableDomListener)(this.textarea,\"input\",(e=>this._inputEvent(e)),!0)),this.register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(e){if(!e)throw new Error(\"Terminal requires a parent element.\");if(e.isConnected||this._logService.debug(\"Terminal.open was called on an element that was not attached to the DOM\"),this.element?.ownerDocument.defaultView&&this._coreBrowserService)return void(this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView));this._document=e.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement(\"div\"),this.element.dir=\"ltr\",this.element.classList.add(\"terminal\"),this.element.classList.add(\"xterm\"),e.appendChild(this.element);const t=this._document.createDocumentFragment();this._viewportElement=this._document.createElement(\"div\"),this._viewportElement.classList.add(\"xterm-viewport\"),t.appendChild(this._viewportElement),this._viewportScrollArea=this._document.createElement(\"div\"),this._viewportScrollArea.classList.add(\"xterm-scroll-area\"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=this._document.createElement(\"div\"),this.screenElement.classList.add(\"xterm-screen\"),this.register((0,r.addDisposableDomListener)(this.screenElement,\"mousemove\",(e=>this.updateCursorStyle(e)))),this._helperContainer=this._document.createElement(\"div\"),this._helperContainer.classList.add(\"xterm-helpers\"),this.screenElement.appendChild(this._helperContainer),t.appendChild(this.screenElement),this.textarea=this._document.createElement(\"textarea\"),this.textarea.classList.add(\"xterm-helper-textarea\"),this.textarea.setAttribute(\"aria-label\",o.promptLabel),k.isChromeOS||this.textarea.setAttribute(\"aria-multiline\",\"false\"),this.textarea.setAttribute(\"autocorrect\",\"off\"),this.textarea.setAttribute(\"autocapitalize\",\"off\"),this.textarea.setAttribute(\"spellcheck\",\"false\"),this.textarea.tabIndex=0,this._coreBrowserService=this.register(this._instantiationService.createInstance(v.CoreBrowserService,this.textarea,e.ownerDocument.defaultView??window,this._document??\"undefined\"!=typeof window?window.document:null)),this._instantiationService.setService(S.ICoreBrowserService,this._coreBrowserService),this.register((0,r.addDisposableDomListener)(this.textarea,\"focus\",(e=>this._handleTextAreaFocus(e)))),this.register((0,r.addDisposableDomListener)(this.textarea,\"blur\",(()=>this._handleTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(u.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(S.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(C.ThemeService),this._instantiationService.setService(S.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(f.CharacterJoinerService),this._instantiationService.setService(S.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(g.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(S.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange((e=>this._onRender.fire(e)))),this.onResize((e=>this._renderService.resize(e.cols,e.rows))),this._compositionView=this._document.createElement(\"div\"),this._compositionView.classList.add(\"composition-view\"),this._compositionHelper=this._instantiationService.createInstance(d.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(p.MouseService),this._instantiationService.setService(S.IMouseService,this._mouseService),this.linkifier=this.register(this._instantiationService.createInstance(n.Linkifier,this.screenElement)),this.element.appendChild(t);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this.viewport=this._instantiationService.createInstance(h.Viewport,this._viewportElement,this._viewportScrollArea),this.viewport.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent,1))),this.register(this._inputHandler.onRequestSyncScrollBar((()=>this.viewport.syncScrollArea()))),this.register(this.viewport),this.register(this.onCursorMove((()=>{this._renderService.handleCursorMove(),this._syncTextArea()}))),this.register(this.onResize((()=>this._renderService.handleResize(this.cols,this.rows)))),this.register(this.onBlur((()=>this._renderService.handleBlur()))),this.register(this.onFocus((()=>this._renderService.handleFocus()))),this.register(this._renderService.onDimensionsChange((()=>this.viewport.syncScrollArea()))),this._selectionService=this.register(this._instantiationService.createInstance(m.SelectionService,this.element,this.screenElement,this.linkifier)),this._instantiationService.setService(S.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent)))),this.register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this.register(this._selectionService.onRequestRedraw((e=>this._renderService.handleSelectionChanged(e.start,e.end,e.columnSelectMode)))),this.register(this._selectionService.onLinuxMouseSelection((e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()}))),this.register(this._onScroll.event((e=>{this.viewport.syncScrollArea(),this._selectionService.refresh()}))),this.register((0,r.addDisposableDomListener)(this._viewportElement,\"scroll\",(()=>this._selectionService.refresh()))),this.register(this._instantiationService.createInstance(c.BufferDecorationRenderer,this.screenElement)),this.register((0,r.addDisposableDomListener)(this.element,\"mousedown\",(e=>this._selectionService.handleMouseDown(e)))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add(\"enable-mouse-events\")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange(\"screenReaderMode\",(e=>this._handleScreenReaderModeOptionChange(e)))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(l.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange(\"overviewRulerWidth\",(e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(l.OverviewRulerRenderer,this._viewportElement,this.screenElement)))})),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(_.DomRenderer,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){const e=this,t=this.element;function i(t){const i=e._mouseService.getMouseReportCoords(t,e.screenElement);if(!i)return!1;let s,r;switch(t.overrideType||t.type){case\"mousemove\":r=32,void 0===t.buttons?(s=3,void 0!==t.button&&(s=t.button<3?t.button:3)):s=1&t.buttons?0:4&t.buttons?1:2&t.buttons?2:3;break;case\"mouseup\":r=0,s=t.button<3?t.button:3;break;case\"mousedown\":r=1,s=t.button<3?t.button:3;break;case\"wheel\":if(e._customWheelEventHandler&&!1===e._customWheelEventHandler(t))return!1;if(0===e.viewport.getLinesScrolled(t))return!1;r=t.deltaY<0?0:1,s=4;break;default:return!1}return!(void 0===r||void 0===s||s>4)&&e.coreMouseService.triggerMouseEvent({col:i.col,row:i.row,x:i.x,y:i.y,button:s,action:r,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey})}const s={mouseup:null,wheel:null,mousedrag:null,mousemove:null},n={mouseup:e=>(i(e),e.buttons||(this._document.removeEventListener(\"mouseup\",s.mouseup),s.mousedrag&&this._document.removeEventListener(\"mousemove\",s.mousedrag)),this.cancel(e)),wheel:e=>(i(e),this.cancel(e,!0)),mousedrag:e=>{e.buttons&&i(e)},mousemove:e=>{e.buttons||i(e)}};this.register(this.coreMouseService.onProtocolChange((e=>{e?(\"debug\"===this.optionsService.rawOptions.logLevel&&this._logService.debug(\"Binding to mouse events:\",this.coreMouseService.explainEvents(e)),this.element.classList.add(\"enable-mouse-events\"),this._selectionService.disable()):(this._logService.debug(\"Unbinding from mouse events.\"),this.element.classList.remove(\"enable-mouse-events\"),this._selectionService.enable()),8&e?s.mousemove||(t.addEventListener(\"mousemove\",n.mousemove),s.mousemove=n.mousemove):(t.removeEventListener(\"mousemove\",s.mousemove),s.mousemove=null),16&e?s.wheel||(t.addEventListener(\"wheel\",n.wheel,{passive:!1}),s.wheel=n.wheel):(t.removeEventListener(\"wheel\",s.wheel),s.wheel=null),2&e?s.mouseup||(s.mouseup=n.mouseup):(this._document.removeEventListener(\"mouseup\",s.mouseup),s.mouseup=null),4&e?s.mousedrag||(s.mousedrag=n.mousedrag):(this._document.removeEventListener(\"mousemove\",s.mousedrag),s.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,r.addDisposableDomListener)(t,\"mousedown\",(e=>{if(e.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(e))return i(e),s.mouseup&&this._document.addEventListener(\"mouseup\",s.mouseup),s.mousedrag&&this._document.addEventListener(\"mousemove\",s.mousedrag),this.cancel(e)}))),this.register((0,r.addDisposableDomListener)(t,\"wheel\",(e=>{if(!s.wheel){if(this._customWheelEventHandler&&!1===this._customWheelEventHandler(e))return!1;if(!this.buffer.hasScrollback){const t=this.viewport.getLinesScrolled(e);if(0===t)return;const i=D.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?\"O\":\"[\")+(e.deltaY<0?\"A\":\"B\");let s=\"\";for(let e=0;e<Math.abs(t);e++)s+=i;return this.coreService.triggerDataEvent(s,!0),this.cancel(e,!0)}return this.viewport.handleWheel(e)?this.cancel(e):void 0}}),{passive:!1})),this.register((0,r.addDisposableDomListener)(t,\"touchstart\",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(e),this.cancel(e)}),{passive:!0})),this.register((0,r.addDisposableDomListener)(t,\"touchmove\",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(e)?void 0:this.cancel(e)}),{passive:!1}))}refresh(e,t){this._renderService?.refreshRows(e,t)}updateCursorStyle(e){this._selectionService?.shouldColumnSelect(e)?this.element.classList.add(\"column-select\"):this.element.classList.remove(\"column-select\")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t,i=0){1===i?(super.scrollLines(e,t,i),this.refresh(0,this.rows-1)):this.viewport?.scrollLines(e)}paste(e){(0,s.paste)(e,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}attachCustomWheelEventHandler(e){this._customWheelEventHandler=e}registerLinkProvider(e){return this._linkProviderService.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw new Error(\"Terminal must be opened first\");const t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw new Error(\"Terminal must be opened first\");this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(e,t,i){this._selectionService.setSelection(e,t,i)}getSelection(){return this._selectionService?this._selectionService.selectionText:\"\"}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(e,t){this._selectionService?.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;const t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;t||\"Dead\"!==e.key&&\"AltGraph\"!==e.key||(this._unprocessedDeadKey=!0);const i=(0,R.evaluateKeyboardEvent)(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===i.type||2===i.type){const t=this.rows-1;return this.scrollLines(2===i.type?-t:t),this.cancel(e,!0)}return 1===i.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(i.cancel&&this.cancel(e,!0),!i.key||!!(e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&1===e.key.length&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(i.key!==D.C0.ETX&&i.key!==D.C0.CR||(this.textarea.value=\"\"),this._onKey.fire({key:i.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(i.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey?this.cancel(e,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(e,t){const i=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState(\"AltGraph\");return\"keypress\"===t.type?i:i&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e)||(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode}(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled)return!1;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null===e.which||void 0===e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)||(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(e){if(e.data&&\"insertText\"===e.inputType&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;const t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){e!==this.cols||t!==this.rows?super.resize(e,t):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(e,t){this._charSizeService?.measure(),this.viewport?.syncScrollArea(!0)}clear(){if(0!==this.buffer.ybase||0!==this.buffer.y){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e<this.rows;e++)this.buffer.lines.push(this.buffer.getBlankLine(L.DEFAULT_ATTR_DATA));this._onScroll.fire({position:this.buffer.ydisp,source:0}),this.viewport?.reset(),this.refresh(0,this.rows-1)}}reset(){this.options.rows=this.rows,this.options.cols=this.cols;const e=this._customKeyEventHandler;this._setup(),super.reset(),this._selectionService?.reset(),this._decorationService.reset(),this.viewport?.reset(),this._customKeyEventHandler=e,this.refresh(0,this.rows-1)}clearTextureAtlas(){this._renderService?.clearTextureAtlas()}_reportFocus(){this.element?.classList.contains(\"focus\")?this.coreService.triggerDataEvent(D.C0.ESC+\"[I\"):this.coreService.triggerDataEvent(D.C0.ESC+\"[O\")}_reportWindowsOptions(e){if(this._renderService)switch(e){case T.WindowsOptionsReportType.GET_WIN_SIZE_PIXELS:const e=this._renderService.dimensions.css.canvas.width.toFixed(0),t=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${D.C0.ESC}[4;${t};${e}t`);break;case T.WindowsOptionsReportType.GET_CELL_SIZE_PIXELS:const i=this._renderService.dimensions.css.cell.width.toFixed(0),s=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${D.C0.ESC}[6;${s};${i}t`)}}cancel(e,t){if(this.options.cancelEvents||t)return e.preventDefault(),e.stopPropagation(),!1}}t.Terminal=P},9924:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TimeBasedDebouncer=void 0,t.TimeBasedDebouncer=class{constructor(e,t=1e3){this._renderCallback=e,this._debounceThresholdMS=t,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t;const s=Date.now();if(s-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=s,this._innerRefresh();else if(!this._additionalRefreshRequested){const e=s-this._lastRefreshMs,t=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout((()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0}),t)}}_innerRefresh(){if(void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return;const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}}},1680:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.Viewport=void 0;const n=i(3656),o=i(4725),a=i(8460),h=i(844),c=i(2585);let l=t.Viewport=class extends h.Disposable{constructor(e,t,i,s,r,o,h,c){super(),this._viewportElement=e,this._scrollArea=t,this._bufferService=i,this._optionsService=s,this._charSizeService=r,this._renderService=o,this._coreBrowserService=h,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this._onRequestScrollLines=this.register(new a.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,n.addDisposableDomListener)(this._viewportElement,\"scroll\",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange((e=>this._renderDimensions=e))),this._handleThemeChange(c.colors),this.register(c.onChangeColors((e=>this._handleThemeChange(e)))),this.register(this._optionsService.onSpecificOptionChange(\"scrollback\",(()=>this.syncScrollArea()))),setTimeout((()=>this.syncScrollArea()))}_handleThemeChange(e){this._viewportElement.style.backgroundColor=e.background.css}reset(){this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._coreBrowserService.window.requestAnimationFrame((()=>this.syncScrollArea()))}_refresh(e){if(e)return this._innerRefresh(),void(null!==this._refreshAnimationFrame&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));null===this._refreshAnimationFrame&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderDimensions.device.cell.height/this._coreBrowserService.dpr,this._currentDeviceCellHeight=this._renderDimensions.device.cell.height,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;const e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderDimensions.css.canvas.height);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+\"px\")}const e=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==e&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=e),this._refreshAnimationFrame=null}syncScrollArea(e=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(e);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(e)}_handleScroll(e){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._onRequestScrollLines.fire({amount:0,suppressScrollEvent:!0});const t=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._onRequestScrollLines.fire({amount:t,suppressScrollEvent:!0})}_smoothScroll(){if(this._isDisposed||-1===this._smoothScrollState.origin||-1===this._smoothScrollState.target)return;const e=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(e*(this._smoothScrollState.target-this._smoothScrollState.origin)),e<1?this._coreBrowserService.window.requestAnimationFrame((()=>this._smoothScroll())):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(e,t){const i=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(t<0&&0!==this._viewportElement.scrollTop||t>0&&i<this._lastRecordedBufferHeight)||(e.cancelable&&e.preventDefault(),!1)}handleWheel(e){const t=this._getPixelsScrolled(e);return 0!==t&&(this._optionsService.rawOptions.smoothScrollDuration?(this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,-1===this._smoothScrollState.target?this._smoothScrollState.target=this._viewportElement.scrollTop+t:this._smoothScrollState.target+=t,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()):this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}scrollLines(e){if(0!==e)if(this._optionsService.rawOptions.smoothScrollDuration){const t=e*this._currentRowHeight;this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,this._smoothScrollState.target=this._smoothScrollState.origin+t,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()}else this._onRequestScrollLines.fire({amount:e,suppressScrollEvent:!1})}_getPixelsScrolled(e){if(0===e.deltaY||e.shiftKey)return 0;let t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=this._currentRowHeight:e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._currentRowHeight*this._bufferService.rows),t}getBufferElements(e,t){let i,s=\"\";const r=[],n=t??this._bufferService.buffer.lines.length,o=this._bufferService.buffer.lines;for(let t=e;t<n;t++){const e=o.get(t);if(!e)continue;const n=o.get(t+1)?.isWrapped;if(s+=e.translateToString(!n),!n||t===o.length-1){const e=document.createElement(\"div\");e.textContent=s,r.push(e),s.length>0&&(i=e),s=\"\"}}return{bufferElements:r,cursorElement:i}}getLinesScrolled(e){if(0===e.deltaY||e.shiftKey)return 0;let t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(t/=this._currentRowHeight+0,this._wheelPartialScroll+=t,t=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._bufferService.rows),t}_applyScrollModifier(e,t){const i=this._optionsService.rawOptions.fastScrollModifier;return\"alt\"===i&&t.altKey||\"ctrl\"===i&&t.ctrlKey||\"shift\"===i&&t.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(e){this._lastTouchY=e.touches[0].pageY}handleTouchMove(e){const t=this._lastTouchY-e.touches[0].pageY;return this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}};t.Viewport=l=s([r(2,c.IBufferService),r(3,c.IOptionsService),r(4,o.ICharSizeService),r(5,o.IRenderService),r(6,o.ICoreBrowserService),r(7,o.IThemeService)],l)},3107:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferDecorationRenderer=void 0;const n=i(4725),o=i(844),a=i(2585);let h=t.BufferDecorationRenderer=class extends o.Disposable{constructor(e,t,i,s,r){super(),this._screenElement=e,this._bufferService=t,this._coreBrowserService=i,this._decorationService=s,this._renderService=r,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement(\"div\"),this._container.classList.add(\"xterm-decoration-container\"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange((()=>this._doRefreshDecorations()))),this.register(this._renderService.onDimensionsChange((()=>{this._dimensionsChanged=!0,this._queueRefresh()}))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt}))),this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh()))),this.register(this._decorationService.onDecorationRemoved((e=>this._removeDecoration(e)))),this.register((0,o.toDisposable)((()=>{this._container.remove(),this._decorationElements.clear()})))}_queueRefresh(){void 0===this._animationFrame&&(this._animationFrame=this._renderService.addRefreshCallback((()=>{this._doRefreshDecorations(),this._animationFrame=void 0})))}_doRefreshDecorations(){for(const e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){const t=this._coreBrowserService.mainDocument.createElement(\"div\");t.classList.add(\"xterm-decoration\"),t.classList.toggle(\"xterm-decoration-top-layer\",\"top\"===e?.options?.layer),t.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,t.style.height=(e.options.height||1)*this._renderService.dimensions.css.cell.height+\"px\",t.style.top=(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+\"px\",t.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;const i=e.options.x??0;return i&&i>this._bufferService.cols&&(t.style.display=\"none\"),this._refreshXPosition(e,t),t}_refreshStyle(e){const t=e.marker.line-this._bufferService.buffers.active.ydisp;if(t<0||t>=this._bufferService.rows)e.element&&(e.element.style.display=\"none\",e.onRenderEmitter.fire(e.element));else{let i=this._decorationElements.get(e);i||(i=this._createElement(e),e.element=i,this._decorationElements.set(e,i),this._container.appendChild(i),e.onDispose((()=>{this._decorationElements.delete(e),i.remove()}))),i.style.top=t*this._renderService.dimensions.css.cell.height+\"px\",i.style.display=this._altBufferIsActive?\"none\":\"block\",e.onRenderEmitter.fire(i)}}_refreshXPosition(e,t=e.element){if(!t)return;const i=e.options.x??0;\"right\"===(e.options.anchor||\"left\")?t.style.right=i?i*this._renderService.dimensions.css.cell.width+\"px\":\"\":t.style.left=i?i*this._renderService.dimensions.css.cell.width+\"px\":\"\"}_removeDecoration(e){this._decorationElements.get(e)?.remove(),this._decorationElements.delete(e),e.dispose()}};t.BufferDecorationRenderer=h=s([r(1,a.IBufferService),r(2,n.ICoreBrowserService),r(3,a.IDecorationService),r(4,n.IRenderService)],h)},5871:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ColorZoneStore=void 0,t.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(e){if(e.options.overviewRulerOptions){for(const t of this._zones)if(t.color===e.options.overviewRulerOptions.color&&t.position===e.options.overviewRulerOptions.position){if(this._lineIntersectsZone(t,e.marker.line))return;if(this._lineAdjacentToZone(t,e.marker.line,e.options.overviewRulerOptions.position))return void this._addLineToZone(t,e.marker.line)}if(this._zonePoolIndex<this._zonePool.length)return this._zonePool[this._zonePoolIndex].color=e.options.overviewRulerOptions.color,this._zonePool[this._zonePoolIndex].position=e.options.overviewRulerOptions.position,this._zonePool[this._zonePoolIndex].startBufferLine=e.marker.line,this._zonePool[this._zonePoolIndex].endBufferLine=e.marker.line,void this._zones.push(this._zonePool[this._zonePoolIndex++]);this._zones.push({color:e.options.overviewRulerOptions.color,position:e.options.overviewRulerOptions.position,startBufferLine:e.marker.line,endBufferLine:e.marker.line}),this._zonePool.push(this._zones[this._zones.length-1]),this._zonePoolIndex++}}setPadding(e){this._linePadding=e}_lineIntersectsZone(e,t){return t>=e.startBufferLine&&t<=e.endBufferLine}_lineAdjacentToZone(e,t,i){return t>=e.startBufferLine-this._linePadding[i||\"full\"]&&t<=e.endBufferLine+this._linePadding[i||\"full\"]}_addLineToZone(e,t){e.startBufferLine=Math.min(e.startBufferLine,t),e.endBufferLine=Math.max(e.endBufferLine,t)}}},5744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OverviewRulerRenderer=void 0;const n=i(5871),o=i(4725),a=i(844),h=i(2585),c={full:0,left:0,center:0,right:0},l={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0};let _=t.OverviewRulerRenderer=class extends a.Disposable{get _width(){return this._optionsService.options.overviewRulerWidth||0}constructor(e,t,i,s,r,o,h){super(),this._viewportElement=e,this._screenElement=t,this._bufferService=i,this._decorationService=s,this._renderService=r,this._optionsService=o,this._coreBrowserService=h,this._colorZoneStore=new n.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=this._coreBrowserService.mainDocument.createElement(\"canvas\"),this._canvas.classList.add(\"xterm-decoration-overview-ruler\"),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement);const c=this._canvas.getContext(\"2d\");if(!c)throw new Error(\"Ctx cannot be null\");this._ctx=c,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,a.toDisposable)((()=>{this._canvas?.remove()})))}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh(void 0,!0)))),this.register(this._decorationService.onDecorationRemoved((()=>this._queueRefresh(void 0,!0))))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?\"none\":\"block\"}))),this.register(this._bufferService.onScroll((()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender((()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)}))),this.register(this._optionsService.onSpecificOptionChange(\"overviewRulerWidth\",(()=>this._queueRefresh(!0)))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh(!0)))),this._queueRefresh(!0)}_refreshDrawConstants(){const e=Math.floor(this._canvas.width/3),t=Math.ceil(this._canvas.width/3);l.full=this._canvas.width,l.left=e,l.center=t,l.right=e,this._refreshDrawHeightConstants(),d.full=0,d.left=0,d.center=l.left,d.right=l.left+l.center}_refreshDrawHeightConstants(){c.full=Math.round(2*this._coreBrowserService.dpr);const e=this._canvas.height/this._bufferService.buffer.lines.length,t=Math.round(Math.max(Math.min(e,12),6)*this._coreBrowserService.dpr);c.left=t,c.center=t,c.right=t}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(const e of this._decorationService.decorations)this._colorZoneStore.addDecoration(e);this._ctx.lineWidth=1;const e=this._colorZoneStore.zones;for(const t of e)\"full\"!==t.position&&this._renderColorZone(t);for(const t of e)\"full\"===t.position&&this._renderColorZone(t);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(e){this._ctx.fillStyle=e.color,this._ctx.fillRect(d[e.position||\"full\"],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-c[e.position||\"full\"]/2),l[e.position||\"full\"],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+c[e.position||\"full\"]))}_queueRefresh(e,t){this._shouldUpdateDimensions=e||this._shouldUpdateDimensions,this._shouldUpdateAnchor=t||this._shouldUpdateAnchor,void 0===this._animationFrame&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._refreshDecorations(),this._animationFrame=void 0})))}};t.OverviewRulerRenderer=_=s([r(2,h.IBufferService),r(3,h.IDecorationService),r(4,o.IRenderService),r(5,h.IOptionsService),r(6,o.ICoreBrowserService)],_)},2950:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CompositionHelper=void 0;const n=i(4725),o=i(2585),a=i(2584);let h=t.CompositionHelper=class{get isComposing(){return this._isComposing}constructor(e,t,i,s,r,n){this._textarea=e,this._compositionView=t,this._bufferService=i,this._optionsService=s,this._coreService=r,this._renderService=n,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=\"\"}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent=\"\",this._dataAlreadySent=\"\",this._compositionView.classList.add(\"active\")}compositionupdate(e){this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout((()=>{this._compositionPosition.end=this._textarea.value.length}),0)}compositionend(){this._finalizeComposition(!0)}keydown(e){if(this._isComposing||this._isSendingComposition){if(229===e.keyCode)return!1;if(16===e.keyCode||17===e.keyCode||18===e.keyCode)return!1;this._finalizeComposition(!1)}return 229!==e.keyCode||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(e){if(this._compositionView.classList.remove(\"active\"),this._isComposing=!1,e){const e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout((()=>{if(this._isSendingComposition){let t;this._isSendingComposition=!1,e.start+=this._dataAlreadySent.length,t=this._isComposing?this._textarea.value.substring(e.start,e.end):this._textarea.value.substring(e.start),t.length>0&&this._coreService.triggerDataEvent(t,!0)}}),0)}else{this._isSendingComposition=!1;const e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){const e=this._textarea.value;setTimeout((()=>{if(!this._isComposing){const t=this._textarea.value,i=t.replace(e,\"\");this._dataAlreadySent=i,t.length>e.length?this._coreService.triggerDataEvent(i,!0):t.length<e.length?this._coreService.triggerDataEvent(`${a.C0.DEL}`,!0):t.length===e.length&&t!==e&&this._coreService.triggerDataEvent(t,!0)}}),0)}updateCompositionElements(e){if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){const e=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),t=this._renderService.dimensions.css.cell.height,i=this._bufferService.buffer.y*this._renderService.dimensions.css.cell.height,s=e*this._renderService.dimensions.css.cell.width;this._compositionView.style.left=s+\"px\",this._compositionView.style.top=i+\"px\",this._compositionView.style.height=t+\"px\",this._compositionView.style.lineHeight=t+\"px\",this._compositionView.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._compositionView.style.fontSize=this._optionsService.rawOptions.fontSize+\"px\";const r=this._compositionView.getBoundingClientRect();this._textarea.style.left=s+\"px\",this._textarea.style.top=i+\"px\",this._textarea.style.width=Math.max(r.width,1)+\"px\",this._textarea.style.height=Math.max(r.height,1)+\"px\",this._textarea.style.lineHeight=r.height+\"px\"}e||setTimeout((()=>this.updateCompositionElements(!0)),0)}}};t.CompositionHelper=h=s([r(2,o.IBufferService),r(3,o.IOptionsService),r(4,o.ICoreService),r(5,n.IRenderService)],h)},9806:(e,t)=>{function i(e,t,i){const s=i.getBoundingClientRect(),r=e.getComputedStyle(i),n=parseInt(r.getPropertyValue(\"padding-left\")),o=parseInt(r.getPropertyValue(\"padding-top\"));return[t.clientX-s.left-n,t.clientY-s.top-o]}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getCoords=t.getCoordsRelativeToElement=void 0,t.getCoordsRelativeToElement=i,t.getCoords=function(e,t,s,r,n,o,a,h,c){if(!o)return;const l=i(e,t,s);return l?(l[0]=Math.ceil((l[0]+(c?a/2:0))/a),l[1]=Math.ceil(l[1]/h),l[0]=Math.min(Math.max(l[0],1),r+(c?1:0)),l[1]=Math.min(Math.max(l[1],1),n),l):void 0}},9504:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.moveToCellSequence=void 0;const s=i(2584);function r(e,t,i,s){const r=e-n(e,i),a=t-n(t,i),l=Math.abs(r-a)-function(e,t,i){let s=0;const r=e-n(e,i),a=t-n(t,i);for(let n=0;n<Math.abs(r-a);n++){const a=\"A\"===o(e,t)?-1:1,h=i.buffer.lines.get(r+a*n);h?.isWrapped&&s++}return s}(e,t,i);return c(l,h(o(e,t),s))}function n(e,t){let i=0,s=t.buffer.lines.get(e),r=s?.isWrapped;for(;r&&e>=0&&e<t.rows;)i++,s=t.buffer.lines.get(--e),r=s?.isWrapped;return i}function o(e,t){return e>t?\"A\":\"B\"}function a(e,t,i,s,r,n){let o=e,a=t,h=\"\";for(;o!==i||a!==s;)o+=r?1:-1,r&&o>n.cols-1?(h+=n.buffer.translateBufferLineToString(a,!1,e,o),o=0,e=0,a++):!r&&o<0&&(h+=n.buffer.translateBufferLineToString(a,!1,0,e+1),o=n.cols-1,e=o,a--);return h+n.buffer.translateBufferLineToString(a,!1,e,o)}function h(e,t){const i=t?\"O\":\"[\";return s.C0.ESC+i+e}function c(e,t){e=Math.floor(e);let i=\"\";for(let s=0;s<e;s++)i+=t;return i}t.moveToCellSequence=function(e,t,i,s){const o=i.buffer.x,l=i.buffer.y;if(!i.buffer.hasScrollback)return function(e,t,i,s,o,l){return 0===r(t,s,o,l).length?\"\":c(a(e,t,e,t-n(t,o),!1,o).length,h(\"D\",l))}(o,l,0,t,i,s)+r(l,t,i,s)+function(e,t,i,s,o,l){let d;d=r(t,s,o,l).length>0?s-n(s,o):t;const _=s,u=function(e,t,i,s,o,a){let h;return h=r(i,s,o,a).length>0?s-n(s,o):t,e<i&&h<=s||e>=i&&h<s?\"C\":\"D\"}(e,t,i,s,o,l);return c(a(e,d,i,_,\"C\"===u,o).length,h(u,l))}(o,l,e,t,i,s);let d;if(l===t)return d=o>e?\"D\":\"C\",c(Math.abs(o-e),h(d,s));d=l>t?\"D\":\"C\";const _=Math.abs(l-t);return c(function(e,t){return t.cols-e}(l>t?e:o,i)+(_-1)*i.cols+1+((l>t?o:e)-1),h(d,s))}},1296:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.DomRenderer=void 0;const n=i(3787),o=i(2550),a=i(2223),h=i(6171),c=i(6052),l=i(4725),d=i(8055),_=i(8460),u=i(844),f=i(2585),v=\"xterm-dom-renderer-owner-\",p=\"xterm-rows\",g=\"xterm-fg-\",m=\"xterm-bg-\",S=\"xterm-focus\",C=\"xterm-selection\";let b=1,w=t.DomRenderer=class extends u.Disposable{constructor(e,t,i,s,r,a,l,d,f,g,m,S,w){super(),this._terminal=e,this._document=t,this._element=i,this._screenElement=s,this._viewportElement=r,this._helperContainer=a,this._linkifier2=l,this._charSizeService=f,this._optionsService=g,this._bufferService=m,this._coreBrowserService=S,this._themeService=w,this._terminalClass=b++,this._rowElements=[],this._selectionRenderModel=(0,c.createSelectionRenderModel)(),this.onRequestRedraw=this.register(new _.EventEmitter).event,this._rowContainer=this._document.createElement(\"div\"),this._rowContainer.classList.add(p),this._rowContainer.style.lineHeight=\"normal\",this._rowContainer.setAttribute(\"aria-hidden\",\"true\"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement(\"div\"),this._selectionContainer.classList.add(C),this._selectionContainer.setAttribute(\"aria-hidden\",\"true\"),this.dimensions=(0,h.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._themeService.onChangeColors((e=>this._injectCss(e)))),this._injectCss(this._themeService.colors),this._rowFactory=d.createInstance(n.DomRendererRowFactory,document),this._element.classList.add(v+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline((e=>this._handleLinkHover(e)))),this.register(this._linkifier2.onHideLinkUnderline((e=>this._handleLinkLeave(e)))),this.register((0,u.toDisposable)((()=>{this._element.classList.remove(v+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()}))),this._widthCache=new o.WidthCache(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){const e=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*e,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*e),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/e),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/e),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(const e of this._rowElements)e.style.width=`${this.dimensions.css.canvas.width}px`,e.style.height=`${this.dimensions.css.cell.height}px`,e.style.lineHeight=`${this.dimensions.css.cell.height}px`,e.style.overflow=\"hidden\";this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement(\"style\"),this._screenElement.appendChild(this._dimensionsStyleElement));const t=`${this._terminalSelector} .${p} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=t,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(e){this._themeStyleElement||(this._themeStyleElement=this._document.createElement(\"style\"),this._screenElement.appendChild(this._themeStyleElement));let t=`${this._terminalSelector} .${p} { color: ${e.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;t+=`${this._terminalSelector} .${p} .xterm-dim { color: ${d.color.multiplyOpacity(e.foreground,.5).css};}`,t+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;const i=`blink_underline_${this._terminalClass}`,s=`blink_bar_${this._terminalClass}`,r=`blink_block_${this._terminalClass}`;t+=`@keyframes ${i} { 50% { border-bottom-style: hidden; }}`,t+=`@keyframes ${s} { 50% { box-shadow: none; }}`,t+=`@keyframes ${r} { 0% { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css}; } 50% { background-color: inherit; color: ${e.cursor.css}; }}`,t+=`${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${i} 1s step-end infinite;}${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${s} 1s step-end infinite;}${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${r} 1s step-end infinite;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-block { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css};}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${e.cursor.css} !important; color: ${e.cursorAccent.css} !important;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${e.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${e.cursor.css} inset;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${e.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,t+=`${this._terminalSelector} .${C} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${C} div { position: absolute; background-color: ${e.selectionBackgroundOpaque.css};}${this._terminalSelector} .${C} div { position: absolute; background-color: ${e.selectionInactiveBackgroundOpaque.css};}`;for(const[i,s]of e.ansi.entries())t+=`${this._terminalSelector} .${g}${i} { color: ${s.css}; }${this._terminalSelector} .${g}${i}.xterm-dim { color: ${d.color.multiplyOpacity(s,.5).css}; }${this._terminalSelector} .${m}${i} { background-color: ${s.css}; }`;t+=`${this._terminalSelector} .${g}${a.INVERTED_DEFAULT_COLOR} { color: ${d.color.opaque(e.background).css}; }${this._terminalSelector} .${g}${a.INVERTED_DEFAULT_COLOR}.xterm-dim { color: ${d.color.multiplyOpacity(d.color.opaque(e.background),.5).css}; }${this._terminalSelector} .${m}${a.INVERTED_DEFAULT_COLOR} { background-color: ${e.foreground.css}; }`,this._themeStyleElement.textContent=t}_setDefaultSpacing(){const e=this.dimensions.css.cell.width-this._widthCache.get(\"W\",!1,!1);this._rowContainer.style.letterSpacing=`${e}px`,this._rowFactory.defaultSpacing=e}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(e,t){for(let e=this._rowElements.length;e<=t;e++){const e=this._document.createElement(\"div\");this._rowContainer.appendChild(e),this._rowElements.push(e)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(e,t){this._refreshRowElements(e,t),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(S),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(S),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(e,t,i){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(e,t,i),this.renderRows(0,this._bufferService.rows-1),!e||!t)return;this._selectionRenderModel.update(this._terminal,e,t,i);const s=this._selectionRenderModel.viewportStartRow,r=this._selectionRenderModel.viewportEndRow,n=this._selectionRenderModel.viewportCappedStartRow,o=this._selectionRenderModel.viewportCappedEndRow;if(n>=this._bufferService.rows||o<0)return;const a=this._document.createDocumentFragment();if(i){const i=e[0]>t[0];a.appendChild(this._createSelectionElement(n,i?t[0]:e[0],i?e[0]:t[0],o-n+1))}else{const i=s===n?e[0]:0,h=n===r?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(n,i,h));const c=o-n-1;if(a.appendChild(this._createSelectionElement(n+1,0,this._bufferService.cols,c)),n!==o){const e=r===o?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(o,0,e))}}this._selectionContainer.appendChild(a)}_createSelectionElement(e,t,i,s=1){const r=this._document.createElement(\"div\"),n=t*this.dimensions.css.cell.width;let o=this.dimensions.css.cell.width*(i-t);return n+o>this.dimensions.css.canvas.width&&(o=this.dimensions.css.canvas.width-n),r.style.height=s*this.dimensions.css.cell.height+\"px\",r.style.top=e*this.dimensions.css.cell.height+\"px\",r.style.left=`${n}px`,r.style.width=`${o}px`,r}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(const e of this._rowElements)e.replaceChildren()}renderRows(e,t){const i=this._bufferService.buffer,s=i.ybase+i.y,r=Math.min(i.x,this._bufferService.cols-1),n=this._optionsService.rawOptions.cursorBlink,o=this._optionsService.rawOptions.cursorStyle,a=this._optionsService.rawOptions.cursorInactiveStyle;for(let h=e;h<=t;h++){const e=h+i.ydisp,t=this._rowElements[h],c=i.lines.get(e);if(!t||!c)break;t.replaceChildren(...this._rowFactory.createRow(c,e,e===s,o,a,r,n,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${v}${this._terminalClass}`}_handleLinkHover(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)}_handleLinkLeave(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)}_setCellUnderline(e,t,i,s,r,n){i<0&&(e=0),s<0&&(t=0);const o=this._bufferService.rows-1;i=Math.max(Math.min(i,o),0),s=Math.max(Math.min(s,o),0),r=Math.min(r,this._bufferService.cols);const a=this._bufferService.buffer,h=a.ybase+a.y,c=Math.min(a.x,r-1),l=this._optionsService.rawOptions.cursorBlink,d=this._optionsService.rawOptions.cursorStyle,_=this._optionsService.rawOptions.cursorInactiveStyle;for(let o=i;o<=s;++o){const u=o+a.ydisp,f=this._rowElements[o],v=a.lines.get(u);if(!f||!v)break;f.replaceChildren(...this._rowFactory.createRow(v,u,u===h,d,_,c,l,this.dimensions.css.cell.width,this._widthCache,n?o===i?e:0:-1,n?(o===s?t:r)-1:-1))}}};t.DomRenderer=w=s([r(7,f.IInstantiationService),r(8,l.ICharSizeService),r(9,f.IOptionsService),r(10,f.IBufferService),r(11,l.ICoreBrowserService),r(12,l.IThemeService)],w)},3787:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.DomRendererRowFactory=void 0;const n=i(2223),o=i(643),a=i(511),h=i(2585),c=i(8055),l=i(4725),d=i(4269),_=i(6171),u=i(3734);let f=t.DomRendererRowFactory=class{constructor(e,t,i,s,r,n,o){this._document=e,this._characterJoinerService=t,this._optionsService=i,this._coreBrowserService=s,this._coreService=r,this._decorationService=n,this._themeService=o,this._workCell=new a.CellData,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(e,t,i){this._selectionStart=e,this._selectionEnd=t,this._columnSelectMode=i}createRow(e,t,i,s,r,a,h,l,_,f,p){const g=[],m=this._characterJoinerService.getJoinedCharacters(t),S=this._themeService.colors;let C,b=e.getNoBgTrimmedLength();i&&b<a+1&&(b=a+1);let w=0,y=\"\",E=0,k=0,L=0,D=!1,R=0,x=!1,A=0;const B=[],T=-1!==f&&-1!==p;for(let M=0;M<b;M++){e.loadCell(M,this._workCell);let b=this._workCell.getWidth();if(0===b)continue;let O=!1,P=M,I=this._workCell;if(m.length>0&&M===m[0][0]){O=!0;const t=m.shift();I=new d.JoinedCellData(this._workCell,e.translateToString(!0,t[0],t[1]),t[1]-t[0]),P=t[1]-1,b=I.getWidth()}const H=this._isCellInSelection(M,t),F=i&&M===a,W=T&&M>=f&&M<=p;let U=!1;this._decorationService.forEachDecorationAtCell(M,t,void 0,(e=>{U=!0}));let N=I.getChars()||o.WHITESPACE_CELL_CHAR;if(\" \"===N&&(I.isUnderline()||I.isOverline())&&(N=\" \"),A=b*l-_.get(N,I.isBold(),I.isItalic()),C){if(w&&(H&&x||!H&&!x&&I.bg===E)&&(H&&x&&S.selectionForeground||I.fg===k)&&I.extended.ext===L&&W===D&&A===R&&!F&&!O&&!U){I.isInvisible()?y+=o.WHITESPACE_CELL_CHAR:y+=N,w++;continue}w&&(C.textContent=y),C=this._document.createElement(\"span\"),w=0,y=\"\"}else C=this._document.createElement(\"span\");if(E=I.bg,k=I.fg,L=I.extended.ext,D=W,R=A,x=H,O&&a>=M&&a<=P&&(a=M),!this._coreService.isCursorHidden&&F&&this._coreService.isCursorInitialized)if(B.push(\"xterm-cursor\"),this._coreBrowserService.isFocused)h&&B.push(\"xterm-cursor-blink\"),B.push(\"bar\"===s?\"xterm-cursor-bar\":\"underline\"===s?\"xterm-cursor-underline\":\"xterm-cursor-block\");else if(r)switch(r){case\"outline\":B.push(\"xterm-cursor-outline\");break;case\"block\":B.push(\"xterm-cursor-block\");break;case\"bar\":B.push(\"xterm-cursor-bar\");break;case\"underline\":B.push(\"xterm-cursor-underline\")}if(I.isBold()&&B.push(\"xterm-bold\"),I.isItalic()&&B.push(\"xterm-italic\"),I.isDim()&&B.push(\"xterm-dim\"),y=I.isInvisible()?o.WHITESPACE_CELL_CHAR:I.getChars()||o.WHITESPACE_CELL_CHAR,I.isUnderline()&&(B.push(`xterm-underline-${I.extended.underlineStyle}`),\" \"===y&&(y=\" \"),!I.isUnderlineColorDefault()))if(I.isUnderlineColorRGB())C.style.textDecorationColor=`rgb(${u.AttributeData.toColorRGB(I.getUnderlineColor()).join(\",\")})`;else{let e=I.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&I.isBold()&&e<8&&(e+=8),C.style.textDecorationColor=S.ansi[e].css}I.isOverline()&&(B.push(\"xterm-overline\"),\" \"===y&&(y=\" \")),I.isStrikethrough()&&B.push(\"xterm-strikethrough\"),W&&(C.style.textDecoration=\"underline\");let $=I.getFgColor(),j=I.getFgColorMode(),z=I.getBgColor(),K=I.getBgColorMode();const q=!!I.isInverse();if(q){const e=$;$=z,z=e;const t=j;j=K,K=t}let V,G,X,J=!1;switch(this._decorationService.forEachDecorationAtCell(M,t,void 0,(e=>{\"top\"!==e.options.layer&&J||(e.backgroundColorRGB&&(K=50331648,z=e.backgroundColorRGB.rgba>>8&16777215,V=e.backgroundColorRGB),e.foregroundColorRGB&&(j=50331648,$=e.foregroundColorRGB.rgba>>8&16777215,G=e.foregroundColorRGB),J=\"top\"===e.options.layer)})),!J&&H&&(V=this._coreBrowserService.isFocused?S.selectionBackgroundOpaque:S.selectionInactiveBackgroundOpaque,z=V.rgba>>8&16777215,K=50331648,J=!0,S.selectionForeground&&(j=50331648,$=S.selectionForeground.rgba>>8&16777215,G=S.selectionForeground)),J&&B.push(\"xterm-decoration-top\"),K){case 16777216:case 33554432:X=S.ansi[z],B.push(`xterm-bg-${z}`);break;case 50331648:X=c.channels.toColor(z>>16,z>>8&255,255&z),this._addStyle(C,`background-color:#${v((z>>>0).toString(16),\"0\",6)}`);break;default:q?(X=S.foreground,B.push(`xterm-bg-${n.INVERTED_DEFAULT_COLOR}`)):X=S.background}switch(V||I.isDim()&&(V=c.color.multiplyOpacity(X,.5)),j){case 16777216:case 33554432:I.isBold()&&$<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&($+=8),this._applyMinimumContrast(C,X,S.ansi[$],I,V,void 0)||B.push(`xterm-fg-${$}`);break;case 50331648:const e=c.channels.toColor($>>16&255,$>>8&255,255&$);this._applyMinimumContrast(C,X,e,I,V,G)||this._addStyle(C,`color:#${v($.toString(16),\"0\",6)}`);break;default:this._applyMinimumContrast(C,X,S.foreground,I,V,G)||q&&B.push(`xterm-fg-${n.INVERTED_DEFAULT_COLOR}`)}B.length&&(C.className=B.join(\" \"),B.length=0),F||O||U?C.textContent=y:w++,A!==this.defaultSpacing&&(C.style.letterSpacing=`${A}px`),g.push(C),M=P}return C&&w&&(C.textContent=y),g}_applyMinimumContrast(e,t,i,s,r,n){if(1===this._optionsService.rawOptions.minimumContrastRatio||(0,_.treatGlyphAsBackgroundColor)(s.getCode()))return!1;const o=this._getContrastCache(s);let a;if(r||n||(a=o.getColor(t.rgba,i.rgba)),void 0===a){const e=this._optionsService.rawOptions.minimumContrastRatio/(s.isDim()?2:1);a=c.color.ensureContrastRatio(r||t,n||i,e),o.setColor((r||t).rgba,(n||i).rgba,a??null)}return!!a&&(this._addStyle(e,`color:${a.css}`),!0)}_getContrastCache(e){return e.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(e,t){e.setAttribute(\"style\",`${e.getAttribute(\"style\")||\"\"}${t};`)}_isCellInSelection(e,t){const i=this._selectionStart,s=this._selectionEnd;return!(!i||!s)&&(this._columnSelectMode?i[0]<=s[0]?e>=i[0]&&t>=i[1]&&e<s[0]&&t<=s[1]:e<i[0]&&t>=i[1]&&e>=s[0]&&t<=s[1]:t>i[1]&&t<s[1]||i[1]===s[1]&&t===i[1]&&e>=i[0]&&e<s[0]||i[1]<s[1]&&t===s[1]&&e<s[0]||i[1]<s[1]&&t===i[1]&&e>=i[0])}};function v(e,t,i){for(;e.length<i;)e=t+e;return e}t.DomRendererRowFactory=f=s([r(1,l.ICharacterJoinerService),r(2,h.IOptionsService),r(3,l.ICoreBrowserService),r(4,h.ICoreService),r(5,h.IDecorationService),r(6,l.IThemeService)],f)},2550:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WidthCache=void 0,t.WidthCache=class{constructor(e,t){this._flat=new Float32Array(256),this._font=\"\",this._fontSize=0,this._weight=\"normal\",this._weightBold=\"bold\",this._measureElements=[],this._container=e.createElement(\"div\"),this._container.classList.add(\"xterm-width-cache-measure-container\"),this._container.setAttribute(\"aria-hidden\",\"true\"),this._container.style.whiteSpace=\"pre\",this._container.style.fontKerning=\"none\";const i=e.createElement(\"span\");i.classList.add(\"xterm-char-measure-element\");const s=e.createElement(\"span\");s.classList.add(\"xterm-char-measure-element\"),s.style.fontWeight=\"bold\";const r=e.createElement(\"span\");r.classList.add(\"xterm-char-measure-element\"),r.style.fontStyle=\"italic\";const n=e.createElement(\"span\");n.classList.add(\"xterm-char-measure-element\"),n.style.fontWeight=\"bold\",n.style.fontStyle=\"italic\",this._measureElements=[i,s,r,n],this._container.appendChild(i),this._container.appendChild(s),this._container.appendChild(r),this._container.appendChild(n),t.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(e,t,i,s){e===this._font&&t===this._fontSize&&i===this._weight&&s===this._weightBold||(this._font=e,this._fontSize=t,this._weight=i,this._weightBold=s,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${i}`,this._measureElements[1].style.fontWeight=`${s}`,this._measureElements[2].style.fontWeight=`${i}`,this._measureElements[3].style.fontWeight=`${s}`,this.clear())}get(e,t,i){let s=0;if(!t&&!i&&1===e.length&&(s=e.charCodeAt(0))<256){if(-9999!==this._flat[s])return this._flat[s];const t=this._measure(e,0);return t>0&&(this._flat[s]=t),t}let r=e;t&&(r+=\"B\"),i&&(r+=\"I\");let n=this._holey.get(r);if(void 0===n){let s=0;t&&(s|=1),i&&(s|=2),n=this._measure(e,s),n>0&&this._holey.set(r,n)}return n}_measure(e,t){const i=this._measureElements[t];return i.textContent=e.repeat(32),i.offsetWidth/32}}},2223:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(6114);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?\"bottom\":\"ideographic\"},6171:(e,t)=>{function i(e){return 57508<=e&&e<=57558}function s(e){return e>=128512&&e<=128591||e>=127744&&e<=128511||e>=128640&&e<=128767||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=129280&&e<=129535||e>=127462&&e<=127487}Object.defineProperty(t,\"__esModule\",{value:!0}),t.computeNextVariantOffset=t.createRenderDimensions=t.treatGlyphAsBackgroundColor=t.allowRescaling=t.isEmoji=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error(\"value must not be falsy\");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.isEmoji=s,t.allowRescaling=function(e,t,r,n){return 1===t&&r>Math.ceil(1.5*n)&&void 0!==e&&e>255&&!s(e)&&!i(e)&&!function(e){return 57344<=e&&e<=63743}(e)},t.treatGlyphAsBackgroundColor=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}},t.computeNextVariantOffset=function(e,t,i=0){return(e-(2*Math.round(t)-i))%(2*Math.round(t))}},6052:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.createSelectionRenderModel=void 0;class i{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,i,s=!1){if(this.selectionStart=t,this.selectionEnd=i,!t||!i||t[0]===i[0]&&t[1]===i[1])return void this.clear();const r=e.buffers.active.ydisp,n=t[1]-r,o=i[1]-r,a=Math.max(n,0),h=Math.min(o,e.rows-1);a>=e.rows||h<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=s,this.viewportStartRow=n,this.viewportEndRow=o,this.viewportCappedStartRow=a,this.viewportCappedEndRow=h,this.startCol=t[0],this.endCol=i[0])}isCellSelected(e,t,i){return!!this.hasSelection&&(i-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&i>=this.viewportCappedStartRow&&t<this.endCol&&i<=this.viewportCappedEndRow:t<this.startCol&&i>=this.viewportCappedStartRow&&t>=this.endCol&&i<=this.viewportCappedEndRow:i>this.viewportStartRow&&i<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&i===this.viewportStartRow&&t>=this.startCol&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&i===this.viewportEndRow&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&i===this.viewportStartRow&&t>=this.startCol)}}t.createSelectionRenderModel=function(){return new i}},456:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.SelectionModel=void 0,t.SelectionModel=class{constructor(e){this._bufferService=e,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?e%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)-1]:[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[Math.max(e,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){const e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])}handleTrim(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharSizeService=void 0;const n=i(2585),o=i(8460),a=i(844);let h=t.CharSizeService=class extends a.Disposable{get hasValidSize(){return this.width>0&&this.height>0}constructor(e,t,i){super(),this._optionsService=i,this.width=0,this.height=0,this._onCharSizeChange=this.register(new o.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this.register(new d(this._optionsService))}catch{this._measureStrategy=this.register(new l(e,t,this._optionsService))}this.register(this._optionsService.onMultipleOptionChange([\"fontFamily\",\"fontSize\"],(()=>this.measure())))}measure(){const e=this._measureStrategy.measure();e.width===this.width&&e.height===this.height||(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};t.CharSizeService=h=s([r(2,n.IOptionsService)],h);class c extends a.Disposable{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(e,t){void 0!==e&&e>0&&void 0!==t&&t>0&&(this._result.width=e,this._result.height=t)}}class l extends c{constructor(e,t,i){super(),this._document=e,this._parentElement=t,this._optionsService=i,this._measureElement=this._document.createElement(\"span\"),this._measureElement.classList.add(\"xterm-char-measure-element\"),this._measureElement.textContent=\"W\".repeat(32),this._measureElement.setAttribute(\"aria-hidden\",\"true\"),this._measureElement.style.whiteSpace=\"pre\",this._measureElement.style.fontKerning=\"none\",this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}}class d extends c{constructor(e){super(),this._optionsService=e,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext(\"2d\");const t=this._ctx.measureText(\"W\");if(!(\"width\"in t&&\"fontBoundingBoxAscent\"in t&&\"fontBoundingBoxDescent\"in t))throw new Error(\"Required font metrics not supported\")}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;const e=this._ctx.measureText(\"W\");return this._validateAndSet(e.width,e.fontBoundingBoxAscent+e.fontBoundingBoxDescent),this._result}}},4269:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharacterJoinerService=t.JoinedCellData=void 0;const n=i(3734),o=i(643),a=i(511),h=i(2585);class c extends n.AttributeData{constructor(e,t,i){super(),this.content=0,this.combinedData=\"\",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=i}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error(\"not implemented\")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.JoinedCellData=c;let l=t.CharacterJoinerService=class e{constructor(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new a.CellData}register(e){const t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id}deregister(e){for(let t=0;t<this._characterJoiners.length;t++)if(this._characterJoiners[t].id===e)return this._characterJoiners.splice(t,1),!0;return!1}getJoinedCharacters(e){if(0===this._characterJoiners.length)return[];const t=this._bufferService.buffer.lines.get(e);if(!t||0===t.length)return[];const i=[],s=t.translateToString(!0);let r=0,n=0,a=0,h=t.getFg(0),c=t.getBg(0);for(let e=0;e<t.getTrimmedLength();e++)if(t.loadCell(e,this._workCell),0!==this._workCell.getWidth()){if(this._workCell.fg!==h||this._workCell.bg!==c){if(e-r>1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t<e.length;t++)i.push(e[t])}r=e,a=n,h=this._workCell.fg,c=this._workCell.bg}n+=this._workCell.getChars().length||o.WHITESPACE_CELL_CHAR.length}if(this._bufferService.cols-r>1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t<e.length;t++)i.push(e[t])}return i}_getJoinedRanges(t,i,s,r,n){const o=t.substring(i,s);let a=[];try{a=this._characterJoiners[0].handler(o)}catch(e){console.error(e)}for(let t=1;t<this._characterJoiners.length;t++)try{const i=this._characterJoiners[t].handler(o);for(let t=0;t<i.length;t++)e._mergeRanges(a,i[t])}catch(e){console.error(e)}return this._stringRangesToCellRanges(a,r,n),a}_stringRangesToCellRanges(e,t,i){let s=0,r=!1,n=0,a=e[s];if(a){for(let h=i;h<this._bufferService.cols;h++){const i=t.getWidth(h),c=t.getString(h).length||o.WHITESPACE_CELL_CHAR.length;if(0!==i){if(!r&&a[0]<=n&&(a[0]=h,r=!0),a[1]<=n){if(a[1]=h,a=e[++s],!a)break;a[0]<=n?(a[0]=h,r=!0):r=!1}n+=c}}a&&(a[1]=this._bufferService.cols)}}static _mergeRanges(e,t){let i=!1;for(let s=0;s<e.length;s++){const r=e[s];if(i){if(t[1]<=r[0])return e[s-1][1]=t[1],e;if(t[1]<=r[1])return e[s-1][1]=Math.max(t[1],r[1]),e.splice(s,1),e;e.splice(s,1),s--}else{if(t[1]<=r[0])return e.splice(s,0,t),e;if(t[1]<=r[1])return r[0]=Math.min(t[0],r[0]),e;t[0]<r[1]&&(r[0]=Math.min(t[0],r[0]),i=!0)}}return i?e[e.length-1][1]=t[1]:e.push(t),e}};t.CharacterJoinerService=l=s([r(0,h.IBufferService)],l)},5114:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreBrowserService=void 0;const s=i(844),r=i(8460),n=i(3656);class o extends s.Disposable{constructor(e,t,i){super(),this._textarea=e,this._window=t,this.mainDocument=i,this._isFocused=!1,this._cachedIsFocused=void 0,this._screenDprMonitor=new a(this._window),this._onDprChange=this.register(new r.EventEmitter),this.onDprChange=this._onDprChange.event,this._onWindowChange=this.register(new r.EventEmitter),this.onWindowChange=this._onWindowChange.event,this.register(this.onWindowChange((e=>this._screenDprMonitor.setWindow(e)))),this.register((0,r.forwardEvent)(this._screenDprMonitor.onDprChange,this._onDprChange)),this._textarea.addEventListener(\"focus\",(()=>this._isFocused=!0)),this._textarea.addEventListener(\"blur\",(()=>this._isFocused=!1))}get window(){return this._window}set window(e){this._window!==e&&(this._window=e,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return void 0===this._cachedIsFocused&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask((()=>this._cachedIsFocused=void 0))),this._cachedIsFocused}}t.CoreBrowserService=o;class a extends s.Disposable{constructor(e){super(),this._parentWindow=e,this._windowResizeListener=this.register(new s.MutableDisposable),this._onDprChange=this.register(new r.EventEmitter),this.onDprChange=this._onDprChange.event,this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this.register((0,s.toDisposable)((()=>this.clearListener())))}setWindow(e){this._parentWindow=e,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=(0,n.addDisposableDomListener)(this._parentWindow,\"resize\",(()=>this._setDprAndFireIfDiffers()))}_setDprAndFireIfDiffers(){this._parentWindow.devicePixelRatio!==this._currentDevicePixelRatio&&this._onDprChange.fire(this._parentWindow.devicePixelRatio),this._updateDpr()}_updateDpr(){this._outerListener&&(this._resolutionMediaMatchList?.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._outerListener=void 0)}}},779:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.LinkProviderService=void 0;const s=i(844);class r extends s.Disposable{constructor(){super(),this.linkProviders=[],this.register((0,s.toDisposable)((()=>this.linkProviders.length=0)))}registerLinkProvider(e){return this.linkProviders.push(e),{dispose:()=>{const t=this.linkProviders.indexOf(e);-1!==t&&this.linkProviders.splice(t,1)}}}}t.LinkProviderService=r},8934:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.MouseService=void 0;const n=i(4725),o=i(9806);let a=t.MouseService=class{constructor(e,t){this._renderService=e,this._charSizeService=t}getCoords(e,t,i,s,r){return(0,o.getCoords)(window,e,t,i,s,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,r)}getMouseReportCoords(e,t){const i=(0,o.getCoordsRelativeToElement)(window,e,t);if(this._charSizeService.hasValidSize)return i[0]=Math.min(Math.max(i[0],0),this._renderService.dimensions.css.canvas.width-1),i[1]=Math.min(Math.max(i[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(i[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(i[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(i[0]),y:Math.floor(i[1])}}};t.MouseService=a=s([r(0,n.IRenderService),r(1,n.ICharSizeService)],a)},3230:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.RenderService=void 0;const n=i(6193),o=i(4725),a=i(8460),h=i(844),c=i(7226),l=i(2585);let d=t.RenderService=class extends h.Disposable{get dimensions(){return this._renderer.value.dimensions}constructor(e,t,i,s,r,o,l,d){super(),this._rowCount=e,this._charSizeService=s,this._renderer=this.register(new h.MutableDisposable),this._pausedResizeTask=new c.DebouncedIdleTask,this._observerDisposable=this.register(new h.MutableDisposable),this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this.register(new a.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new a.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new a.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new a.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new n.RenderDebouncer(((e,t)=>this._renderRows(e,t)),l),this.register(this._renderDebouncer),this.register(l.onDprChange((()=>this.handleDevicePixelRatioChange()))),this.register(o.onResize((()=>this._fullRefresh()))),this.register(o.buffers.onBufferActivate((()=>this._renderer.value?.clear()))),this.register(i.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._charSizeService.onCharSizeChange((()=>this.handleCharSizeChanged()))),this.register(r.onDecorationRegistered((()=>this._fullRefresh()))),this.register(r.onDecorationRemoved((()=>this._fullRefresh()))),this.register(i.onMultipleOptionChange([\"customGlyphs\",\"drawBoldTextInBrightColors\",\"letterSpacing\",\"lineHeight\",\"fontFamily\",\"fontSize\",\"fontWeight\",\"fontWeightBold\",\"minimumContrastRatio\",\"rescaleOverlappingGlyphs\"],(()=>{this.clear(),this.handleResize(o.cols,o.rows),this._fullRefresh()}))),this.register(i.onMultipleOptionChange([\"cursorBlink\",\"cursorStyle\"],(()=>this.refreshRows(o.buffer.y,o.buffer.y,!0)))),this.register(d.onChangeColors((()=>this._fullRefresh()))),this._registerIntersectionObserver(l.window,t),this.register(l.onWindowChange((e=>this._registerIntersectionObserver(e,t))))}_registerIntersectionObserver(e,t){if(\"IntersectionObserver\"in e){const i=new e.IntersectionObserver((e=>this._handleIntersectionChange(e[e.length-1])),{threshold:0});i.observe(t),this._observerDisposable.value=(0,h.toDisposable)((()=>i.disconnect()))}}_handleIntersectionChange(e){this._isPaused=void 0===e.isIntersecting?0===e.intersectionRatio:!e.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(e,t,i=!1){this._isPaused?this._needsFullRefresh=!0:(i||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(e,t,this._rowCount))}_renderRows(e,t){this._renderer.value&&(e=Math.min(e,this._rowCount-1),t=Math.min(t,this._rowCount-1),this._renderer.value.renderRows(e,t),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:e,end:t}),this._onRender.fire({start:e,end:t}),this._isNextRenderRedrawOnly=!0)}resize(e,t){this._rowCount=t,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(e){this._renderer.value=e,this._renderer.value&&(this._renderer.value.onRequestRedraw((e=>this.refreshRows(e.start,e.end,!0))),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(e){return this._renderDebouncer.addRefreshCallback(e)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(e,t){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set((()=>this._renderer.value?.handleResize(e,t))):this._renderer.value.handleResize(e,t),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(e,t,i){this._selectionState.start=e,this._selectionState.end=t,this._selectionState.columnSelectMode=i,this._renderer.value?.handleSelectionChanged(e,t,i)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};t.RenderService=d=s([r(2,l.IOptionsService),r(3,o.ICharSizeService),r(4,l.IDecorationService),r(5,l.IBufferService),r(6,o.ICoreBrowserService),r(7,o.IThemeService)],d)},9312:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.SelectionService=void 0;const n=i(9806),o=i(9504),a=i(456),h=i(4725),c=i(8460),l=i(844),d=i(6114),_=i(4841),u=i(511),f=i(2585),v=String.fromCharCode(160),p=new RegExp(v,\"g\");let g=t.SelectionService=class extends l.Disposable{constructor(e,t,i,s,r,n,o,h,d){super(),this._element=e,this._screenElement=t,this._linkifier=i,this._bufferService=s,this._coreService=r,this._mouseService=n,this._optionsService=o,this._renderService=h,this._coreBrowserService=d,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new u.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new c.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new c.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new c.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new c.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=e=>this._handleMouseMove(e),this._mouseUpListener=e=>this._handleMouseUp(e),this._coreService.onUserInput((()=>{this.hasSelection&&this.clearSelection()})),this._trimListener=this._bufferService.buffer.lines.onTrim((e=>this._handleTrim(e))),this.register(this._bufferService.buffers.onBufferActivate((e=>this._handleBufferActivate(e)))),this.enable(),this._model=new a.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,l.toDisposable)((()=>{this._removeMouseDownListeners()})))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t||e[0]===t[0]&&e[1]===t[1])}get selectionText(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return\"\";const i=this._bufferService.buffer,s=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return\"\";const r=e[0]<t[0]?e[0]:t[0],n=e[0]<t[0]?t[0]:e[0];for(let o=e[1];o<=t[1];o++){const e=i.translateBufferLineToString(o,!0,r,n);s.push(e)}}else{const r=e[1]===t[1]?t[0]:void 0;s.push(i.translateBufferLineToString(e[1],!0,e[0],r));for(let r=e[1]+1;r<=t[1]-1;r++){const e=i.lines.get(r),t=i.translateBufferLineToString(r,!0);e?.isWrapped?s[s.length-1]+=t:s.push(t)}if(e[1]!==t[1]){const e=i.lines.get(t[1]),r=i.translateBufferLineToString(t[1],!0,0,t[0]);e&&e.isWrapped?s[s.length-1]+=r:s.push(r)}}return s.map((e=>e.replace(p,\" \"))).join(d.isWindows?\"\\r\\n\":\"\\n\")}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._refresh()))),d.isLinux&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})}_isClickInSelection(e){const t=this._getMouseBufferCoords(e),i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!!(i&&s&&t)&&this._areCoordsInSelection(t,i,s)}isCellInSelection(e,t){const i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!(!i||!s)&&this._areCoordsInSelection([e,t],i,s)}_areCoordsInSelection(e,t,i){return e[1]>t[1]&&e[1]<i[1]||t[1]===i[1]&&e[1]===t[1]&&e[0]>=t[0]&&e[0]<i[0]||t[1]<i[1]&&e[1]===i[1]&&e[0]<i[0]||t[1]<i[1]&&e[1]===t[1]&&e[0]>=t[0]}_selectWordAtCursor(e,t){const i=this._linkifier.currentLink?.link?.range;if(i)return this._model.selectionStart=[i.start.x-1,i.start.y-1],this._model.selectionStartLength=(0,_.getRangeLength)(i,this._bufferService.cols),this._model.selectionEnd=void 0,!0;const s=this._getMouseBufferCoords(e);return!!s&&(this._selectWordAt(s,t),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){const t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=(0,n.getCoordsRelativeToElement)(this._coreBrowserService.window,e,this._screenElement)[1];const i=this._renderService.dimensions.css.canvas.height;return t>=0&&t<=i?0:(t>i&&(t-=i),t=Math.min(Math.max(t,-50),50),t/=50,t/Math.abs(t)+Math.round(14*t))}shouldForceSelection(e){return d.isMac?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):1===e.detail?this._handleSingleClick(e):2===e.detail?this._handleDoubleClick(e):3===e.detail&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener(\"mousemove\",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener(\"mouseup\",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval((()=>this._dragScroll()),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener(\"mousemove\",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener(\"mouseup\",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;const t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&0===t.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){const t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(d.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;const t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd)return void this.refresh(!0);2===this._activeSelectionMode?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:1===this._activeSelectionMode&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(e),3!==this._activeSelectionMode&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));const i=this._bufferService.buffer;if(this._model.selectionEnd[1]<i.lines.length){const e=i.lines.get(this._model.selectionEnd[1]);e&&0===e.hasWidth(this._model.selectionEnd[0])&&this._model.selectionEnd[0]<this._bufferService.cols&&this._model.selectionEnd[0]++}t&&t[0]===this._model.selectionEnd[0]&&t[1]===this._model.selectionEnd[1]||this.refresh(!0)}_dragScroll(){if(this._model.selectionEnd&&this._model.selectionStart&&this._dragScrollAmount){this._onRequestScrollLines.fire({amount:this._dragScrollAmount,suppressScrollEvent:!1});const e=this._bufferService.buffer;this._dragScrollAmount>0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){const t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){const t=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(t&&void 0!==t[0]&&void 0!==t[1]){const e=(0,o.moveToCellSequence)(t[0]-1,t[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(e,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd,i=!(!e||!t||e[0]===t[0]&&e[1]===t[1]);i?e&&t&&(this._oldSelectionStart&&this._oldSelectionEnd&&e[0]===this._oldSelectionStart[0]&&e[1]===this._oldSelectionStart[1]&&t[0]===this._oldSelectionEnd[0]&&t[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(e,t,i)):this._oldHasSelection&&this._fireOnSelectionChange(e,t,i)}_fireOnSelectionChange(e,t,i){this._oldSelectionStart=e,this._oldSelectionEnd=t,this._oldHasSelection=i,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim((e=>this._handleTrim(e)))}_convertViewportColToCharacterIndex(e,t){let i=t;for(let s=0;t>=s;s++){const r=e.loadCell(s,this._workCell).getChars().length;0===this._workCell.getWidth()?i--:r>1&&t!==s&&(i+=r-1)}return i}setSelection(e,t,i){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=i,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,i=!0,s=!0){if(e[0]>=this._bufferService.cols)return;const r=this._bufferService.buffer,n=r.lines.get(e[1]);if(!n)return;const o=r.translateBufferLineToString(e[1],!1);let a=this._convertViewportColToCharacterIndex(n,e[0]),h=a;const c=e[0]-a;let l=0,d=0,_=0,u=0;if(\" \"===o.charAt(a)){for(;a>0&&\" \"===o.charAt(a-1);)a--;for(;h<o.length&&\" \"===o.charAt(h+1);)h++}else{let t=e[0],i=e[0];0===n.getWidth(t)&&(l++,t--),2===n.getWidth(i)&&(d++,i++);const s=n.getString(i).length;for(s>1&&(u+=s-1,h+=s-1);t>0&&a>0&&!this._isCharWordSeparator(n.loadCell(t-1,this._workCell));){n.loadCell(t-1,this._workCell);const e=this._workCell.getChars().length;0===this._workCell.getWidth()?(l++,t--):e>1&&(_+=e-1,a-=e-1),a--,t--}for(;i<n.length&&h+1<o.length&&!this._isCharWordSeparator(n.loadCell(i+1,this._workCell));){n.loadCell(i+1,this._workCell);const e=this._workCell.getChars().length;2===this._workCell.getWidth()?(d++,i++):e>1&&(u+=e-1,h+=e-1),h++,i++}}h++;let f=a+c-l+_,v=Math.min(this._bufferService.cols,h-a+l+d-_-u);if(t||\"\"!==o.slice(a,h).trim()){if(i&&0===f&&32!==n.getCodePoint(0)){const t=r.lines.get(e[1]-1);if(t&&n.isWrapped&&32!==t.getCodePoint(this._bufferService.cols-1)){const t=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(t){const e=this._bufferService.cols-t.start;f-=e,v+=e}}}if(s&&f+v===this._bufferService.cols&&32!==n.getCodePoint(this._bufferService.cols-1)){const t=r.lines.get(e[1]+1);if(t?.isWrapped&&32!==t.getCodePoint(0)){const t=this._getWordAt([0,e[1]+1],!1,!1,!0);t&&(v+=t.length)}}return{start:f,length:v}}}_selectWordAt(e,t){const i=this._getWordAt(e,t);if(i){for(;i.start<0;)i.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[i.start,e[1]],this._model.selectionStartLength=i.length}}_selectToWordAt(e){const t=this._getWordAt(e,!0);if(t){let i=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,i--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,i++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,i]}}_isCharWordSeparator(e){return 0!==e.getWidth()&&this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){const t=this._bufferService.buffer.getWrappedRangeForLine(e),i={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,_.getRangeLength)(i,this._bufferService.cols)}};t.SelectionService=g=s([r(3,f.IBufferService),r(4,f.ICoreService),r(5,h.IMouseService),r(6,f.IOptionsService),r(7,h.IRenderService),r(8,h.ICoreBrowserService)],g)},4725:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ILinkProviderService=t.IThemeService=t.ICharacterJoinerService=t.ISelectionService=t.IRenderService=t.IMouseService=t.ICoreBrowserService=t.ICharSizeService=void 0;const s=i(8343);t.ICharSizeService=(0,s.createDecorator)(\"CharSizeService\"),t.ICoreBrowserService=(0,s.createDecorator)(\"CoreBrowserService\"),t.IMouseService=(0,s.createDecorator)(\"MouseService\"),t.IRenderService=(0,s.createDecorator)(\"RenderService\"),t.ISelectionService=(0,s.createDecorator)(\"SelectionService\"),t.ICharacterJoinerService=(0,s.createDecorator)(\"CharacterJoinerService\"),t.IThemeService=(0,s.createDecorator)(\"ThemeService\"),t.ILinkProviderService=(0,s.createDecorator)(\"LinkProviderService\")},6731:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.ThemeService=t.DEFAULT_ANSI_COLORS=void 0;const n=i(7239),o=i(8055),a=i(8460),h=i(844),c=i(2585),l=o.css.toColor(\"#ffffff\"),d=o.css.toColor(\"#000000\"),_=o.css.toColor(\"#ffffff\"),u=o.css.toColor(\"#000000\"),f={css:\"rgba(255, 255, 255, 0.3)\",rgba:4294967117};t.DEFAULT_ANSI_COLORS=Object.freeze((()=>{const e=[o.css.toColor(\"#2e3436\"),o.css.toColor(\"#cc0000\"),o.css.toColor(\"#4e9a06\"),o.css.toColor(\"#c4a000\"),o.css.toColor(\"#3465a4\"),o.css.toColor(\"#75507b\"),o.css.toColor(\"#06989a\"),o.css.toColor(\"#d3d7cf\"),o.css.toColor(\"#555753\"),o.css.toColor(\"#ef2929\"),o.css.toColor(\"#8ae234\"),o.css.toColor(\"#fce94f\"),o.css.toColor(\"#729fcf\"),o.css.toColor(\"#ad7fa8\"),o.css.toColor(\"#34e2e2\"),o.css.toColor(\"#eeeeec\")],t=[0,95,135,175,215,255];for(let i=0;i<216;i++){const s=t[i/36%6|0],r=t[i/6%6|0],n=t[i%6];e.push({css:o.channels.toCss(s,r,n),rgba:o.channels.toRgba(s,r,n)})}for(let t=0;t<24;t++){const i=8+10*t;e.push({css:o.channels.toCss(i,i,i),rgba:o.channels.toRgba(i,i,i)})}return e})());let v=t.ThemeService=class extends h.Disposable{get colors(){return this._colors}constructor(e){super(),this._optionsService=e,this._contrastCache=new n.ColorContrastCache,this._halfContrastCache=new n.ColorContrastCache,this._onChangeColors=this.register(new a.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:l,background:d,cursor:_,cursorAccent:u,selectionForeground:void 0,selectionBackgroundTransparent:f,selectionBackgroundOpaque:o.color.blend(d,f),selectionInactiveBackgroundTransparent:f,selectionInactiveBackgroundOpaque:o.color.blend(d,f),ansi:t.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this.register(this._optionsService.onSpecificOptionChange(\"minimumContrastRatio\",(()=>this._contrastCache.clear()))),this.register(this._optionsService.onSpecificOptionChange(\"theme\",(()=>this._setTheme(this._optionsService.rawOptions.theme))))}_setTheme(e={}){const i=this._colors;if(i.foreground=p(e.foreground,l),i.background=p(e.background,d),i.cursor=p(e.cursor,_),i.cursorAccent=p(e.cursorAccent,u),i.selectionBackgroundTransparent=p(e.selectionBackground,f),i.selectionBackgroundOpaque=o.color.blend(i.background,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundTransparent=p(e.selectionInactiveBackground,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundOpaque=o.color.blend(i.background,i.selectionInactiveBackgroundTransparent),i.selectionForeground=e.selectionForeground?p(e.selectionForeground,o.NULL_COLOR):void 0,i.selectionForeground===o.NULL_COLOR&&(i.selectionForeground=void 0),o.color.isOpaque(i.selectionBackgroundTransparent)){const e=.3;i.selectionBackgroundTransparent=o.color.opacity(i.selectionBackgroundTransparent,e)}if(o.color.isOpaque(i.selectionInactiveBackgroundTransparent)){const e=.3;i.selectionInactiveBackgroundTransparent=o.color.opacity(i.selectionInactiveBackgroundTransparent,e)}if(i.ansi=t.DEFAULT_ANSI_COLORS.slice(),i.ansi[0]=p(e.black,t.DEFAULT_ANSI_COLORS[0]),i.ansi[1]=p(e.red,t.DEFAULT_ANSI_COLORS[1]),i.ansi[2]=p(e.green,t.DEFAULT_ANSI_COLORS[2]),i.ansi[3]=p(e.yellow,t.DEFAULT_ANSI_COLORS[3]),i.ansi[4]=p(e.blue,t.DEFAULT_ANSI_COLORS[4]),i.ansi[5]=p(e.magenta,t.DEFAULT_ANSI_COLORS[5]),i.ansi[6]=p(e.cyan,t.DEFAULT_ANSI_COLORS[6]),i.ansi[7]=p(e.white,t.DEFAULT_ANSI_COLORS[7]),i.ansi[8]=p(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),i.ansi[9]=p(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),i.ansi[10]=p(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),i.ansi[11]=p(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),i.ansi[12]=p(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),i.ansi[13]=p(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),i.ansi[14]=p(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),i.ansi[15]=p(e.brightWhite,t.DEFAULT_ANSI_COLORS[15]),e.extendedAnsi){const s=Math.min(i.ansi.length-16,e.extendedAnsi.length);for(let r=0;r<s;r++)i.ansi[r+16]=p(e.extendedAnsi[r],t.DEFAULT_ANSI_COLORS[r+16])}this._contrastCache.clear(),this._halfContrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(e){this._restoreColor(e),this._onChangeColors.fire(this.colors)}_restoreColor(e){if(void 0!==e)switch(e){case 256:this._colors.foreground=this._restoreColors.foreground;break;case 257:this._colors.background=this._restoreColors.background;break;case 258:this._colors.cursor=this._restoreColors.cursor;break;default:this._colors.ansi[e]=this._restoreColors.ansi[e]}else for(let e=0;e<this._restoreColors.ansi.length;++e)this._colors.ansi[e]=this._restoreColors.ansi[e]}modifyColors(e){e(this._colors),this._onChangeColors.fire(this.colors)}_updateRestoreColors(){this._restoreColors={foreground:this._colors.foreground,background:this._colors.background,cursor:this._colors.cursor,ansi:this._colors.ansi.slice()}}};function p(e,t){if(void 0!==e)try{return o.css.toColor(e)}catch{}return t}t.ThemeService=v=s([r(0,c.IOptionsService)],v)},6349:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CircularList=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this.register(new s.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new s.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new s.EventEmitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;const t=new Array(e);for(let i=0;i<Math.min(e,this.length);i++)t[i]=this._array[this._getCyclicIndex(i)];this._array=t,this._maxLength=e,this._startIndex=0}get length(){return this._length}set length(e){if(e>this._length)for(let t=this._length;t<e;t++)this._array[t]=void 0;this._length=e}get(e){return this._array[this._getCyclicIndex(e)]}set(e,t){this._array[this._getCyclicIndex(e)]=t}push(e){this._array[this._getCyclicIndex(this._length)]=e,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw new Error(\"Can only recycle when the buffer is full\");return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(e,t,...i){if(t){for(let i=e;i<this._length-t;i++)this._array[this._getCyclicIndex(i)]=this._array[this._getCyclicIndex(i+t)];this._length-=t,this.onDeleteEmitter.fire({index:e,amount:t})}for(let t=this._length-1;t>=e;t--)this._array[this._getCyclicIndex(t+i.length)]=this._array[this._getCyclicIndex(t)];for(let t=0;t<i.length;t++)this._array[this._getCyclicIndex(e+t)]=i[t];if(i.length&&this.onInsertEmitter.fire({index:e,amount:i.length}),this._length+i.length>this._maxLength){const e=this._length+i.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=i.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,i){if(!(t<=0)){if(e<0||e>=this._length)throw new Error(\"start argument out of range\");if(e+i<0)throw new Error(\"Cannot shift elements in list beyond index 0\");if(i>0){for(let s=t-1;s>=0;s--)this.set(e+s+i,this.get(e+s));const s=e+t+i-this._length;if(s>0)for(this._length+=s;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let s=0;s<t;s++)this.set(e+s+i,this.get(e+s))}}_getCyclicIndex(e){return(this._startIndex+e)%this._maxLength}}t.CircularList=n},1439:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.clone=void 0,t.clone=function e(t,i=5){if(\"object\"!=typeof t)return t;const s=Array.isArray(t)?[]:{};for(const r in t)s[r]=i<=1?t[r]:t[r]&&e(t[r],i-1);return s}},8055:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;let i=0,s=0,r=0,n=0;var o,a,h,c,l;function d(e){const t=e.toString(16);return t.length<2?\"0\"+t:t}function _(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}t.NULL_COLOR={css:\"#00000000\",rgba:0},function(e){e.toCss=function(e,t,i,s){return void 0!==s?`#${d(e)}${d(t)}${d(i)}${d(s)}`:`#${d(e)}${d(t)}${d(i)}`},e.toRgba=function(e,t,i,s=255){return(e<<24|t<<16|i<<8|s)>>>0},e.toColor=function(t,i,s,r){return{css:e.toCss(t,i,s,r),rgba:e.toRgba(t,i,s,r)}}}(o||(t.channels=o={})),function(e){function t(e,t){return n=Math.round(255*t),[i,s,r]=l.toChannels(e.rgba),{css:o.toCss(i,s,r,n),rgba:o.toRgba(i,s,r,n)}}e.blend=function(e,t){if(n=(255&t.rgba)/255,1===n)return{css:t.css,rgba:t.rgba};const a=t.rgba>>24&255,h=t.rgba>>16&255,c=t.rgba>>8&255,l=e.rgba>>24&255,d=e.rgba>>16&255,_=e.rgba>>8&255;return i=l+Math.round((a-l)*n),s=d+Math.round((h-d)*n),r=_+Math.round((c-_)*n),{css:o.toCss(i,s,r),rgba:o.toRgba(i,s,r)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=l.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return o.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0;return[i,s,r]=l.toChannels(t),{css:o.toCss(i,s,r),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return n=255&e.rgba,t(e,n*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(a||(t.color=a={})),function(e){let t,a;try{const e=document.createElement(\"canvas\");e.width=1,e.height=1;const i=e.getContext(\"2d\",{willReadFrequently:!0});i&&(t=i,t.globalCompositeOperation=\"copy\",a=t.createLinearGradient(0,0,1,1))}catch{}e.toColor=function(e){if(e.match(/#[\\da-f]{3,8}/i))switch(e.length){case 4:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),o.toColor(i,s,r);case 5:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),n=parseInt(e.slice(4,5).repeat(2),16),o.toColor(i,s,r,n);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const h=e.match(/rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(,\\s*(0|1|\\d?\\.(\\d+))\\s*)?\\)/);if(h)return i=parseInt(h[1]),s=parseInt(h[2]),r=parseInt(h[3]),n=Math.round(255*(void 0===h[5]?1:parseFloat(h[5]))),o.toColor(i,s,r,n);if(!t||!a)throw new Error(\"css.toColor: Unsupported css format\");if(t.fillStyle=a,t.fillStyle=e,\"string\"!=typeof t.fillStyle)throw new Error(\"css.toColor: Unsupported css format\");if(t.fillRect(0,0,1,1),[i,s,r,n]=t.getImageData(0,0,1,1).data,255!==n)throw new Error(\"css.toColor: Unsupported css format\");return{rgba:o.toRgba(i,s,r,n),css:e}}}(h||(t.css=h={})),function(e){function t(e,t,i){const s=e/255,r=t/255,n=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(c||(t.rgb=c={})),function(e){function t(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l<i&&(o>0||a>0||h>0);)o-=Math.max(0,Math.ceil(.1*o)),a-=Math.max(0,Math.ceil(.1*a)),h-=Math.max(0,Math.ceil(.1*h)),l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}function a(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l<i&&(o<255||a<255||h<255);)o=Math.min(255,o+Math.ceil(.1*(255-o))),a=Math.min(255,a+Math.ceil(.1*(255-a))),h=Math.min(255,h+Math.ceil(.1*(255-h))),l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}e.blend=function(e,t){if(n=(255&t)/255,1===n)return t;const a=t>>24&255,h=t>>16&255,c=t>>8&255,l=e>>24&255,d=e>>16&255,_=e>>8&255;return i=l+Math.round((a-l)*n),s=d+Math.round((h-d)*n),r=_+Math.round((c-_)*n),o.toRgba(i,s,r)},e.ensureContrastRatio=function(e,i,s){const r=c.relativeLuminance(e>>8),n=c.relativeLuminance(i>>8);if(_(r,n)<s){if(n<r){const n=t(e,i,s),o=_(r,c.relativeLuminance(n>>8));if(o<s){const t=a(e,i,s);return o>_(r,c.relativeLuminance(t>>8))?n:t}return n}const o=a(e,i,s),h=_(r,c.relativeLuminance(o>>8));if(h<s){const n=t(e,i,s);return h>_(r,c.relativeLuminance(n>>8))?o:n}return o}},e.reduceLuminance=t,e.increaseLuminance=a,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}}(l||(t.rgba=l={})),t.toPaddedHex=d,t.contrastRatio=_},8969:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreTerminal=void 0;const s=i(844),r=i(2585),n=i(4348),o=i(7866),a=i(744),h=i(7302),c=i(6975),l=i(8460),d=i(1753),_=i(1480),u=i(7994),f=i(9282),v=i(5435),p=i(5981),g=i(2660);let m=!1;class S extends s.Disposable{get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new l.EventEmitter),this._onScroll.event((e=>{this._onScrollApi?.fire(e.position)}))),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(const t in e)this.optionsService.options[t]=e[t]}constructor(e){super(),this._windowsWrappingHeuristics=this.register(new s.MutableDisposable),this._onBinary=this.register(new l.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new l.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new l.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new l.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new l.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new l.EventEmitter),this._instantiationService=new n.InstantiationService,this.optionsService=this.register(new h.OptionsService(e)),this._instantiationService.setService(r.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(a.BufferService)),this._instantiationService.setService(r.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(o.LogService)),this._instantiationService.setService(r.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(c.CoreService)),this._instantiationService.setService(r.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(d.CoreMouseService)),this._instantiationService.setService(r.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(_.UnicodeService)),this._instantiationService.setService(r.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(u.CharsetService),this._instantiationService.setService(r.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(g.OscLinkService),this._instantiationService.setService(r.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new v.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,l.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,l.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,l.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,l.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.coreService.onRequestScrollToBottom((()=>this.scrollToBottom()))),this.register(this.coreService.onUserInput((()=>this._writeBuffer.handleUserInput()))),this.register(this.optionsService.onMultipleOptionChange([\"windowsMode\",\"windowsPty\"],(()=>this._handleWindowsPtyOptionChange()))),this.register(this._bufferService.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this.register(this._inputHandler.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this._writeBuffer=this.register(new p.WriteBuffer(((e,t)=>this._inputHandler.parse(e,t)))),this.register((0,l.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed))}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=r.LogLevelEnum.WARN&&!m&&(this._logService.warn(\"writeSync is unreliable and will be removed soon.\"),m=!0),this._writeBuffer.writeSync(e,t)}input(e,t=!0){this.coreService.triggerDataEvent(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,a.MINIMUM_COLS),t=Math.max(t,a.MINIMUM_ROWS),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t,i){this._bufferService.scrollLines(e,t,i)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){const t=e-this._bufferService.buffer.ydisp;0!==t&&this.scrollLines(t)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let e=!1;const t=this.optionsService.rawOptions.windowsPty;t&&void 0!==t.buildNumber&&void 0!==t.buildNumber?e=!!(\"conpty\"===t.backend&&t.buildNumber<21376):this.optionsService.rawOptions.windowsMode&&(e=!0),e?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){const e=[];e.push(this.onLineFeed(f.updateWindowsModeWrappedState.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:\"H\"},(()=>((0,f.updateWindowsModeWrappedState)(this._bufferService),!1)))),this._windowsWrappingHeuristics.value=(0,s.toDisposable)((()=>{for(const t of e)t.dispose()}))}}}t.CoreTerminal=S},8460:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;t<this._listeners.length;t++)if(this._listeners[t]===e)return void this._listeners.splice(t,1)}})),this._event}fire(e,t){const i=[];for(let e=0;e<this._listeners.length;e++)i.push(this._listeners[e]);for(let s=0;s<i.length;s++)i[s].call(void 0,e,t)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}},t.forwardEvent=function(e,t){return e((e=>t.fire(e)))},t.runAndSubscribe=function(e,t){return t(void 0),e((e=>t(e)))}},5435:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.InputHandler=t.WindowsOptionsReportType=void 0;const n=i(2584),o=i(7116),a=i(2015),h=i(844),c=i(482),l=i(8437),d=i(8460),_=i(643),u=i(511),f=i(3734),v=i(2585),p=i(1480),g=i(6242),m=i(6351),S=i(5941),C={\"(\":0,\")\":1,\"*\":2,\"+\":3,\"-\":1,\".\":2},b=131072;function w(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var y;!function(e){e[e.GET_WIN_SIZE_PIXELS=0]=\"GET_WIN_SIZE_PIXELS\",e[e.GET_CELL_SIZE_PIXELS=1]=\"GET_CELL_SIZE_PIXELS\"}(y||(t.WindowsOptionsReportType=y={}));let E=0;class k extends h.Disposable{getAttrData(){return this._curAttrData}constructor(e,t,i,s,r,h,_,f,v=new a.EscapeSequenceParser){super(),this._bufferService=e,this._charsetService=t,this._coreService=i,this._logService=s,this._optionsService=r,this._oscLinkService=h,this._coreMouseService=_,this._unicodeService=f,this._parser=v,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new c.StringToUtf32,this._utf8Decoder=new c.Utf8ToUtf32,this._workCell=new u.CellData,this._windowTitle=\"\",this._iconName=\"\",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this.register(new d.EventEmitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this.register(new d.EventEmitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this.register(new d.EventEmitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this.register(new d.EventEmitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this.register(new d.EventEmitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this.register(new d.EventEmitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this.register(new d.EventEmitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this.register(new d.EventEmitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this.register(new d.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this.register(new d.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this.register(new d.EventEmitter),this.onScroll=this._onScroll.event,this._onTitleChange=this.register(new d.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this.register(new d.EventEmitter),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._dirtyRowTracker=new L(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._parser.setCsiHandlerFallback(((e,t)=>{this._logService.debug(\"Unknown CSI code: \",{identifier:this._parser.identToString(e),params:t.toArray()})})),this._parser.setEscHandlerFallback((e=>{this._logService.debug(\"Unknown ESC code: \",{identifier:this._parser.identToString(e)})})),this._parser.setExecuteHandlerFallback((e=>{this._logService.debug(\"Unknown EXECUTE code: \",{code:e})})),this._parser.setOscHandlerFallback(((e,t,i)=>{this._logService.debug(\"Unknown OSC code: \",{identifier:e,action:t,data:i})})),this._parser.setDcsHandlerFallback(((e,t,i)=>{\"HOOK\"===t&&(i=i.toArray()),this._logService.debug(\"Unknown DCS code: \",{identifier:this._parser.identToString(e),action:t,payload:i})})),this._parser.setPrintHandler(((e,t,i)=>this.print(e,t,i))),this._parser.registerCsiHandler({final:\"@\"},(e=>this.insertChars(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"@\"},(e=>this.scrollLeft(e))),this._parser.registerCsiHandler({final:\"A\"},(e=>this.cursorUp(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"A\"},(e=>this.scrollRight(e))),this._parser.registerCsiHandler({final:\"B\"},(e=>this.cursorDown(e))),this._parser.registerCsiHandler({final:\"C\"},(e=>this.cursorForward(e))),this._parser.registerCsiHandler({final:\"D\"},(e=>this.cursorBackward(e))),this._parser.registerCsiHandler({final:\"E\"},(e=>this.cursorNextLine(e))),this._parser.registerCsiHandler({final:\"F\"},(e=>this.cursorPrecedingLine(e))),this._parser.registerCsiHandler({final:\"G\"},(e=>this.cursorCharAbsolute(e))),this._parser.registerCsiHandler({final:\"H\"},(e=>this.cursorPosition(e))),this._parser.registerCsiHandler({final:\"I\"},(e=>this.cursorForwardTab(e))),this._parser.registerCsiHandler({final:\"J\"},(e=>this.eraseInDisplay(e,!1))),this._parser.registerCsiHandler({prefix:\"?\",final:\"J\"},(e=>this.eraseInDisplay(e,!0))),this._parser.registerCsiHandler({final:\"K\"},(e=>this.eraseInLine(e,!1))),this._parser.registerCsiHandler({prefix:\"?\",final:\"K\"},(e=>this.eraseInLine(e,!0))),this._parser.registerCsiHandler({final:\"L\"},(e=>this.insertLines(e))),this._parser.registerCsiHandler({final:\"M\"},(e=>this.deleteLines(e))),this._parser.registerCsiHandler({final:\"P\"},(e=>this.deleteChars(e))),this._parser.registerCsiHandler({final:\"S\"},(e=>this.scrollUp(e))),this._parser.registerCsiHandler({final:\"T\"},(e=>this.scrollDown(e))),this._parser.registerCsiHandler({final:\"X\"},(e=>this.eraseChars(e))),this._parser.registerCsiHandler({final:\"Z\"},(e=>this.cursorBackwardTab(e))),this._parser.registerCsiHandler({final:\"`\"},(e=>this.charPosAbsolute(e))),this._parser.registerCsiHandler({final:\"a\"},(e=>this.hPositionRelative(e))),this._parser.registerCsiHandler({final:\"b\"},(e=>this.repeatPrecedingCharacter(e))),this._parser.registerCsiHandler({final:\"c\"},(e=>this.sendDeviceAttributesPrimary(e))),this._parser.registerCsiHandler({prefix:\">\",final:\"c\"},(e=>this.sendDeviceAttributesSecondary(e))),this._parser.registerCsiHandler({final:\"d\"},(e=>this.linePosAbsolute(e))),this._parser.registerCsiHandler({final:\"e\"},(e=>this.vPositionRelative(e))),this._parser.registerCsiHandler({final:\"f\"},(e=>this.hVPosition(e))),this._parser.registerCsiHandler({final:\"g\"},(e=>this.tabClear(e))),this._parser.registerCsiHandler({final:\"h\"},(e=>this.setMode(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"h\"},(e=>this.setModePrivate(e))),this._parser.registerCsiHandler({final:\"l\"},(e=>this.resetMode(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"l\"},(e=>this.resetModePrivate(e))),this._parser.registerCsiHandler({final:\"m\"},(e=>this.charAttributes(e))),this._parser.registerCsiHandler({final:\"n\"},(e=>this.deviceStatus(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"n\"},(e=>this.deviceStatusPrivate(e))),this._parser.registerCsiHandler({intermediates:\"!\",final:\"p\"},(e=>this.softReset(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"q\"},(e=>this.setCursorStyle(e))),this._parser.registerCsiHandler({final:\"r\"},(e=>this.setScrollRegion(e))),this._parser.registerCsiHandler({final:\"s\"},(e=>this.saveCursor(e))),this._parser.registerCsiHandler({final:\"t\"},(e=>this.windowOptions(e))),this._parser.registerCsiHandler({final:\"u\"},(e=>this.restoreCursor(e))),this._parser.registerCsiHandler({intermediates:\"'\",final:\"}\"},(e=>this.insertColumns(e))),this._parser.registerCsiHandler({intermediates:\"'\",final:\"~\"},(e=>this.deleteColumns(e))),this._parser.registerCsiHandler({intermediates:'\"',final:\"q\"},(e=>this.selectProtected(e))),this._parser.registerCsiHandler({intermediates:\"$\",final:\"p\"},(e=>this.requestMode(e,!0))),this._parser.registerCsiHandler({prefix:\"?\",intermediates:\"$\",final:\"p\"},(e=>this.requestMode(e,!1))),this._parser.setExecuteHandler(n.C0.BEL,(()=>this.bell())),this._parser.setExecuteHandler(n.C0.LF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.VT,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.FF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.CR,(()=>this.carriageReturn())),this._parser.setExecuteHandler(n.C0.BS,(()=>this.backspace())),this._parser.setExecuteHandler(n.C0.HT,(()=>this.tab())),this._parser.setExecuteHandler(n.C0.SO,(()=>this.shiftOut())),this._parser.setExecuteHandler(n.C0.SI,(()=>this.shiftIn())),this._parser.setExecuteHandler(n.C1.IND,(()=>this.index())),this._parser.setExecuteHandler(n.C1.NEL,(()=>this.nextLine())),this._parser.setExecuteHandler(n.C1.HTS,(()=>this.tabSet())),this._parser.registerOscHandler(0,new g.OscHandler((e=>(this.setTitle(e),this.setIconName(e),!0)))),this._parser.registerOscHandler(1,new g.OscHandler((e=>this.setIconName(e)))),this._parser.registerOscHandler(2,new g.OscHandler((e=>this.setTitle(e)))),this._parser.registerOscHandler(4,new g.OscHandler((e=>this.setOrReportIndexedColor(e)))),this._parser.registerOscHandler(8,new g.OscHandler((e=>this.setHyperlink(e)))),this._parser.registerOscHandler(10,new g.OscHandler((e=>this.setOrReportFgColor(e)))),this._parser.registerOscHandler(11,new g.OscHandler((e=>this.setOrReportBgColor(e)))),this._parser.registerOscHandler(12,new g.OscHandler((e=>this.setOrReportCursorColor(e)))),this._parser.registerOscHandler(104,new g.OscHandler((e=>this.restoreIndexedColor(e)))),this._parser.registerOscHandler(110,new g.OscHandler((e=>this.restoreFgColor(e)))),this._parser.registerOscHandler(111,new g.OscHandler((e=>this.restoreBgColor(e)))),this._parser.registerOscHandler(112,new g.OscHandler((e=>this.restoreCursorColor(e)))),this._parser.registerEscHandler({final:\"7\"},(()=>this.saveCursor())),this._parser.registerEscHandler({final:\"8\"},(()=>this.restoreCursor())),this._parser.registerEscHandler({final:\"D\"},(()=>this.index())),this._parser.registerEscHandler({final:\"E\"},(()=>this.nextLine())),this._parser.registerEscHandler({final:\"H\"},(()=>this.tabSet())),this._parser.registerEscHandler({final:\"M\"},(()=>this.reverseIndex())),this._parser.registerEscHandler({final:\"=\"},(()=>this.keypadApplicationMode())),this._parser.registerEscHandler({final:\">\"},(()=>this.keypadNumericMode())),this._parser.registerEscHandler({final:\"c\"},(()=>this.fullReset())),this._parser.registerEscHandler({final:\"n\"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:\"o\"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:\"|\"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:\"}\"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:\"~\"},(()=>this.setgLevel(1))),this._parser.registerEscHandler({intermediates:\"%\",final:\"@\"},(()=>this.selectDefaultCharset())),this._parser.registerEscHandler({intermediates:\"%\",final:\"G\"},(()=>this.selectDefaultCharset()));for(const e in o.CHARSETS)this._parser.registerEscHandler({intermediates:\"(\",final:e},(()=>this.selectCharset(\"(\"+e))),this._parser.registerEscHandler({intermediates:\")\",final:e},(()=>this.selectCharset(\")\"+e))),this._parser.registerEscHandler({intermediates:\"*\",final:e},(()=>this.selectCharset(\"*\"+e))),this._parser.registerEscHandler({intermediates:\"+\",final:e},(()=>this.selectCharset(\"+\"+e))),this._parser.registerEscHandler({intermediates:\"-\",final:e},(()=>this.selectCharset(\"-\"+e))),this._parser.registerEscHandler({intermediates:\".\",final:e},(()=>this.selectCharset(\".\"+e))),this._parser.registerEscHandler({intermediates:\"/\",final:e},(()=>this.selectCharset(\"/\"+e)));this._parser.registerEscHandler({intermediates:\"#\",final:\"8\"},(()=>this.screenAlignmentPattern())),this._parser.setErrorHandler((e=>(this._logService.error(\"Parsing error: \",e),e))),this._parser.registerDcsHandler({intermediates:\"$\",final:\"q\"},new m.DcsHandler(((e,t)=>this.requestStatusString(e,t))))}_preserveStack(e,t,i,s){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=i,this._parseStack.position=s}_logSlowResolvingAsync(e){this._logService.logLevel<=v.LogLevelEnum.WARN&&Promise.race([e,new Promise(((e,t)=>setTimeout((()=>t(\"#SLOW_TIMEOUT\")),5e3)))]).catch((e=>{if(\"#SLOW_TIMEOUT\"!==e)throw e;console.warn(\"async parser handler taking longer than 5000 ms\")}))}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let i,s=this._activeBuffer.x,r=this._activeBuffer.y,n=0;const o=this._parseStack.paused;if(o){if(i=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(i),i;s=this._parseStack.cursorStartX,r=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>b&&(n=this._parseStack.position+b)}if(this._logService.logLevel<=v.LogLevelEnum.DEBUG&&this._logService.debug(\"parsing data\"+(\"string\"==typeof e?` \"${e}\"`:` \"${Array.prototype.map.call(e,(e=>String.fromCharCode(e))).join(\"\")}\"`),\"string\"==typeof e?e.split(\"\").map((e=>e.charCodeAt(0))):e),this._parseBuffer.length<e.length&&this._parseBuffer.length<b&&(this._parseBuffer=new Uint32Array(Math.min(e.length,b))),o||this._dirtyRowTracker.clearRange(),e.length>b)for(let t=n;t<e.length;t+=b){const n=t+b<e.length?t+b:e.length,o=\"string\"==typeof e?this._stringDecoder.decode(e.substring(t,n),this._parseBuffer):this._utf8Decoder.decode(e.subarray(t,n),this._parseBuffer);if(i=this._parser.parse(this._parseBuffer,o))return this._preserveStack(s,r,o,t),this._logSlowResolvingAsync(i),i}else if(!o){const t=\"string\"==typeof e?this._stringDecoder.decode(e,this._parseBuffer):this._utf8Decoder.decode(e,this._parseBuffer);if(i=this._parser.parse(this._parseBuffer,t))return this._preserveStack(s,r,t,0),this._logSlowResolvingAsync(i),i}this._activeBuffer.x===s&&this._activeBuffer.y===r||this._onCursorMove.fire();const a=this._dirtyRowTracker.end+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp),h=this._dirtyRowTracker.start+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp);h<this._bufferService.rows&&this._onRequestRefreshRows.fire(Math.min(h,this._bufferService.rows-1),Math.min(a,this._bufferService.rows-1))}print(e,t,i){let s,r;const n=this._charsetService.charset,o=this._optionsService.rawOptions.screenReaderMode,a=this._bufferService.cols,h=this._coreService.decPrivateModes.wraparound,d=this._coreService.modes.insertMode,u=this._curAttrData;let f=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&i-t>0&&2===f.getWidth(this._activeBuffer.x-1)&&f.setCellFromCodepoint(this._activeBuffer.x-1,0,1,u);let v=this._parser.precedingJoinState;for(let g=t;g<i;++g){if(s=e[g],s<127&&n){const e=n[String.fromCharCode(s)];e&&(s=e.charCodeAt(0))}const t=this._unicodeService.charProperties(s,v);r=p.UnicodeService.extractWidth(t);const i=p.UnicodeService.extractShouldJoin(t),m=i?p.UnicodeService.extractWidth(v):0;if(v=t,o&&this._onA11yChar.fire((0,c.stringFromCodePoint)(s)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),this._activeBuffer.x+r-m>a)if(h){const e=f;let t=this._activeBuffer.x-m;for(this._activeBuffer.x=m,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),f=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),m>0&&f instanceof l.BufferLine&&f.copyCellsFrom(e,t,0,m,!1);t<a;)e.setCellFromCodepoint(t++,0,1,u)}else if(this._activeBuffer.x=a-1,2===r)continue;if(i&&this._activeBuffer.x){const e=f.getWidth(this._activeBuffer.x-1)?1:2;f.addCodepointToCell(this._activeBuffer.x-e,s,r);for(let e=r-m;--e>=0;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}else if(d&&(f.insertCells(this._activeBuffer.x,r-m,this._activeBuffer.getNullCell(u)),2===f.getWidth(a-1)&&f.setCellFromCodepoint(a-1,_.NULL_CELL_CODE,_.NULL_CELL_WIDTH,u)),f.setCellFromCodepoint(this._activeBuffer.x++,s,r,u),r>0)for(;--r;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}this._parser.precedingJoinState=v,this._activeBuffer.x<a&&i-t>0&&0===f.getWidth(this._activeBuffer.x)&&!f.hasContent(this._activeBuffer.x)&&f.setCellFromCodepoint(this._activeBuffer.x,0,1,u),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return\"t\"!==e.final||e.prefix||e.intermediates?this._parser.registerCsiHandler(e,t):this._parser.registerCsiHandler(e,(e=>!w(e.params[0],this._optionsService.rawOptions.windowOptions)||t(e)))}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new m.DcsHandler(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new g.OscHandler(t))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(0===this._activeBuffer.x&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;const e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,t){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){const t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){const t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){const t=e.params[0];return 0===t?delete this._activeBuffer.tabs[this._activeBuffer.x]:3===t&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){const t=e.params[0];return 1===t&&(this._curAttrData.bg|=536870912),2!==t&&0!==t||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,i,s=!1,r=!1){const n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.replaceCells(t,i,this._activeBuffer.getNullCell(this._eraseAttrData()),r),s&&(n.isWrapped=!1)}_resetBufferLine(e,t=!1){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i&&(i.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),i.isWrapped=!1)}eraseInDisplay(e,t=!1){let i;switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:for(i=this._activeBuffer.y,this._dirtyRowTracker.markDirty(i),this._eraseInBufferLine(i++,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);i<this._bufferService.rows;i++)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(i);break;case 1:for(i=this._activeBuffer.y,this._dirtyRowTracker.markDirty(i),this._eraseInBufferLine(i,0,this._activeBuffer.x+1,!0,t),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(i+1).isWrapped=!1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 2:for(i=this._bufferService.rows,this._dirtyRowTracker.markDirty(i-1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 3:const e=this._activeBuffer.lines.length-this._bufferService.rows;e>0&&(this._activeBuffer.lines.trimStart(e),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-e,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-e,0),this._onScroll.fire(0))}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const i=this._activeBuffer.ybase+this._activeBuffer.y,s=this._bufferService.rows-1-this._activeBuffer.scrollBottom,r=this._bufferService.rows-1+this._activeBuffer.ybase-s+1;for(;t--;)this._activeBuffer.lines.splice(r-1,1),this._activeBuffer.lines.splice(i,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}deleteLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const i=this._activeBuffer.ybase+this._activeBuffer.y;let s;for(s=this._bufferService.rows-1-this._activeBuffer.scrollBottom,s=this._bufferService.rows-1+this._activeBuffer.ybase-s;t--;)this._activeBuffer.lines.splice(i,1),this._activeBuffer.lines.splice(s,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}insertChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.insertCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}deleteChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.deleteCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollDown(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,0,this._activeBuffer.getBlankLine(l.DEFAULT_ATTR_DATA));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollLeft(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.deleteCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollRight(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.insertCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}insertColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.insertCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}deleteColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.deleteCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.replaceCells(this._activeBuffer.x,this._activeBuffer.x+(e.params[0]||1),this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}repeatPrecedingCharacter(e){const t=this._parser.precedingJoinState;if(!t)return!0;const i=e.params[0]||1,s=p.UnicodeService.extractWidth(t),r=this._activeBuffer.x-s,n=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).getString(r),o=new Uint32Array(n.length*i);let a=0;for(let e=0;e<n.length;){const t=n.codePointAt(e)||0;o[a++]=t,e+=t>65535?2:1}let h=a;for(let e=1;e<i;++e)o.copyWithin(h,0,a),h+=a;return this.print(o,0,h),!0}sendDeviceAttributesPrimary(e){return e.params[0]>0||(this._is(\"xterm\")||this._is(\"rxvt-unicode\")||this._is(\"screen\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[?1;2c\"):this._is(\"linux\")&&this._coreService.triggerDataEvent(n.C0.ESC+\"[?6c\")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is(\"xterm\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[>0;276;0c\"):this._is(\"rxvt-unicode\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[>85;95;0c\"):this._is(\"linux\")?this._coreService.triggerDataEvent(e.params[0]+\"c\"):this._is(\"screen\")&&this._coreService.triggerDataEvent(n.C0.ESC+\"[>83;40003;0c\")),!0}_is(e){return 0===(this._optionsService.rawOptions.termName+\"\").indexOf(e)}setMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0}return!0}setModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,o.DEFAULT_CHARSET),this._charsetService.setgCharset(1,o.DEFAULT_CHARSET),this._charsetService.setgCharset(2,o.DEFAULT_CHARSET),this._charsetService.setgCharset(3,o.DEFAULT_CHARSET);break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(132,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!0,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!0;break;case 12:this._optionsService.options.cursorBlink=!0;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!0;break;case 66:this._logService.debug(\"Serial port requested application keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire();break;case 9:this._coreMouseService.activeProtocol=\"X10\";break;case 1e3:this._coreMouseService.activeProtocol=\"VT200\";break;case 1002:this._coreMouseService.activeProtocol=\"DRAG\";break;case 1003:this._coreMouseService.activeProtocol=\"ANY\";break;case 1004:this._coreService.decPrivateModes.sendFocus=!0,this._onRequestSendFocus.fire();break;case 1005:this._logService.debug(\"DECSET 1005 not supported (see #2507)\");break;case 1006:this._coreMouseService.activeEncoding=\"SGR\";break;case 1015:this._logService.debug(\"DECSET 1015 not supported (see #2507)\");break;case 1016:this._coreMouseService.activeEncoding=\"SGR_PIXELS\";break;case 25:this._coreService.isCursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._eraseAttrData()),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!0}return!0}resetMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1}return!0}resetModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(80,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!1,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!1;break;case 12:this._optionsService.options.cursorBlink=!1;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!1;break;case 66:this._logService.debug(\"Switching back to normal keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol=\"NONE\";break;case 1004:this._coreService.decPrivateModes.sendFocus=!1;break;case 1005:this._logService.debug(\"DECRST 1005 not supported (see #2507)\");break;case 1006:case 1016:this._coreMouseService.activeEncoding=\"DEFAULT\";break;case 1015:this._logService.debug(\"DECRST 1015 not supported (see #2507)\");break;case 25:this._coreService.isCursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),1049===e.params[t]&&this.restoreCursor(),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!1}return!0}requestMode(e,t){const i=this._coreService.decPrivateModes,{activeProtocol:s,activeEncoding:r}=this._coreMouseService,o=this._coreService,{buffers:a,cols:h}=this._bufferService,{active:c,alt:l}=a,d=this._optionsService.rawOptions,_=e=>e?1:2,u=e.params[0];return f=u,v=t?2===u?4:4===u?_(o.modes.insertMode):12===u?3:20===u?_(d.convertEol):0:1===u?_(i.applicationCursorKeys):3===u?d.windowOptions.setWinLines?80===h?2:132===h?1:0:0:6===u?_(i.origin):7===u?_(i.wraparound):8===u?3:9===u?_(\"X10\"===s):12===u?_(d.cursorBlink):25===u?_(!o.isCursorHidden):45===u?_(i.reverseWraparound):66===u?_(i.applicationKeypad):67===u?4:1e3===u?_(\"VT200\"===s):1002===u?_(\"DRAG\"===s):1003===u?_(\"ANY\"===s):1004===u?_(i.sendFocus):1005===u?4:1006===u?_(\"SGR\"===r):1015===u?4:1016===u?_(\"SGR_PIXELS\"===r):1048===u?1:47===u||1047===u||1049===u?_(c===l):2004===u?_(i.bracketedPasteMode):0,o.triggerDataEvent(`${n.C0.ESC}[${t?\"\":\"?\"}${f};${v}$y`),!0;var f,v}_updateAttrColor(e,t,i,s,r){return 2===t?(e|=50331648,e&=-16777216,e|=f.AttributeData.fromColorRGB([i,s,r])):5===t&&(e&=-50331904,e|=33554432|255&i),e}_extractColor(e,t,i){const s=[0,0,-1,0,0,0];let r=0,n=0;do{if(s[n+r]=e.params[t+n],e.hasSubParams(t+n)){const i=e.getSubParams(t+n);let o=0;do{5===s[1]&&(r=1),s[n+o+1+r]=i[o]}while(++o<i.length&&o+n+1+r<s.length);break}if(5===s[1]&&n+r>=2||2===s[1]&&n+r>=5)break;s[1]&&(r=1)}while(++n+t<e.length&&n+r<s.length);for(let e=2;e<s.length;++e)-1===s[e]&&(s[e]=0);switch(s[0]){case 38:i.fg=this._updateAttrColor(i.fg,s[1],s[3],s[4],s[5]);break;case 48:i.bg=this._updateAttrColor(i.bg,s[1],s[3],s[4],s[5]);break;case 58:i.extended=i.extended.clone(),i.extended.underlineColor=this._updateAttrColor(i.extended.underlineColor,s[1],s[3],s[4],s[5])}return n}_processUnderline(e,t){t.extended=t.extended.clone(),(!~e||e>5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,0===e&&(t.fg&=-268435457),t.updateExtended()}_processSGR0(e){e.fg=l.DEFAULT_ATTR_DATA.fg,e.bg=l.DEFAULT_ATTR_DATA.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(1===e.length&&0===e.params[0])return this._processSGR0(this._curAttrData),!0;const t=e.length;let i;const s=this._curAttrData;for(let r=0;r<t;r++)i=e.params[r],i>=30&&i<=37?(s.fg&=-50331904,s.fg|=16777216|i-30):i>=40&&i<=47?(s.bg&=-50331904,s.bg|=16777216|i-40):i>=90&&i<=97?(s.fg&=-50331904,s.fg|=16777224|i-90):i>=100&&i<=107?(s.bg&=-50331904,s.bg|=16777224|i-100):0===i?this._processSGR0(s):1===i?s.fg|=134217728:3===i?s.bg|=67108864:4===i?(s.fg|=268435456,this._processUnderline(e.hasSubParams(r)?e.getSubParams(r)[0]:1,s)):5===i?s.fg|=536870912:7===i?s.fg|=67108864:8===i?s.fg|=1073741824:9===i?s.fg|=2147483648:2===i?s.bg|=134217728:21===i?this._processUnderline(2,s):22===i?(s.fg&=-134217729,s.bg&=-134217729):23===i?s.bg&=-67108865:24===i?(s.fg&=-268435457,this._processUnderline(0,s)):25===i?s.fg&=-536870913:27===i?s.fg&=-67108865:28===i?s.fg&=-1073741825:29===i?s.fg&=2147483647:39===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg):49===i?(s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):38===i||48===i||58===i?r+=this._extractColor(e,r,s):53===i?s.bg|=1073741824:55===i?s.bg&=-1073741825:59===i?(s.extended=s.extended.clone(),s.extended.underlineColor=-1,s.updateExtended()):100===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg,s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):this._logService.debug(\"Unknown SGR attribute: %d.\",i);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${n.C0.ESC}[0n`);break;case 6:const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[${e};${t}R`)}return!0}deviceStatusPrivate(e){if(6===e.params[0]){const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[?${e};${t}R`)}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){const t=e.params[0]||1;switch(t){case 1:case 2:this._optionsService.options.cursorStyle=\"block\";break;case 3:case 4:this._optionsService.options.cursorStyle=\"underline\";break;case 5:case 6:this._optionsService.options.cursorStyle=\"bar\"}const i=t%2==1;return this._optionsService.options.cursorBlink=i,!0}setScrollRegion(e){const t=e.params[0]||1;let i;return(e.length<2||(i=e.params[1])>this._bufferService.rows||0===i)&&(i=this._bufferService.rows),i>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=i-1,this._setCursor(0,0)),!0}windowOptions(e){if(!w(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;const t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:2!==t&&this._onRequestWindowsOptionsReport.fire(y.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(y.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${n.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:0!==t&&2!==t||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),0!==t&&1!==t||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:0!==t&&2!==t||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),0!==t&&1!==t||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){const t=[],i=e.split(\";\");for(;i.length>1;){const e=i.shift(),s=i.shift();if(/^\\d+$/.exec(e)){const i=parseInt(e);if(D(i))if(\"?\"===s)t.push({type:0,index:i});else{const e=(0,S.parseColor)(s);e&&t.push({type:1,index:i,color:e})}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){const t=e.split(\";\");return!(t.length<2)&&(t[1]?this._createHyperlink(t[0],t[1]):!t[0]&&this._finishHyperlink())}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();const i=e.split(\":\");let s;const r=i.findIndex((e=>e.startsWith(\"id=\")));return-1!==r&&(s=i[r].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:s,uri:t}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,t){const i=e.split(\";\");for(let e=0;e<i.length&&!(t>=this._specialColors.length);++e,++t)if(\"?\"===i[e])this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{const s=(0,S.parseColor)(i[e]);s&&this._onColor.fire([{type:1,index:this._specialColors[t],color:s}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;const t=[],i=e.split(\";\");for(let e=0;e<i.length;++e)if(/^\\d+$/.exec(i[e])){const s=parseInt(i[e]);D(s)&&t.push({type:2,index:s})}return t.length&&this._onColor.fire(t),!0}restoreFgColor(e){return this._onColor.fire([{type:2,index:256}]),!0}restoreBgColor(e){return this._onColor.fire([{type:2,index:257}]),!0}restoreCursorColor(e){return this._onColor.fire([{type:2,index:258}]),!0}nextLine(){return this._activeBuffer.x=0,this.index(),!0}keypadApplicationMode(){return this._logService.debug(\"Serial port requested application keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire(),!0}keypadNumericMode(){return this._logService.debug(\"Switching back to normal keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire(),!0}selectDefaultCharset(){return this._charsetService.setgLevel(0),this._charsetService.setgCharset(0,o.DEFAULT_CHARSET),!0}selectCharset(e){return 2!==e.length?(this.selectDefaultCharset(),!0):(\"/\"===e[0]||this._charsetService.setgCharset(C[e[0]],o.CHARSETS[e[1]]||o.DEFAULT_CHARSET),!0)}index(){return this._restrictCursor(),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){const e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){const e=new u.CellData;e.content=1<<22|\"E\".charCodeAt(0),e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t<this._bufferService.rows;++t){const i=this._activeBuffer.ybase+this._activeBuffer.y+t,s=this._activeBuffer.lines.get(i);s&&(s.fill(e),s.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(e,t){const i=this._bufferService.buffer,s=this._optionsService.rawOptions;return(e=>(this._coreService.triggerDataEvent(`${n.C0.ESC}${e}${n.C0.ESC}\\\\`),!0))('\"q'===e?`P1$r${this._curAttrData.isProtected()?1:0}\"q`:'\"p'===e?'P1$r61;1\"p':\"r\"===e?`P1$r${i.scrollTop+1};${i.scrollBottom+1}r`:\"m\"===e?\"P1$r0m\":\" q\"===e?`P1$r${{block:2,underline:4,bar:6}[s.cursorStyle]-(s.cursorBlink?1:0)} q`:\"P0$r\")}markRangeDirty(e,t){this._dirtyRowTracker.markRangeDirty(e,t)}}t.InputHandler=k;let L=class{constructor(e){this._bufferService=e,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(e){e<this.start?this.start=e:e>this.end&&(this.end=e)}markRangeDirty(e,t){e>t&&(E=e,e=t,t=E),e<this.start&&(this.start=e),t>this.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function D(e){return 0<=e&&e<256}L=s([r(0,v.IBufferService)],L)},844:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},1505:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,n){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,n)}get(e,t,i,s){return this._data.get(e,t)?.get(i,s)}clear(){this._data.clear()}}},6114:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode=\"undefined\"!=typeof process&&\"title\"in process;const i=t.isNode?\"node\":navigator.userAgent,s=t.isNode?\"node\":navigator.platform;t.isFirefox=i.includes(\"Firefox\"),t.isLegacyEdge=i.includes(\"Edge\"),t.isSafari=/^((?!chrome|android).)*safari/i.test(i),t.getSafariVersion=function(){if(!t.isSafari)return 0;const e=i.match(/Version\\/(\\d+)/);return null===e||e.length<2?0:parseInt(e[1])},t.isMac=[\"Macintosh\",\"MacIntel\",\"MacPPC\",\"Mac68K\"].includes(s),t.isIpad=\"iPad\"===s,t.isIphone=\"iPhone\"===s,t.isWindows=[\"Windows\",\"Win16\",\"Win32\",\"WinCE\"].includes(s),t.isLinux=s.indexOf(\"Linux\")>=0,t.isChromeOS=/\\bCrOS\\b/.test(i)},6106:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.SortedList=void 0;let i=0;t.SortedList=class{constructor(e){this._getKey=e,this._array=[]}clear(){this._array.length=0}insert(e){0!==this._array.length?(i=this._search(this._getKey(e)),this._array.splice(i,0,e)):this._array.push(e)}delete(e){if(0===this._array.length)return!1;const t=this._getKey(e);if(void 0===t)return!1;if(i=this._search(t),-1===i)return!1;if(this._getKey(this._array[i])!==t)return!1;do{if(this._array[i]===e)return this._array.splice(i,1),!0}while(++i<this._array.length&&this._getKey(this._array[i])===t);return!1}*getKeyIterator(e){if(0!==this._array.length&&(i=this._search(e),!(i<0||i>=this._array.length)&&this._getKey(this._array[i])===e))do{yield this._array[i]}while(++i<this._array.length&&this._getKey(this._array[i])===e)}forEachByKey(e,t){if(0!==this._array.length&&(i=this._search(e),!(i<0||i>=this._array.length)&&this._getKey(this._array[i])===e))do{t(this._array[i])}while(++i<this._array.length&&this._getKey(this._array[i])===e)}values(){return[...this._array].values()}_search(e){let t=0,i=this._array.length-1;for(;i>=t;){let s=t+i>>1;const r=this._getKey(this._array[s]);if(r>e)i=s-1;else{if(!(r<e)){for(;s>0&&this._getKey(this._array[s-1])===e;)s--;return s}t=s+1}}return t}}},7226:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;const s=i(6114);class r{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(e){this._idleCallback=void 0;let t=0,i=0,s=e.timeRemaining(),r=0;for(;this._i<this._tasks.length;){if(t=Date.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,Date.now()-t),i=Math.max(t,i),r=e.timeRemaining(),1.5*i>r)return s-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(s-t))}ms`),void this._start();s=r}this.clear()}}class n extends r{_requestCallback(e){return setTimeout((()=>e(this._createDeadline(16))))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}t.PriorityTaskQueue=n,t.IdleTaskQueue=!s.isNode&&\"requestIdleCallback\"in window?class extends r{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}}:n,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}}},9282:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.updateWindowsModeWrappedState=void 0;const s=i(643);t.updateWindowsModeWrappedState=function(e){const t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1),i=t?.get(e.cols-1),r=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);r&&i&&(r.isWrapped=i[s.CHAR_DATA_CODE_INDEX]!==s.NULL_CELL_CODE&&i[s.CHAR_DATA_CODE_INDEX]!==s.WHITESPACE_CELL_CODE)}},3734:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}}t.AttributeData=i;class s{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){const e=(3758096384&this._ext)>>29;return e<0?4294967288^e:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},9092:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Buffer=t.MAX_BUFFER_SIZE=void 0;const s=i(6349),r=i(7226),n=i(3734),o=i(8437),a=i(4634),h=i(511),c=i(643),l=i(4863),d=i(7116);t.MAX_BUFFER_SIZE=4294967295,t.Buffer=class{constructor(e,t,i){this._hasScrollback=e,this._optionsService=t,this._bufferService=i,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=o.DEFAULT_ATTR_DATA.clone(),this.savedCharset=d.DEFAULT_CHARSET,this.markers=[],this._nullCell=h.CellData.fromCharData([0,c.NULL_CELL_CHAR,c.NULL_CELL_WIDTH,c.NULL_CELL_CODE]),this._whitespaceCell=h.CellData.fromCharData([0,c.WHITESPACE_CELL_CHAR,c.WHITESPACE_CELL_WIDTH,c.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new r.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new n.ExtendedAttrs),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new n.ExtendedAttrs),this._whitespaceCell}getBlankLine(e,t){return new o.BufferLine(this._bufferService.cols,this.getNullCell(e),t)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){const e=this.ybase+this.y-this.ydisp;return e>=0&&e<this._rows}_getCorrectBufferLength(e){if(!this._hasScrollback)return e;const i=e+this._optionsService.rawOptions.scrollback;return i>t.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:i}fillViewportRows(e){if(0===this.lines.length){void 0===e&&(e=o.DEFAULT_ATTR_DATA);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){const i=this.getNullCell(o.DEFAULT_ATTR_DATA);let s=0;const r=this._getCorrectBufferLength(t);if(r>this.lines.maxLength&&(this.lines.maxLength=r),this.lines.length>0){if(this._cols<e)for(let t=0;t<this.lines.length;t++)s+=+this.lines.get(t).resize(e,i);let n=0;if(this._rows<t)for(let s=this._rows;s<t;s++)this.lines.length<t+this.ybase&&(this._optionsService.rawOptions.windowsMode||void 0!==this._optionsService.rawOptions.windowsPty.backend||void 0!==this._optionsService.rawOptions.windowsPty.buildNumber?this.lines.push(new o.BufferLine(e,i)):this.ybase>0&&this.lines.length<=this.ybase+this.y+n+1?(this.ybase--,n++,this.ydisp>0&&this.ydisp--):this.lines.push(new o.BufferLine(e,i)));else for(let e=this._rows;e>t;e--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(r<this.lines.maxLength){const e=this.lines.length-r;e>0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=r}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),n&&(this.y+=n),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let t=0;t<this.lines.length;t++)s+=+this.lines.get(t).resize(e,i);this._cols=e,this._rows=t,this._memoryCleanupQueue.clear(),s>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue((()=>this._batchedMemoryCleanup())))}_batchedMemoryCleanup(){let e=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,e=!1);let t=0;for(;this._memoryCleanupPosition<this.lines.length;)if(t+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory(),t>100)return!0;return e}get _isReflowEnabled(){const e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&\"conpty\"===e.backend&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){const i=(0,a.reflowLargerGetLinesToRemove)(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(o.DEFAULT_ATTR_DATA));if(i.length>0){const s=(0,a.reflowLargerCreateNewLayout)(this.lines,i);(0,a.reflowLargerApplyNewLayout)(this.lines,s.layout),this._reflowLargerAdjustViewport(e,t,s.countRemoved)}}_reflowLargerAdjustViewport(e,t,i){const s=this.getNullCell(o.DEFAULT_ATTR_DATA);let r=i;for(;r-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length<t&&this.lines.push(new o.BufferLine(e,s))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-i,0)}_reflowSmaller(e,t){const i=this.getNullCell(o.DEFAULT_ATTR_DATA),s=[];let r=0;for(let n=this.lines.length-1;n>=0;n--){let h=this.lines.get(n);if(!h||!h.isWrapped&&h.getTrimmedLength()<=e)continue;const c=[h];for(;h.isWrapped&&n>0;)h=this.lines.get(--n),c.unshift(h);const l=this.ybase+this.y;if(l>=n&&l<n+c.length)continue;const d=c[c.length-1].getTrimmedLength(),_=(0,a.reflowSmallerGetNewLineLengths)(c,this._cols,e),u=_.length-c.length;let f;f=0===this.ybase&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+u):Math.max(0,this.lines.length-this.lines.maxLength+u);const v=[];for(let e=0;e<u;e++){const e=this.getBlankLine(o.DEFAULT_ATTR_DATA,!0);v.push(e)}v.length>0&&(s.push({start:n+c.length+r,newLines:v}),r+=v.length),c.push(...v);let p=_.length-1,g=_[p];0===g&&(p--,g=_[p]);let m=c.length-u-1,S=d;for(;m>=0;){const e=Math.min(S,g);if(void 0===c[p])break;if(c[p].copyCellsFrom(c[m],S-e,g-e,e,!0),g-=e,0===g&&(p--,g=_[p]),S-=e,0===S){m--;const e=Math.max(m,0);S=(0,a.getWrappedLineTrimmedLength)(c,e,this._cols)}}for(let t=0;t<c.length;t++)_[t]<e&&c[t].setCell(_[t],i);let C=u-f;for(;C-- >0;)0===this.ybase?this.y<t-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+r)-t&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+u,this.ybase+t-1)}if(s.length>0){const e=[],t=[];for(let e=0;e<this.lines.length;e++)t.push(this.lines.get(e));const i=this.lines.length;let n=i-1,o=0,a=s[o];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+r);let h=0;for(let c=Math.min(this.lines.maxLength-1,i+r-1);c>=0;c--)if(a&&a.start>n+h){for(let e=a.newLines.length-1;e>=0;e--)this.lines.set(c--,a.newLines[e]);c++,e.push({index:n+1,amount:a.newLines.length}),h+=a.newLines.length,a=s[++o]}else this.lines.set(c,t[n--]);let c=0;for(let t=e.length-1;t>=0;t--)e[t].index+=c,this.lines.onInsertEmitter.fire(e[t]),c+=e[t].amount;const l=Math.max(0,i+r-this.lines.maxLength);l>0&&this.lines.onTrimEmitter.fire(l)}}translateBufferLineToString(e,t,i=0,s){const r=this.lines.get(e);return r?r.translateToString(t,i,s):\"\"}getWrappedRangeForLine(e){let t=e,i=e;for(;t>0&&this.lines.get(t).isWrapped;)t--;for(;i+1<this.lines.length&&this.lines.get(i+1).isWrapped;)i++;return{first:t,last:i}}setupTabStops(e){for(null!=e?this.tabs[e]||(e=this.prevStop(e)):(this.tabs={},e=0);e<this._cols;e+=this._optionsService.rawOptions.tabStopWidth)this.tabs[e]=!0}prevStop(e){for(null==e&&(e=this.x);!this.tabs[--e]&&e>0;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e<this._cols;);return e>=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let t=0;t<this.markers.length;t++)this.markers[t].line===e&&(this.markers[t].dispose(),this.markers.splice(t--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let e=0;e<this.markers.length;e++)this.markers[e].dispose(),this.markers.splice(e--,1);this._isClearing=!1}addMarker(e){const t=new l.Marker(e);return this.markers.push(t),t.register(this.lines.onTrim((e=>{t.line-=e,t.line<0&&t.dispose()}))),t.register(this.lines.onInsert((e=>{t.line>=e.index&&(t.line+=e.amount)}))),t.register(this.lines.onDelete((e=>{t.line>=e.index&&t.line<e.index+e.amount&&t.dispose(),t.line>e.index&&(t.line-=e.amount)}))),t.register(t.onDispose((()=>this._removeMarker(t)))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}}},8437:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferLine=t.DEFAULT_ATTR_DATA=void 0;const s=i(3734),r=i(511),n=i(643),o=i(482);t.DEFAULT_ATTR_DATA=Object.freeze(new s.AttributeData);let a=0;class h{constructor(e,t,i=!1){this.isWrapped=i,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*e);const s=t||r.CellData.fromCharData([0,n.NULL_CELL_CHAR,n.NULL_CELL_WIDTH,n.NULL_CELL_CODE]);for(let t=0;t<e;++t)this.setCell(t,s);this.length=e}get(e){const t=this._data[3*e+0],i=2097151&t;return[this._data[3*e+1],2097152&t?this._combined[e]:i?(0,o.stringFromCodePoint)(i):\"\",t>>22,2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):i]}set(e,t){this._data[3*e+1]=t[n.CHAR_DATA_ATTR_INDEX],t[n.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[e]=t[1],this._data[3*e+0]=2097152|e|t[n.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*e+0]=t[n.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|t[n.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(e){return this._data[3*e+0]>>22}hasWidth(e){return 12582912&this._data[3*e+0]}getFg(e){return this._data[3*e+1]}getBg(e){return this._data[3*e+2]}hasContent(e){return 4194303&this._data[3*e+0]}getCodePoint(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&t}isCombined(e){return 2097152&this._data[3*e+0]}getString(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e]:2097151&t?(0,o.stringFromCodePoint)(2097151&t):\"\"}isProtected(e){return 536870912&this._data[3*e+2]}loadCell(e,t){return a=3*e,t.content=this._data[a+0],t.fg=this._data[a+1],t.bg=this._data[a+2],2097152&t.content&&(t.combinedData=this._combined[e]),268435456&t.bg&&(t.extended=this._extendedAttrs[e]),t}setCell(e,t){2097152&t.content&&(this._combined[e]=t.combinedData),268435456&t.bg&&(this._extendedAttrs[e]=t.extended),this._data[3*e+0]=t.content,this._data[3*e+1]=t.fg,this._data[3*e+2]=t.bg}setCellFromCodepoint(e,t,i,s){268435456&s.bg&&(this._extendedAttrs[e]=s.extended),this._data[3*e+0]=t|i<<22,this._data[3*e+1]=s.fg,this._data[3*e+2]=s.bg}addCodepointToCell(e,t,i){let s=this._data[3*e+0];2097152&s?this._combined[e]+=(0,o.stringFromCodePoint)(t):2097151&s?(this._combined[e]=(0,o.stringFromCodePoint)(2097151&s)+(0,o.stringFromCodePoint)(t),s&=-2097152,s|=2097152):s=t|1<<22,i&&(s&=-12582913,s|=i<<22),this._data[3*e+0]=s}insertCells(e,t,i){if((e%=this.length)&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,i),t<this.length-e){const s=new r.CellData;for(let i=this.length-e-t-1;i>=0;--i)this.setCell(e+t+i,this.loadCell(e+i,s));for(let s=0;s<t;++s)this.setCell(e+s,i)}else for(let t=e;t<this.length;++t)this.setCell(t,i);2===this.getWidth(this.length-1)&&this.setCellFromCodepoint(this.length-1,0,1,i)}deleteCells(e,t,i){if(e%=this.length,t<this.length-e){const s=new r.CellData;for(let i=0;i<this.length-e-t;++i)this.setCell(e+i,this.loadCell(e+t+i,s));for(let e=this.length-t;e<this.length;++e)this.setCell(e,i)}else for(let t=e;t<this.length;++t)this.setCell(t,i);e&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,i),0!==this.getWidth(e)||this.hasContent(e)||this.setCellFromCodepoint(e,0,1,i)}replaceCells(e,t,i,s=!1){if(s)for(e&&2===this.getWidth(e-1)&&!this.isProtected(e-1)&&this.setCellFromCodepoint(e-1,0,1,i),t<this.length&&2===this.getWidth(t-1)&&!this.isProtected(t)&&this.setCellFromCodepoint(t,0,1,i);e<t&&e<this.length;)this.isProtected(e)||this.setCell(e,i),e++;else for(e&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,i),t<this.length&&2===this.getWidth(t-1)&&this.setCellFromCodepoint(t,0,1,i);e<t&&e<this.length;)this.setCell(e++,i)}resize(e,t){if(e===this.length)return 4*this._data.length*2<this._data.buffer.byteLength;const i=3*e;if(e>this.length){if(this._data.buffer.byteLength>=4*i)this._data=new Uint32Array(this._data.buffer,0,i);else{const e=new Uint32Array(i);e.set(this._data),this._data=e}for(let i=this.length;i<e;++i)this.setCell(i,t)}else{this._data=this._data.subarray(0,i);const t=Object.keys(this._combined);for(let i=0;i<t.length;i++){const s=parseInt(t[i],10);s>=e&&delete this._combined[s]}const s=Object.keys(this._extendedAttrs);for(let t=0;t<s.length;t++){const i=parseInt(s[t],10);i>=e&&delete this._extendedAttrs[i]}}return this.length=e,4*i*2<this._data.buffer.byteLength}cleanupMemory(){if(4*this._data.length*2<this._data.buffer.byteLength){const e=new Uint32Array(this._data.length);return e.set(this._data),this._data=e,1}return 0}fill(e,t=!1){if(t)for(let t=0;t<this.length;++t)this.isProtected(t)||this.setCell(t,e);else{this._combined={},this._extendedAttrs={};for(let t=0;t<this.length;++t)this.setCell(t,e)}}copyFrom(e){this.length!==e.length?this._data=new Uint32Array(e._data):this._data.set(e._data),this.length=e.length,this._combined={};for(const t in e._combined)this._combined[t]=e._combined[t];this._extendedAttrs={};for(const t in e._extendedAttrs)this._extendedAttrs[t]=e._extendedAttrs[t];this.isWrapped=e.isWrapped}clone(){const e=new h(0);e._data=new Uint32Array(this._data),e.length=this.length;for(const t in this._combined)e._combined[t]=this._combined[t];for(const t in this._extendedAttrs)e._extendedAttrs[t]=this._extendedAttrs[t];return e.isWrapped=this.isWrapped,e}getTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0])return e+(this._data[3*e+0]>>22);return 0}getNoBgTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0]||50331648&this._data[3*e+2])return e+(this._data[3*e+0]>>22);return 0}copyCellsFrom(e,t,i,s,r){const n=e._data;if(r)for(let r=s-1;r>=0;r--){for(let e=0;e<3;e++)this._data[3*(i+r)+e]=n[3*(t+r)+e];268435456&n[3*(t+r)+2]&&(this._extendedAttrs[i+r]=e._extendedAttrs[t+r])}else for(let r=0;r<s;r++){for(let e=0;e<3;e++)this._data[3*(i+r)+e]=n[3*(t+r)+e];268435456&n[3*(t+r)+2]&&(this._extendedAttrs[i+r]=e._extendedAttrs[t+r])}const o=Object.keys(e._combined);for(let s=0;s<o.length;s++){const r=parseInt(o[s],10);r>=t&&(this._combined[r-t+i]=e._combined[r])}}translateToString(e,t,i,s){t=t??0,i=i??this.length,e&&(i=Math.min(i,this.getTrimmedLength())),s&&(s.length=0);let r=\"\";for(;t<i;){const e=this._data[3*t+0],i=2097151&e,a=2097152&e?this._combined[t]:i?(0,o.stringFromCodePoint)(i):n.WHITESPACE_CELL_CHAR;if(r+=a,s)for(let e=0;e<a.length;++e)s.push(t);t+=e>>22||1}return s&&s.push(t),r}}t.BufferLine=h},4841:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.getRangeLength=void 0,t.getRangeLength=function(e,t){if(e.start.y>e.end.y)throw new Error(`Buffer range end (${e.end.x}, ${e.end.y}) cannot be before start (${e.start.x}, ${e.start.y})`);return t*(e.end.y-e.start.y)+(e.end.x-e.start.x+1)}},4634:(e,t)=>{function i(e,t,i){if(t===e.length-1)return e[t].getTrimmedLength();const s=!e[t].hasContent(i-1)&&1===e[t].getWidth(i-1),r=2===e[t+1].getWidth(0);return s&&r?i-1:i}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getWrappedLineTrimmedLength=t.reflowSmallerGetNewLineLengths=t.reflowLargerApplyNewLayout=t.reflowLargerCreateNewLayout=t.reflowLargerGetLinesToRemove=void 0,t.reflowLargerGetLinesToRemove=function(e,t,s,r,n){const o=[];for(let a=0;a<e.length-1;a++){let h=a,c=e.get(++h);if(!c.isWrapped)continue;const l=[e.get(a)];for(;h<e.length&&c.isWrapped;)l.push(c),c=e.get(++h);if(r>=a&&r<h){a+=l.length-1;continue}let d=0,_=i(l,d,t),u=1,f=0;for(;u<l.length;){const e=i(l,u,t),r=e-f,o=s-_,a=Math.min(r,o);l[d].copyCellsFrom(l[u],f,_,a,!1),_+=a,_===s&&(d++,_=0),f+=a,f===e&&(u++,f=0),0===_&&0!==d&&2===l[d-1].getWidth(s-1)&&(l[d].copyCellsFrom(l[d-1],s-1,_++,1,!1),l[d-1].setCell(s-1,n))}l[d].replaceCells(_,s,n);let v=0;for(let e=l.length-1;e>0&&(e>d||0===l[e].getTrimmedLength());e--)v++;v>0&&(o.push(a+l.length-v),o.push(v)),a+=l.length-1}return o},t.reflowLargerCreateNewLayout=function(e,t){const i=[];let s=0,r=t[s],n=0;for(let o=0;o<e.length;o++)if(r===o){const i=t[++s];e.onDeleteEmitter.fire({index:o-n,amount:i}),o+=i-1,n+=i,r=t[++s]}else i.push(o);return{layout:i,countRemoved:n}},t.reflowLargerApplyNewLayout=function(e,t){const i=[];for(let s=0;s<t.length;s++)i.push(e.get(t[s]));for(let t=0;t<i.length;t++)e.set(t,i[t]);e.length=t.length},t.reflowSmallerGetNewLineLengths=function(e,t,s){const r=[],n=e.map(((s,r)=>i(e,r,t))).reduce(((e,t)=>e+t));let o=0,a=0,h=0;for(;h<n;){if(n-h<s){r.push(n-h);break}o+=s;const c=i(e,a,t);o>c&&(o-=c,a++);const l=2===e[a].getWidth(o-1);l&&o--;const d=l?s-1:s;r.push(d),h+=d}return r},t.getWrappedLineTrimmedLength=i},5295:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferSet=void 0;const s=i(8460),r=i(844),n=i(9092);class o extends r.Disposable{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this.register(new s.EventEmitter),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this.register(this._optionsService.onSpecificOptionChange(\"scrollback\",(()=>this.resize(this._bufferService.cols,this._bufferService.rows)))),this.register(this._optionsService.onSpecificOptionChange(\"tabStopWidth\",(()=>this.setupTabStops())))}reset(){this._normal=new n.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new n.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,t){this._normal.resize(e,t),this._alt.resize(e,t),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}}t.BufferSet=o},511:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CellData=void 0;const s=i(482),r=i(643),n=i(3734);class o extends n.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new n.ExtendedAttrs,this.combinedData=\"\"}static fromCharData(e){const t=new o;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):\"\"}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=o},643:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR=\"\",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=\" \",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},4863:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Marker=void 0;const s=i(8460),r=i(844);class n{get id(){return this._id}constructor(e){this.line=e,this.isDisposed=!1,this._disposables=[],this._id=n._nextId++,this._onDispose=this.register(new s.EventEmitter),this.onDispose=this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,r.disposeArray)(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}}t.Marker=n,n._nextId=1},7116:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DEFAULT_CHARSET=t.CHARSETS=void 0,t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={\"`\":\"◆\",a:\"▒\",b:\"␉\",c:\"␌\",d:\"␍\",e:\"␊\",f:\"°\",g:\"±\",h:\"␤\",i:\"␋\",j:\"┘\",k:\"┐\",l:\"┌\",m:\"└\",n:\"┼\",o:\"⎺\",p:\"⎻\",q:\"─\",r:\"⎼\",s:\"⎽\",t:\"├\",u:\"┤\",v:\"┴\",w:\"┬\",x:\"│\",y:\"≤\",z:\"≥\",\"{\":\"π\",\"|\":\"≠\",\"}\":\"£\",\"~\":\"·\"},t.CHARSETS.A={\"#\":\"£\"},t.CHARSETS.B=void 0,t.CHARSETS[4]={\"#\":\"£\",\"@\":\"¾\",\"[\":\"ij\",\"\\\\\":\"½\",\"]\":\"|\",\"{\":\"¨\",\"|\":\"f\",\"}\":\"¼\",\"~\":\"´\"},t.CHARSETS.C=t.CHARSETS[5]={\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"é\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS.R={\"#\":\"£\",\"@\":\"à\",\"[\":\"°\",\"\\\\\":\"ç\",\"]\":\"§\",\"{\":\"é\",\"|\":\"ù\",\"}\":\"è\",\"~\":\"¨\"},t.CHARSETS.Q={\"@\":\"à\",\"[\":\"â\",\"\\\\\":\"ç\",\"]\":\"ê\",\"^\":\"î\",\"`\":\"ô\",\"{\":\"é\",\"|\":\"ù\",\"}\":\"è\",\"~\":\"û\"},t.CHARSETS.K={\"@\":\"§\",\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Ü\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"ü\",\"~\":\"ß\"},t.CHARSETS.Y={\"#\":\"£\",\"@\":\"§\",\"[\":\"°\",\"\\\\\":\"ç\",\"]\":\"é\",\"`\":\"ù\",\"{\":\"à\",\"|\":\"ò\",\"}\":\"è\",\"~\":\"ì\"},t.CHARSETS.E=t.CHARSETS[6]={\"@\":\"Ä\",\"[\":\"Æ\",\"\\\\\":\"Ø\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"ä\",\"{\":\"æ\",\"|\":\"ø\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS.Z={\"#\":\"£\",\"@\":\"§\",\"[\":\"¡\",\"\\\\\":\"Ñ\",\"]\":\"¿\",\"{\":\"°\",\"|\":\"ñ\",\"}\":\"ç\"},t.CHARSETS.H=t.CHARSETS[7]={\"@\":\"É\",\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"é\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS[\"=\"]={\"#\":\"ù\",\"@\":\"à\",\"[\":\"é\",\"\\\\\":\"ç\",\"]\":\"ê\",\"^\":\"î\",_:\"è\",\"`\":\"ô\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"ü\",\"~\":\"û\"}},2584:(e,t)=>{var i,s,r;Object.defineProperty(t,\"__esModule\",{value:!0}),t.C1_ESCAPED=t.C1=t.C0=void 0,function(e){e.NUL=\"\\0\",e.SOH=\"\u0001\",e.STX=\"\u0002\",e.ETX=\"\u0003\",e.EOT=\"\u0004\",e.ENQ=\"\u0005\",e.ACK=\"\u0006\",e.BEL=\"\u0007\",e.BS=\"\\b\",e.HT=\"\\t\",e.LF=\"\\n\",e.VT=\"\\v\",e.FF=\"\\f\",e.CR=\"\\r\",e.SO=\"\u000e\",e.SI=\"\u000f\",e.DLE=\"\u0010\",e.DC1=\"\u0011\",e.DC2=\"\u0012\",e.DC3=\"\u0013\",e.DC4=\"\u0014\",e.NAK=\"\u0015\",e.SYN=\"\u0016\",e.ETB=\"\u0017\",e.CAN=\"\u0018\",e.EM=\"\u0019\",e.SUB=\"\u001a\",e.ESC=\"\u001b\",e.FS=\"\u001c\",e.GS=\"\u001d\",e.RS=\"\u001e\",e.US=\"\u001f\",e.SP=\" \",e.DEL=\"\"}(i||(t.C0=i={})),function(e){e.PAD=\"€\",e.HOP=\"\",e.BPH=\"‚\",e.NBH=\"ƒ\",e.IND=\"„\",e.NEL=\"…\",e.SSA=\"†\",e.ESA=\"‡\",e.HTS=\"ˆ\",e.HTJ=\"‰\",e.VTS=\"Š\",e.PLD=\"‹\",e.PLU=\"Œ\",e.RI=\"\",e.SS2=\"Ž\",e.SS3=\"\",e.DCS=\"\",e.PU1=\"‘\",e.PU2=\"’\",e.STS=\"“\",e.CCH=\"”\",e.MW=\"•\",e.SPA=\"–\",e.EPA=\"—\",e.SOS=\"˜\",e.SGCI=\"™\",e.SCI=\"š\",e.CSI=\"›\",e.ST=\"œ\",e.OSC=\"\",e.PM=\"ž\",e.APC=\"Ÿ\"}(s||(t.C1=s={})),function(e){e.ST=`${i.ESC}\\\\`}(r||(t.C1_ESCAPED=r={}))},7399:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.evaluateKeyboardEvent=void 0;const s=i(2584),r={48:[\"0\",\")\"],49:[\"1\",\"!\"],50:[\"2\",\"@\"],51:[\"3\",\"#\"],52:[\"4\",\"$\"],53:[\"5\",\"%\"],54:[\"6\",\"^\"],55:[\"7\",\"&\"],56:[\"8\",\"*\"],57:[\"9\",\"(\"],186:[\";\",\":\"],187:[\"=\",\"+\"],188:[\",\",\"<\"],189:[\"-\",\"_\"],190:[\".\",\">\"],191:[\"/\",\"?\"],192:[\"`\",\"~\"],219:[\"[\",\"{\"],220:[\"\\\\\",\"|\"],221:[\"]\",\"}\"],222:[\"'\",'\"']};t.evaluateKeyboardEvent=function(e,t,i,n){const o={type:0,cancel:!1,key:void 0},a=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:\"UIKeyInputUpArrow\"===e.key?o.key=t?s.C0.ESC+\"OA\":s.C0.ESC+\"[A\":\"UIKeyInputLeftArrow\"===e.key?o.key=t?s.C0.ESC+\"OD\":s.C0.ESC+\"[D\":\"UIKeyInputRightArrow\"===e.key?o.key=t?s.C0.ESC+\"OC\":s.C0.ESC+\"[C\":\"UIKeyInputDownArrow\"===e.key&&(o.key=t?s.C0.ESC+\"OB\":s.C0.ESC+\"[B\");break;case 8:o.key=e.ctrlKey?\"\\b\":s.C0.DEL,e.altKey&&(o.key=s.C0.ESC+o.key);break;case 9:if(e.shiftKey){o.key=s.C0.ESC+\"[Z\";break}o.key=s.C0.HT,o.cancel=!0;break;case 13:o.key=e.altKey?s.C0.ESC+s.C0.CR:s.C0.CR,o.cancel=!0;break;case 27:o.key=s.C0.ESC,e.altKey&&(o.key=s.C0.ESC+s.C0.ESC),o.cancel=!0;break;case 37:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"D\",o.key===s.C0.ESC+\"[1;3D\"&&(o.key=s.C0.ESC+(i?\"b\":\"[1;5D\"))):o.key=t?s.C0.ESC+\"OD\":s.C0.ESC+\"[D\";break;case 39:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"C\",o.key===s.C0.ESC+\"[1;3C\"&&(o.key=s.C0.ESC+(i?\"f\":\"[1;5C\"))):o.key=t?s.C0.ESC+\"OC\":s.C0.ESC+\"[C\";break;case 38:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"A\",i||o.key!==s.C0.ESC+\"[1;3A\"||(o.key=s.C0.ESC+\"[1;5A\")):o.key=t?s.C0.ESC+\"OA\":s.C0.ESC+\"[A\";break;case 40:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"B\",i||o.key!==s.C0.ESC+\"[1;3B\"||(o.key=s.C0.ESC+\"[1;5B\")):o.key=t?s.C0.ESC+\"OB\":s.C0.ESC+\"[B\";break;case 45:e.shiftKey||e.ctrlKey||(o.key=s.C0.ESC+\"[2~\");break;case 46:o.key=a?s.C0.ESC+\"[3;\"+(a+1)+\"~\":s.C0.ESC+\"[3~\";break;case 36:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"H\":t?s.C0.ESC+\"OH\":s.C0.ESC+\"[H\";break;case 35:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"F\":t?s.C0.ESC+\"OF\":s.C0.ESC+\"[F\";break;case 33:e.shiftKey?o.type=2:e.ctrlKey?o.key=s.C0.ESC+\"[5;\"+(a+1)+\"~\":o.key=s.C0.ESC+\"[5~\";break;case 34:e.shiftKey?o.type=3:e.ctrlKey?o.key=s.C0.ESC+\"[6;\"+(a+1)+\"~\":o.key=s.C0.ESC+\"[6~\";break;case 112:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"P\":s.C0.ESC+\"OP\";break;case 113:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"Q\":s.C0.ESC+\"OQ\";break;case 114:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"R\":s.C0.ESC+\"OR\";break;case 115:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"S\":s.C0.ESC+\"OS\";break;case 116:o.key=a?s.C0.ESC+\"[15;\"+(a+1)+\"~\":s.C0.ESC+\"[15~\";break;case 117:o.key=a?s.C0.ESC+\"[17;\"+(a+1)+\"~\":s.C0.ESC+\"[17~\";break;case 118:o.key=a?s.C0.ESC+\"[18;\"+(a+1)+\"~\":s.C0.ESC+\"[18~\";break;case 119:o.key=a?s.C0.ESC+\"[19;\"+(a+1)+\"~\":s.C0.ESC+\"[19~\";break;case 120:o.key=a?s.C0.ESC+\"[20;\"+(a+1)+\"~\":s.C0.ESC+\"[20~\";break;case 121:o.key=a?s.C0.ESC+\"[21;\"+(a+1)+\"~\":s.C0.ESC+\"[21~\";break;case 122:o.key=a?s.C0.ESC+\"[23;\"+(a+1)+\"~\":s.C0.ESC+\"[23~\";break;case 123:o.key=a?s.C0.ESC+\"[24;\"+(a+1)+\"~\":s.C0.ESC+\"[24~\";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(i&&!n||!e.altKey||e.metaKey)!i||e.altKey||e.ctrlKey||e.shiftKey||!e.metaKey?e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&1===e.key.length?o.key=e.key:e.key&&e.ctrlKey&&(\"_\"===e.key&&(o.key=s.C0.US),\"@\"===e.key&&(o.key=s.C0.NUL)):65===e.keyCode&&(o.type=1);else{const t=r[e.keyCode],i=t?.[e.shiftKey?1:0];if(i)o.key=s.C0.ESC+i;else if(e.keyCode>=65&&e.keyCode<=90){const t=e.ctrlKey?e.keyCode-64:e.keyCode+32;let i=String.fromCharCode(t);e.shiftKey&&(i=i.toUpperCase()),o.key=s.C0.ESC+i}else if(32===e.keyCode)o.key=s.C0.ESC+(e.ctrlKey?s.C0.NUL:\" \");else if(\"Dead\"===e.key&&e.code.startsWith(\"Key\")){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),o.key=s.C0.ESC+t,o.cancel=!0}}else e.keyCode>=65&&e.keyCode<=90?o.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?o.key=s.C0.NUL:e.keyCode>=51&&e.keyCode<=55?o.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?o.key=s.C0.DEL:219===e.keyCode?o.key=s.C0.ESC:220===e.keyCode?o.key=s.C0.FS:221===e.keyCode&&(o.key=s.C0.GS)}return o}},482:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s=\"\";for(let r=t;r<i;++r){let t=e[r];t>65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let n=r;n<i;++n){const r=e.charCodeAt(n);if(55296<=r&&r<=56319){if(++n>=i)return this._interim=r,s;const o=e.charCodeAt(n);56320<=o&&o<=57343?t[s++]=1024*(r-55296)+o-56320+65536:(t[s++]=r,t[s++]=o)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,n,o,a=0,h=0,c=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let n,o=0;for(;(n=63&this.interim[++o])&&o<4;)r<<=6,r|=n;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,l=h-o;for(;c<l;){if(c>=i)return 0;if(n=e[c++],128!=(192&n)){c--,s=!0;break}this.interim[o++]=n,r<<=6,r|=63&n}s||(2===h?r<128?c--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const l=i-4;let d=c;for(;d<i;){for(;!(!(d<l)||128&(s=e[d])||128&(r=e[d+1])||128&(n=e[d+2])||128&(o=e[d+3]));)t[a++]=s,t[a++]=r,t[a++]=n,t[a++]=o,d+=4;if(s=e[d++],s<128)t[a++]=s;else if(192==(224&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&n,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=n,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&n)<<6|63&o,h<65536||h>1114111)continue;t[a++]=h}}return a}}},225:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeV6=void 0;const s=i(1480),r=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],n=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];let o;t.UnicodeV6=class{constructor(){if(this.version=\"6\",!o){o=new Uint8Array(65536),o.fill(1),o[0]=0,o.fill(0,1,32),o.fill(0,127,160),o.fill(2,4352,4448),o[9001]=2,o[9002]=2,o.fill(2,11904,42192),o[12351]=1,o.fill(2,44032,55204),o.fill(2,63744,64256),o.fill(2,65040,65050),o.fill(2,65072,65136),o.fill(2,65280,65377),o.fill(2,65504,65511);for(let e=0;e<r.length;++e)o.fill(0,r[e][0],r[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?o[e]:function(e,t){let i,s=0,r=t.length-1;if(e<t[0][0]||e>t[r][1])return!1;for(;r>=s;)if(i=s+r>>1,e>t[i][1])s=i+1;else{if(!(e<t[i][0]))return!0;r=i-1}return!1}(e,n)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let i=this.wcwidth(e),r=0===i&&0!==t;if(r){const e=s.UnicodeService.extractWidth(t);0===e?r=!1:e>i&&(i=e)}return s.UnicodeService.createPropertyValue(0,i,r)}}},5981:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WriteBuffer=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new s.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,t){if(void 0!==t&&this._syncCalls>t)return void(this._syncCalls=0);if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let i;for(this._isSyncWriting=!0;i=this._writeBuffer.shift();){this._action(i);const e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>5e7)throw new Error(\"write data discarded, use flow control to avoid losing data\");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput)return this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t),void this._innerWrite();setTimeout((()=>this._innerWrite()))}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){const i=e||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){const e=this._writeBuffer[this._bufferOffset],s=this._action(e,t);if(s){const e=e=>Date.now()-i>=12?setTimeout((()=>this._innerWrite(0,e))):this._innerWrite(i,e);return void s.catch((e=>(queueMicrotask((()=>{throw e})),Promise.resolve(!1)))).then(e)}const r=this._callbacks[this._bufferOffset];if(r&&r(),this._bufferOffset++,this._pendingData-=e.length,Date.now()-i>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout((()=>this._innerWrite()))):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}t.WriteBuffer=n},5941:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.toRgbString=t.parseColor=void 0;const i=/^([\\da-f])\\/([\\da-f])\\/([\\da-f])$|^([\\da-f]{2})\\/([\\da-f]{2})\\/([\\da-f]{2})$|^([\\da-f]{3})\\/([\\da-f]{3})\\/([\\da-f]{3})$|^([\\da-f]{4})\\/([\\da-f]{4})\\/([\\da-f]{4})$/,s=/^[\\da-f]+$/;function r(e,t){const i=e.toString(16),s=i.length<2?\"0\"+i:i;switch(t){case 4:return i[0];case 8:return s;case 12:return(s+s).slice(0,3);default:return s+s}}t.parseColor=function(e){if(!e)return;let t=e.toLowerCase();if(0===t.indexOf(\"rgb:\")){t=t.slice(4);const e=i.exec(t);if(e){const t=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/t*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/t*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/t*255)]}}else if(0===t.indexOf(\"#\")&&(t=t.slice(1),s.exec(t)&&[3,6,9,12].includes(t.length))){const e=t.length/3,i=[0,0,0];for(let s=0;s<3;++s){const r=parseInt(t.slice(e*s,e*s+e),16);i[s]=1===e?r<<4:2===e?r:3===e?r>>4:r>>8}return i}},t.toRgbString=function(e,t=16){const[i,s,n]=e;return`rgb:${r(i,t)}/${r(s,t)}/${r(n,t)}`}},5770:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PAYLOAD_LIMIT=void 0,t.PAYLOAD_LIMIT=1e7},6351:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DcsHandler=t.DcsParser=void 0;const s=i(482),r=i(8742),n=i(5770),o=[];t.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=o,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=o}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=o,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||o,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].hook(t);else this._handlerFb(this._ident,\"HOOK\",t)}put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._ident,\"PUT\",(0,s.utf32ToString)(e,t,i))}unhook(e,t=!0){if(this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].unhook(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].unhook(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._ident,\"UNHOOK\",e);this._active=o,this._ident=0}};const a=new r.Params;a.addParam(0),t.DcsHandler=class{constructor(e){this._handler=e,this._data=\"\",this._params=a,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():a,this._data=\"\",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,s.utf32ToString)(e,t,i),this._data.length>n.PAYLOAD_LIMIT&&(this._data=\"\",this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then((e=>(this._params=a,this._data=\"\",this._hitLimit=!1,e)));return this._params=a,this._data=\"\",this._hitLimit=!1,t}}},2015:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.EscapeSequenceParser=t.VT500_TRANSITION_TABLE=t.TransitionTable=void 0;const s=i(844),r=i(8742),n=i(6242),o=i(6351);class a{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,i,s){this.table[t<<8|e]=i<<4|s}addMany(e,t,i,s){for(let r=0;r<e.length;r++)this.table[t<<8|e[r]]=i<<4|s}}t.TransitionTable=a;const h=160;t.VT500_TRANSITION_TABLE=function(){const e=new a(4095),t=Array.apply(null,Array(256)).map(((e,t)=>t)),i=(e,i)=>t.slice(e,i),s=i(32,127),r=i(0,24);r.push(25),r.push.apply(r,i(28,32));const n=i(0,14);let o;for(o in e.setDefault(1,0),e.addMany(s,0,2,0),n)e.addMany([24,26,153,154],o,3,0),e.addMany(i(128,144),o,3,0),e.addMany(i(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(r,0,3,0),e.addMany(r,1,3,1),e.add(127,1,0,1),e.addMany(r,8,0,8),e.addMany(r,3,3,3),e.add(127,3,0,3),e.addMany(r,4,3,4),e.add(127,4,0,4),e.addMany(r,6,3,6),e.addMany(r,5,3,5),e.add(127,5,0,5),e.addMany(r,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(s,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(i(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(s,7,0,7),e.addMany(r,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(i(64,127),3,7,0),e.addMany(i(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(i(48,60),4,8,4),e.addMany(i(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(i(32,64),6,0,6),e.add(127,6,0,6),e.addMany(i(64,127),6,0,0),e.addMany(i(32,48),3,9,5),e.addMany(i(32,48),5,9,5),e.addMany(i(48,64),5,0,6),e.addMany(i(64,127),5,7,0),e.addMany(i(32,48),4,9,5),e.addMany(i(32,48),1,9,2),e.addMany(i(32,48),2,9,2),e.addMany(i(48,127),2,10,0),e.addMany(i(48,80),1,10,0),e.addMany(i(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(i(96,127),1,10,0),e.add(80,1,11,9),e.addMany(r,9,0,9),e.add(127,9,0,9),e.addMany(i(28,32),9,0,9),e.addMany(i(32,48),9,9,12),e.addMany(i(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(r,11,0,11),e.addMany(i(32,128),11,0,11),e.addMany(i(28,32),11,0,11),e.addMany(r,10,0,10),e.add(127,10,0,10),e.addMany(i(28,32),10,0,10),e.addMany(i(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(i(32,48),10,9,12),e.addMany(r,12,0,12),e.add(127,12,0,12),e.addMany(i(28,32),12,0,12),e.addMany(i(32,48),12,9,12),e.addMany(i(48,64),12,0,11),e.addMany(i(64,127),12,12,13),e.addMany(i(64,127),10,12,13),e.addMany(i(64,127),9,12,13),e.addMany(r,13,13,13),e.addMany(s,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(h,0,2,0),e.add(h,8,5,8),e.add(h,6,0,6),e.add(h,11,0,11),e.add(h,13,13,13),e}();class c extends s.Disposable{constructor(e=t.VT500_TRANSITION_TABLE){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new r.Params,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(e,t,i)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,t)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,s.toDisposable)((()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)}))),this._oscParser=this.register(new n.OscParser),this._dcsParser=this.register(new o.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:\"\\\\\"},(()=>!0))}_identifier(e,t=[64,126]){let i=0;if(e.prefix){if(e.prefix.length>1)throw new Error(\"only one byte as prefix supported\");if(i=e.prefix.charCodeAt(0),i&&60>i||i>63)throw new Error(\"prefix must be in range 0x3c .. 0x3f\")}if(e.intermediates){if(e.intermediates.length>2)throw new Error(\"only two bytes as intermediates are supported\");for(let t=0;t<e.intermediates.length;++t){const s=e.intermediates.charCodeAt(t);if(32>s||s>47)throw new Error(\"intermediate must be in range 0x20 .. 0x2f\");i<<=8,i|=s}}if(1!==e.final.length)throw new Error(\"final must be a single byte\");const s=e.final.charCodeAt(0);if(t[0]>s||s>t[1])throw new Error(`final must be in range ${t[0]} .. ${t[1]}`);return i<<=8,i|=s,i}identToString(e){const t=[];for(;e;)t.push(String.fromCharCode(255&e)),e>>=8;return t.reverse().join(\"\")}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){const i=this._identifier(e,[48,126]);void 0===this._escHandlers[i]&&(this._escHandlers[i]=[]);const s=this._escHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){const i=this._identifier(e);void 0===this._csiHandlers[i]&&(this._csiHandlers[i]=[]);const s=this._csiHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,0!==this._parseStack.state&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,i,s,r){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=i,this._parseStack.transition=s,this._parseStack.chunkPos=r}parse(e,t,i){let s,r=0,n=0,o=0;if(this._parseStack.state)if(2===this._parseStack.state)this._parseStack.state=0,o=this._parseStack.chunkPos+1;else{if(void 0===i||1===this._parseStack.state)throw this._parseStack.state=1,new Error(\"improper continuation due to previous async handler, giving up parsing\");const t=this._parseStack.handlers;let n=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](this._params),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 4:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 6:if(r=e[this._parseStack.chunkPos],s=this._dcsParser.unhook(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(r=e[this._parseStack.chunkPos],s=this._oscParser.end(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,o=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=15&this._parseStack.transition}for(let i=o;i<t;++i){switch(r=e[i],n=this._transitions.table[this.currentState<<8|(r<160?r:h)],n>>4){case 2:for(let s=i+1;;++s){if(s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}}break;case 3:this._executeHandlers[r]?this._executeHandlers[r]():this._executeHandlerFb(r),this.precedingJoinState=0;break;case 0:break;case 1:if(this._errorHandler({position:i,code:r,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:const o=this._csiHandlers[this._collect<<8|r];let a=o?o.length-1:-1;for(;a>=0&&(s=o[a](this._params),!0!==s);a--)if(s instanceof Promise)return this._preserveStack(3,o,a,n,i),s;a<0&&this._csiHandlerFb(this._collect<<8|r,this._params),this.precedingJoinState=0;break;case 8:do{switch(r){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(r-48)}}while(++i<t&&(r=e[i])>47&&r<60);i--;break;case 9:this._collect<<=8,this._collect|=r;break;case 10:const c=this._escHandlers[this._collect<<8|r];let l=c?c.length-1:-1;for(;l>=0&&(s=c[l](),!0!==s);l--)if(s instanceof Promise)return this._preserveStack(4,c,l,n,i),s;l<0&&this._escHandlerFb(this._collect<<8|r),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|r,this._params);break;case 13:for(let s=i+1;;++s)if(s>=t||24===(r=e[s])||26===r||27===r||r>127&&r<h){this._dcsParser.put(e,i,s),i=s-1;break}break;case 14:if(s=this._dcsParser.unhook(24!==r&&26!==r),s)return this._preserveStack(6,[],0,n,i),s;27===r&&(n|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break;case 4:this._oscParser.start();break;case 5:for(let s=i+1;;s++)if(s>=t||(r=e[s])<32||r>127&&r<h){this._oscParser.put(e,i,s),i=s-1;break}break;case 6:if(s=this._oscParser.end(24!==r&&26!==r),s)return this._preserveStack(5,[],0,n,i),s;27===r&&(n|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0}this.currentState=15&n}}}t.EscapeSequenceParser=c},6242:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscHandler=t.OscParser=void 0;const s=i(5770),r=i(482),n=[];t.OscParser=class{constructor(){this._state=0,this._active=n,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=n}reset(){if(2===this._state)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=n,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||n,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].start();else this._handlerFb(this._id,\"START\")}_put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._id,\"PUT\",(0,r.utf32ToString)(e,t,i))}start(){this.reset(),this._state=1}put(e,t,i){if(3!==this._state){if(1===this._state)for(;t<i;){const i=e[t++];if(59===i){this._state=2,this._start();break}if(i<48||57<i)return void(this._state=3);-1===this._id&&(this._id=0),this._id=10*this._id+i-48}2===this._state&&i-t>0&&this._put(e,t,i)}}end(e,t=!0){if(0!==this._state){if(3!==this._state)if(1===this._state&&this._start(),this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].end(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].end(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._id,\"END\",e);this._active=n,this._id=-1,this._state=0}}},t.OscHandler=class{constructor(e){this._handler=e,this._data=\"\",this._hitLimit=!1}start(){this._data=\"\",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,r.utf32ToString)(e,t,i),this._data.length>s.PAYLOAD_LIMIT&&(this._data=\"\",this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then((e=>(this._data=\"\",this._hitLimit=!1,e)));return this._data=\"\",this._hitLimit=!1,t}}},8742:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Params=void 0;const i=2147483647;class s{static fromArray(e){const t=new s;if(!e.length)return t;for(let i=Array.isArray(e[0])?1:0;i<e.length;++i){const s=e[i];if(Array.isArray(s))for(let e=0;e<s.length;++e)t.addSubParam(s[e]);else t.addParam(s)}return t}constructor(e=32,t=32){if(this.maxLength=e,this.maxSubParamsLength=t,t>256)throw new Error(\"maxSubParamsLength must not be greater than 256\");this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}clone(){const e=new s(this.maxLength,this.maxSubParamsLength);return e.params.set(this.params),e.length=this.length,e._subParams.set(this._subParams),e._subParamsLength=this._subParamsLength,e._subParamsIdx.set(this._subParamsIdx),e._rejectDigits=this._rejectDigits,e._rejectSubDigits=this._rejectSubDigits,e._digitIsSub=this._digitIsSub,e}toArray(){const e=[];for(let t=0;t<this.length;++t){e.push(this.params[t]);const i=this._subParamsIdx[t]>>8,s=255&this._subParamsIdx[t];s-i>0&&e.push(Array.prototype.slice.call(this._subParams,i,s))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(e<-1)throw new Error(\"values lesser than -1 are not allowed\");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>i?i:e}}addSubParam(e){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(e<-1)throw new Error(\"values lesser than -1 are not allowed\");this._subParams[this._subParamsLength++]=e>i?i:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(255&this._subParamsIdx[e])-(this._subParamsIdx[e]>>8)>0}getSubParams(e){const t=this._subParamsIdx[e]>>8,i=255&this._subParamsIdx[e];return i-t>0?this._subParams.subarray(t,i):null}getSubParamsAll(){const e={};for(let t=0;t<this.length;++t){const i=this._subParamsIdx[t]>>8,s=255&this._subParamsIdx[t];s-i>0&&(e[t]=this._subParams.slice(i,s))}return e}addDigit(e){let t;if(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;const s=this._digitIsSub?this._subParams:this.params,r=s[t-1];s[t-1]=~r?Math.min(10*r+e,i):e}}t.Params=s},5741:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.AddonManager=void 0,t.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){const i={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(i),t.dispose=()=>this._wrappedAddonDispose(i),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let i=0;i<this._addons.length;i++)if(this._addons[i]===e){t=i;break}if(-1===t)throw new Error(\"Could not dispose an addon that has not been loaded\");e.isDisposed=!0,e.dispose.apply(e.instance),this._addons.splice(t,1)}}},8771:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferApiView=void 0;const s=i(3785),r=i(511);t.BufferApiView=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){const t=this._buffer.lines.get(e);if(t)return new s.BufferLineApiView(t)}getNullCell(){return new r.CellData}}},3785:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferLineApiView=void 0;const s=i(511);t.BufferLineApiView=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new s.CellData)}translateToString(e,t,i){return this._line.translateToString(e,t,i)}}},8285:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferNamespaceApi=void 0;const s=i(8771),r=i(8460),n=i(844);class o extends n.Disposable{constructor(e){super(),this._core=e,this._onBufferChange=this.register(new r.EventEmitter),this.onBufferChange=this._onBufferChange.event,this._normal=new s.BufferApiView(this._core.buffers.normal,\"normal\"),this._alternate=new s.BufferApiView(this._core.buffers.alt,\"alternate\"),this._core.buffers.onBufferActivate((()=>this._onBufferChange.fire(this.active)))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error(\"Active buffer is neither normal nor alternate\")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}t.BufferNamespaceApi=o},7975:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ParserApi=void 0,t.ParserApi=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,(e=>t(e.toArray())))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,((e,i)=>t(e,i.toArray())))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}}},7090:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeApi=void 0,t.UnicodeApi=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}}},744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferService=t.MINIMUM_ROWS=t.MINIMUM_COLS=void 0;const n=i(8460),o=i(844),a=i(5295),h=i(2585);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;let c=t.BufferService=class extends o.Disposable{get buffer(){return this.buffers.active}constructor(e){super(),this.isUserScrolling=!1,this._onResize=this.register(new n.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new n.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,t.MINIMUM_COLS),this.rows=Math.max(e.rawOptions.rows||0,t.MINIMUM_ROWS),this.buffers=this.register(new a.BufferSet(e,this))}resize(e,t){this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){const i=this.buffer;let s;s=this._cachedBlankLine,s&&s.length===this.cols&&s.getFg(0)===e.fg&&s.getBg(0)===e.bg||(s=i.getBlankLine(e,t),this._cachedBlankLine=s),s.isWrapped=t;const r=i.ybase+i.scrollTop,n=i.ybase+i.scrollBottom;if(0===i.scrollTop){const e=i.lines.isFull;n===i.lines.length-1?e?i.lines.recycle().copyFrom(s):i.lines.push(s.clone()):i.lines.splice(n+1,0,s.clone()),e?this.isUserScrolling&&(i.ydisp=Math.max(i.ydisp-1,0)):(i.ybase++,this.isUserScrolling||i.ydisp++)}else{const e=n-r+1;i.lines.shiftElements(r+1,e-1,-1),i.lines.set(n,s.clone())}this.isUserScrolling||(i.ydisp=i.ybase),this._onScroll.fire(i.ydisp)}scrollLines(e,t,i){const s=this.buffer;if(e<0){if(0===s.ydisp)return;this.isUserScrolling=!0}else e+s.ydisp>=s.ybase&&(this.isUserScrolling=!1);const r=s.ydisp;s.ydisp=Math.max(Math.min(s.ydisp+e,s.ybase),0),r!==s.ydisp&&(t||this._onScroll.fire(s.ydisp))}};t.BufferService=c=s([r(0,h.IOptionsService)],c)},7994:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharsetService=void 0,t.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}}},1753:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreMouseService=void 0;const n=i(2585),o=i(8460),a=i(844),h={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>4!==e.button&&1===e.action&&(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>32!==e.action},DRAG:{events:23,restrict:e=>32!==e.action||3!==e.button},ANY:{events:31,restrict:e=>!0}};function c(e,t){let i=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return 4===e.button?(i|=64,i|=e.action):(i|=3&e.button,4&e.button&&(i|=64),8&e.button&&(i|=128),32===e.action?i|=32:0!==e.action||t||(i|=3)),i}const l=String.fromCharCode,d={DEFAULT:e=>{const t=[c(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?\"\":`\u001b[M${l(t[0])}${l(t[1])}${l(t[2])}`},SGR:e=>{const t=0===e.action&&4!==e.button?\"m\":\"M\";return`\u001b[<${c(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{const t=0===e.action&&4!==e.button?\"m\":\"M\";return`\u001b[<${c(e,!0)};${e.x};${e.y}${t}`}};let _=t.CoreMouseService=class extends a.Disposable{constructor(e,t){super(),this._bufferService=e,this._coreService=t,this._protocols={},this._encodings={},this._activeProtocol=\"\",this._activeEncoding=\"\",this._lastEvent=null,this._onProtocolChange=this.register(new o.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(const e of Object.keys(h))this.addProtocol(e,h[e]);for(const e of Object.keys(d))this.addEncoding(e,d[e]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return 0!==this._protocols[this._activeProtocol].events}set activeProtocol(e){if(!this._protocols[e])throw new Error(`unknown protocol \"${e}\"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw new Error(`unknown encoding \"${e}\"`);this._activeEncoding=e}reset(){this.activeProtocol=\"NONE\",this.activeEncoding=\"DEFAULT\",this._lastEvent=null}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows)return!1;if(4===e.button&&32===e.action)return!1;if(3===e.button&&32!==e.action)return!1;if(4!==e.button&&(2===e.action||3===e.action))return!1;if(e.col++,e.row++,32===e.action&&this._lastEvent&&this._equalEvents(this._lastEvent,e,\"SGR_PIXELS\"===this._activeEncoding))return!1;if(!this._protocols[this._activeProtocol].restrict(e))return!1;const t=this._encodings[this._activeEncoding](e);return t&&(\"DEFAULT\"===this._activeEncoding?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(1&e),up:!!(2&e),drag:!!(4&e),move:!!(8&e),wheel:!!(16&e)}}_equalEvents(e,t,i){if(i){if(e.x!==t.x)return!1;if(e.y!==t.y)return!1}else{if(e.col!==t.col)return!1;if(e.row!==t.row)return!1}return e.button===t.button&&e.action===t.action&&e.ctrl===t.ctrl&&e.alt===t.alt&&e.shift===t.shift}};t.CoreMouseService=_=s([r(0,n.IBufferService),r(1,n.ICoreService)],_)},6975:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreService=void 0;const n=i(1439),o=i(8460),a=i(844),h=i(2585),c=Object.freeze({insertMode:!1}),l=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0});let d=t.CoreService=class extends a.Disposable{constructor(e,t,i){super(),this._bufferService=e,this._logService=t,this._optionsService=i,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new o.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new o.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new o.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new o.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,n.clone)(c),this.decPrivateModes=(0,n.clone)(l)}reset(){this.modes=(0,n.clone)(c),this.decPrivateModes=(0,n.clone)(l)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;const i=this._bufferService.buffer;t&&this._optionsService.rawOptions.scrollOnUserInput&&i.ybase!==i.ydisp&&this._onRequestScrollToBottom.fire(),t&&this._onUserInput.fire(),this._logService.debug(`sending data \"${e}\"`,(()=>e.split(\"\").map((e=>e.charCodeAt(0))))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary \"${e}\"`,(()=>e.split(\"\").map((e=>e.charCodeAt(0))))),this._onBinary.fire(e))}};t.CoreService=d=s([r(0,h.IBufferService),r(1,h.ILogService),r(2,h.IOptionsService)],d)},9074:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DecorationService=void 0;const s=i(8055),r=i(8460),n=i(844),o=i(6106);let a=0,h=0;class c extends n.Disposable{get decorations(){return this._decorations.values()}constructor(){super(),this._decorations=new o.SortedList((e=>e?.marker.line)),this._onDecorationRegistered=this.register(new r.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new r.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,n.toDisposable)((()=>this.reset())))}registerDecoration(e){if(e.marker.isDisposed)return;const t=new l(e);if(t){const e=t.marker.onDispose((()=>t.dispose()));t.onDispose((()=>{t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),e.dispose())})),this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(const e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,i){let s=0,r=0;for(const n of this._decorations.getKeyIterator(t))s=n.options.x??0,r=s+(n.options.width??1),e>=s&&e<r&&(!i||(n.options.layer??\"bottom\")===i)&&(yield n)}forEachDecorationAtCell(e,t,i,s){this._decorations.forEachByKey(t,(t=>{a=t.options.x??0,h=a+(t.options.width??1),e>=a&&e<h&&(!i||(t.options.layer??\"bottom\")===i)&&s(t)}))}}t.DecorationService=c;class l extends n.Disposable{get isDisposed(){return this._isDisposed}get backgroundColorRGB(){return null===this._cachedBg&&(this.options.backgroundColor?this._cachedBg=s.css.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return null===this._cachedFg&&(this.options.foregroundColor?this._cachedFg=s.css.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}constructor(e){super(),this.options=e,this.onRenderEmitter=this.register(new r.EventEmitter),this.onRender=this.onRenderEmitter.event,this._onDispose=this.register(new r.EventEmitter),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=e.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position=\"full\")}dispose(){this._onDispose.fire(),super.dispose()}}},4348:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.InstantiationService=t.ServiceCollection=void 0;const s=i(2585),r=i(8343);class n{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}forEach(e){for(const[t,i]of this._entries.entries())e(t,i)}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}}t.ServiceCollection=n,t.InstantiationService=class{constructor(){this._services=new n,this._services.set(s.IInstantiationService,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){const i=(0,r.getServiceDependencies)(e).sort(((e,t)=>e.index-t.index)),s=[];for(const t of i){const i=this._services.get(t.id);if(!i)throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id}.`);s.push(i)}const n=i.length>0?i[0].index:t.length;if(t.length!==n)throw new Error(`[createInstance] First service dependency of ${e.name} at position ${n+1} conflicts with ${t.length} static arguments`);return new e(...[...t,...s])}}},7866:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;const n=i(844),o=i(2585),a={trace:o.LogLevelEnum.TRACE,debug:o.LogLevelEnum.DEBUG,info:o.LogLevelEnum.INFO,warn:o.LogLevelEnum.WARN,error:o.LogLevelEnum.ERROR,off:o.LogLevelEnum.OFF};let h,c=t.LogService=class extends n.Disposable{get logLevel(){return this._logLevel}constructor(e){super(),this._optionsService=e,this._logLevel=o.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange(\"logLevel\",(()=>this._updateLogLevel()))),h=this}_updateLogLevel(){this._logLevel=a[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)\"function\"==typeof e[t]&&(e[t]=e[t]())}_log(e,t,i){this._evalLazyOptionalParams(i),e.call(console,(this._optionsService.options.logger?\"\":\"xterm.js: \")+t,...i)}trace(e,...t){this._logLevel<=o.LogLevelEnum.TRACE&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,e,t)}debug(e,...t){this._logLevel<=o.LogLevelEnum.DEBUG&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,e,t)}info(e,...t){this._logLevel<=o.LogLevelEnum.INFO&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,e,t)}warn(e,...t){this._logLevel<=o.LogLevelEnum.WARN&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,e,t)}error(e,...t){this._logLevel<=o.LogLevelEnum.ERROR&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,e,t)}};t.LogService=c=s([r(0,o.IOptionsService)],c),t.setTraceLogger=function(e){h=e},t.traceCall=function(e,t,i){if(\"function\"!=typeof i.value)throw new Error(\"not supported\");const s=i.value;i.value=function(...e){if(h.logLevel!==o.LogLevelEnum.TRACE)return s.apply(this,e);h.trace(`GlyphRenderer#${s.name}(${e.map((e=>JSON.stringify(e))).join(\", \")})`);const t=s.apply(this,e);return h.trace(`GlyphRenderer#${s.name} return`,t),t}}},7302:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.OptionsService=t.DEFAULT_OPTIONS=void 0;const s=i(8460),r=i(844),n=i(6114);t.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:\"block\",cursorWidth:1,cursorInactiveStyle:\"outline\",customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:\"alt\",fastScrollSensitivity:5,fontFamily:\"courier-new, courier, monospace\",fontSize:15,fontWeight:\"normal\",fontWeightBold:\"bold\",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:\"info\",logger:null,scrollback:1e3,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rescaleOverlappingGlyphs:!1,rightClickSelectsWord:n.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:\" ()[]{}',\\\"`\",altClickMovesCursor:!0,convertEol:!1,termName:\"xterm\",cancelEvents:!1,overviewRulerWidth:0};const o=[\"normal\",\"bold\",\"100\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"];class a extends r.Disposable{constructor(e){super(),this._onOptionChange=this.register(new s.EventEmitter),this.onOptionChange=this._onOptionChange.event;const i={...t.DEFAULT_OPTIONS};for(const t in e)if(t in i)try{const s=e[t];i[t]=this._sanitizeAndValidateOption(t,s)}catch(e){console.error(e)}this.rawOptions=i,this.options={...i},this._setupOptions(),this.register((0,r.toDisposable)((()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null})))}onSpecificOptionChange(e,t){return this.onOptionChange((i=>{i===e&&t(this.rawOptions[e])}))}onMultipleOptionChange(e,t){return this.onOptionChange((i=>{-1!==e.indexOf(i)&&t()}))}_setupOptions(){const e=e=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key \"${e}\"`);return this.rawOptions[e]},i=(e,i)=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key \"${e}\"`);i=this._sanitizeAndValidateOption(e,i),this.rawOptions[e]!==i&&(this.rawOptions[e]=i,this._onOptionChange.fire(e))};for(const t in this.rawOptions){const s={get:e.bind(this,t),set:i.bind(this,t)};Object.defineProperty(this.options,t,s)}}_sanitizeAndValidateOption(e,i){switch(e){case\"cursorStyle\":if(i||(i=t.DEFAULT_OPTIONS[e]),!function(e){return\"block\"===e||\"underline\"===e||\"bar\"===e}(i))throw new Error(`\"${i}\" is not a valid value for ${e}`);break;case\"wordSeparator\":i||(i=t.DEFAULT_OPTIONS[e]);break;case\"fontWeight\":case\"fontWeightBold\":if(\"number\"==typeof i&&1<=i&&i<=1e3)break;i=o.includes(i)?i:t.DEFAULT_OPTIONS[e];break;case\"cursorWidth\":i=Math.floor(i);case\"lineHeight\":case\"tabStopWidth\":if(i<1)throw new Error(`${e} cannot be less than 1, value: ${i}`);break;case\"minimumContrastRatio\":i=Math.max(1,Math.min(21,Math.round(10*i)/10));break;case\"scrollback\":if((i=Math.min(i,4294967295))<0)throw new Error(`${e} cannot be less than 0, value: ${i}`);break;case\"fastScrollSensitivity\":case\"scrollSensitivity\":if(i<=0)throw new Error(`${e} cannot be less than or equal to 0, value: ${i}`);break;case\"rows\":case\"cols\":if(!i&&0!==i)throw new Error(`${e} must be numeric, value: ${i}`);break;case\"windowsPty\":i=i??{}}return i}}t.OptionsService=a},2660:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscLinkService=void 0;const n=i(2585);let o=t.OscLinkService=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){const t=this._bufferService.buffer;if(void 0===e.id){const i=t.addMarker(t.ybase+t.y),s={data:e,id:this._nextId++,lines:[i]};return i.onDispose((()=>this._removeMarkerFromLink(s,i))),this._dataByLinkId.set(s.id,s),s.id}const i=e,s=this._getEntryIdKey(i),r=this._entriesWithId.get(s);if(r)return this.addLineToLink(r.id,t.ybase+t.y),r.id;const n=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(i),data:i,lines:[n]};return n.onDispose((()=>this._removeMarkerFromLink(o,n))),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){const i=this._dataByLinkId.get(e);if(i&&i.lines.every((e=>e.line!==t))){const e=this._bufferService.buffer.addMarker(t);i.lines.push(e),e.onDispose((()=>this._removeMarkerFromLink(i,e)))}}getLinkData(e){return this._dataByLinkId.get(e)?.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){const i=e.lines.indexOf(t);-1!==i&&(e.lines.splice(i,1),0===e.lines.length&&(void 0!==e.data.id&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};t.OscLinkService=o=s([r(0,n.IBufferService)],o)},8343:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;const i=\"di$target\",s=\"di$dependencies\";t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e[s]||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const r=function(e,t,n){if(3!==arguments.length)throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");!function(e,t,r){t[i]===t?t[s].push({id:e,index:r}):(t[s]=[{id:e,index:r}],t[i]=t)}(r,e,n)};return r.toString=()=>e,t.serviceRegistry.set(e,r),r}},2585:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(8343);var r;t.IBufferService=(0,s.createDecorator)(\"BufferService\"),t.ICoreMouseService=(0,s.createDecorator)(\"CoreMouseService\"),t.ICoreService=(0,s.createDecorator)(\"CoreService\"),t.ICharsetService=(0,s.createDecorator)(\"CharsetService\"),t.IInstantiationService=(0,s.createDecorator)(\"InstantiationService\"),function(e){e[e.TRACE=0]=\"TRACE\",e[e.DEBUG=1]=\"DEBUG\",e[e.INFO=2]=\"INFO\",e[e.WARN=3]=\"WARN\",e[e.ERROR=4]=\"ERROR\",e[e.OFF=5]=\"OFF\"}(r||(t.LogLevelEnum=r={})),t.ILogService=(0,s.createDecorator)(\"LogService\"),t.IOptionsService=(0,s.createDecorator)(\"OptionsService\"),t.IOscLinkService=(0,s.createDecorator)(\"OscLinkService\"),t.IUnicodeService=(0,s.createDecorator)(\"UnicodeService\"),t.IDecorationService=(0,s.createDecorator)(\"DecorationService\")},1480:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeService=void 0;const s=i(8460),r=i(225);class n{static extractShouldJoin(e){return 0!=(1&e)}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,t,i=!1){return(16777215&e)<<3|(3&t)<<1|(i?1:0)}constructor(){this._providers=Object.create(null),this._active=\"\",this._onChange=new s.EventEmitter,this.onChange=this._onChange.event;const e=new r.UnicodeV6;this.register(e),this._active=e.version,this._activeProvider=e}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw new Error(`unknown Unicode version \"${e}\"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(e){let t=0,i=0;const s=e.length;for(let r=0;r<s;++r){let o=e.charCodeAt(r);if(55296<=o&&o<=56319){if(++r>=s)return t+this.wcwidth(o);const i=e.charCodeAt(r);56320<=i&&i<=57343?o=1024*(o-55296)+i-56320+65536:t+=this.wcwidth(i)}const a=this.charProperties(o,i);let h=n.extractWidth(a);n.extractShouldJoin(a)&&(h-=n.extractWidth(i)),t+=h,i=a}return t}charProperties(e,t){return this._activeProvider.charProperties(e,t)}}t.UnicodeService=n}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,i),n.exports}var s={};return(()=>{var e=s;Object.defineProperty(e,\"__esModule\",{value:!0}),e.Terminal=void 0;const t=i(9042),r=i(3236),n=i(844),o=i(5741),a=i(8285),h=i(7975),c=i(7090),l=[\"cols\",\"rows\"];class d extends n.Disposable{constructor(e){super(),this._core=this.register(new r.Terminal(e)),this._addonManager=this.register(new o.AddonManager),this._publicOptions={...this._core.options};const t=e=>this._core.options[e],i=(e,t)=>{this._checkReadonlyOptions(e),this._core.options[e]=t};for(const e in this._core.options){const s={get:t.bind(this,e),set:i.bind(this,e)};Object.defineProperty(this._publicOptions,e,s)}}_checkReadonlyOptions(e){if(l.includes(e))throw new Error(`Option \"${e}\" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error(\"You must set the allowProposedApi option to true to use proposed API\")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new h.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new c.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=this.register(new a.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){const e=this._core.coreService.decPrivateModes;let t=\"none\";switch(this._core.coreMouseService.activeProtocol){case\"X10\":t=\"x10\";break;case\"VT200\":t=\"vt200\";break;case\"DRAG\":t=\"drag\";break;case\"ANY\":t=\"any\"}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(const t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}input(e,t=!0){this._core.input(e,t)}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}attachCustomWheelEventHandler(e){this._core.attachCustomWheelEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.registerMarker(e)}registerDecoration(e){return this._checkProposedApi(),this._verifyPositiveIntegers(e.x??0,e.width??0,e.height??0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,i){this._verifyIntegers(e,t,i),this._core.select(e,t,i)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){super.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write(\"\\r\\n\",t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return t}_verifyIntegers(...e){for(const t of e)if(t===1/0||isNaN(t)||t%1!=0)throw new Error(\"This API only accepts integers\")}_verifyPositiveIntegers(...e){for(const t of e)if(t&&(t===1/0||isNaN(t)||t%1!=0||t<0))throw new Error(\"This API only accepts positive integers\")}}e.Terminal=d})(),s})()));\n//# sourceMappingURL=xterm.js.map","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*\n* React Tooltip\n* {@link https://github.com/ReactTooltip/react-tooltip}\n* @copyright ReactTooltip Team\n* @license MIT\n*/\nimport e,{useLayoutEffect as t,useEffect as o,createContext as r,useState as l,useCallback as n,useMemo as i,useContext as c,useRef as s,useImperativeHandle as a}from\"react\";import{arrow as u,computePosition as d,offset as p,flip as v,shift as m,autoUpdate as f}from\"@floating-ui/dom\";import y from\"classnames\";const h=\"react-tooltip-core-styles\",w=\"react-tooltip-base-styles\",b={core:!1,base:!1};function S({css:e,id:t=w,type:o=\"base\",ref:r}){var l,n;if(!e||\"undefined\"==typeof document||b[o])return;if(\"core\"===o&&\"undefined\"!=typeof process&&(null===(l=null===process||void 0===process?void 0:process.env)||void 0===l?void 0:l.REACT_TOOLTIP_DISABLE_CORE_STYLES))return;if(\"base\"!==o&&\"undefined\"!=typeof process&&(null===(n=null===process||void 0===process?void 0:process.env)||void 0===n?void 0:n.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;\"core\"===o&&(t=h),r||(r={});const{insertAt:i}=r;if(document.getElementById(t))return;const c=document.head||document.getElementsByTagName(\"head\")[0],s=document.createElement(\"style\");s.id=t,s.type=\"text/css\",\"top\"===i&&c.firstChild?c.insertBefore(s,c.firstChild):c.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e)),b[o]=!0}function g({type:e=\"base\",id:t=w}={}){if(!b[e])return;\"core\"===e&&(t=h);const o=document.getElementById(t);\"style\"===(null==o?void 0:o.tagName)?null==o||o.remove():console.warn(`[react-tooltip] Failed to remove 'style' element with id '${t}'. Call \\`injectStyle()\\` first`),b[e]=!1}const E=async({elementReference:e=null,tooltipReference:t=null,tooltipArrowReference:o=null,place:r=\"top\",offset:l=10,strategy:n=\"absolute\",middlewares:i=[p(Number(l)),v({fallbackAxisSideDirection:\"start\"}),m({padding:5})],border:c,arrowSize:s=8})=>{if(!e)return{tooltipStyles:{},tooltipArrowStyles:{},place:r};if(null===t)return{tooltipStyles:{},tooltipArrowStyles:{},place:r};const a=i;return o?(a.push(u({element:o,padding:5})),d(e,t,{placement:r,strategy:n,middleware:a}).then((({x:e,y:t,placement:o,middlewareData:r})=>{var l,n;const i={left:`${e}px`,top:`${t}px`,border:c},{x:a,y:u}=null!==(l=r.arrow)&&void 0!==l?l:{x:0,y:0},d=null!==(n={top:\"bottom\",right:\"left\",bottom:\"top\",left:\"right\"}[o.split(\"-\")[0]])&&void 0!==n?n:\"bottom\",p=c&&{borderBottom:c,borderRight:c};let v=0;if(c){const e=`${c}`.match(/(\\d+)px/);v=(null==e?void 0:e[1])?Number(e[1]):1}return{tooltipStyles:i,tooltipArrowStyles:{left:null!=a?`${a}px`:\"\",top:null!=u?`${u}px`:\"\",right:\"\",bottom:\"\",...p,[d]:`-${s/2+v}px`},place:o}}))):d(e,t,{placement:\"bottom\",strategy:n,middleware:a}).then((({x:e,y:t,placement:o})=>({tooltipStyles:{left:`${e}px`,top:`${t}px`},tooltipArrowStyles:{},place:o})))},A=(e,t)=>!(\"CSS\"in window&&\"supports\"in window.CSS)||window.CSS.supports(e,t),_=(e,t,o)=>{let r=null;const l=function(...l){const n=()=>{r=null,o||e.apply(this,l)};o&&!r&&(e.apply(this,l),r=setTimeout(n,t)),o||(r&&clearTimeout(r),r=setTimeout(n,t))};return l.cancel=()=>{r&&(clearTimeout(r),r=null)},l},O=e=>null!==e&&!Array.isArray(e)&&\"object\"==typeof e,k=(e,t)=>{if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every(((e,o)=>k(e,t[o])));if(Array.isArray(e)!==Array.isArray(t))return!1;if(!O(e)||!O(t))return e===t;const o=Object.keys(e),r=Object.keys(t);return o.length===r.length&&o.every((o=>k(e[o],t[o])))},T=e=>{if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;const t=getComputedStyle(e);return[\"overflow\",\"overflow-x\",\"overflow-y\"].some((e=>{const o=t.getPropertyValue(e);return\"auto\"===o||\"scroll\"===o}))},L=e=>{if(!e)return null;let t=e.parentElement;for(;t;){if(T(t))return t;t=t.parentElement}return document.scrollingElement||document.documentElement},C=\"undefined\"!=typeof window?t:o,R=e=>{e.current&&(clearTimeout(e.current),e.current=null)},x=\"DEFAULT_TOOLTIP_ID\",N={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},$=r({getTooltipData:()=>N}),j=({children:t})=>{const[o,r]=l({[x]:new Set}),[c,s]=l({[x]:{current:null}}),a=(e,...t)=>{r((o=>{var r;const l=null!==(r=o[e])&&void 0!==r?r:new Set;return t.forEach((e=>l.add(e))),{...o,[e]:new Set(l)}}))},u=(e,...t)=>{r((o=>{const r=o[e];return r?(t.forEach((e=>r.delete(e))),{...o}):o}))},d=n(((e=x)=>{var t,r;return{anchorRefs:null!==(t=o[e])&&void 0!==t?t:new Set,activeAnchor:null!==(r=c[e])&&void 0!==r?r:{current:null},attach:(...t)=>a(e,...t),detach:(...t)=>u(e,...t),setActiveAnchor:t=>((e,t)=>{s((o=>{var r;return(null===(r=o[e])||void 0===r?void 0:r.current)===t.current?o:{...o,[e]:t}}))})(e,t)}}),[o,c,a,u]),p=i((()=>({getTooltipData:d})),[d]);return e.createElement($.Provider,{value:p},t)};function I(e=x){return c($).getTooltipData(e)}const z=({tooltipId:t,children:r,className:l,place:n,content:i,html:c,variant:a,offset:u,wrapper:d,events:p,positionStrategy:v,delayShow:m,delayHide:f})=>{const{attach:h,detach:w}=I(t),b=s(null);return o((()=>(h(b),()=>{w(b)})),[]),e.createElement(\"span\",{ref:b,className:y(\"react-tooltip-wrapper\",l),\"data-tooltip-place\":n,\"data-tooltip-content\":i,\"data-tooltip-html\":c,\"data-tooltip-variant\":a,\"data-tooltip-offset\":u,\"data-tooltip-wrapper\":d,\"data-tooltip-events\":p,\"data-tooltip-position-strategy\":v,\"data-tooltip-delay-show\":m,\"data-tooltip-delay-hide\":f},r)};var B={tooltip:\"core-styles-module_tooltip__3vRRp\",fixed:\"core-styles-module_fixed__pcSol\",arrow:\"core-styles-module_arrow__cvMwQ\",noArrow:\"core-styles-module_noArrow__xock6\",clickable:\"core-styles-module_clickable__ZuTTB\",show:\"core-styles-module_show__Nt9eE\",closing:\"core-styles-module_closing__sGnxF\"},D={tooltip:\"styles-module_tooltip__mnnfp\",arrow:\"styles-module_arrow__K0L3T\",dark:\"styles-module_dark__xNqje\",light:\"styles-module_light__Z6W-X\",success:\"styles-module_success__A2AKt\",warning:\"styles-module_warning__SCK0X\",error:\"styles-module_error__JvumD\",info:\"styles-module_info__BWdHW\"};const q=({forwardRef:t,id:r,className:i,classNameArrow:c,variant:u=\"dark\",anchorId:d,anchorSelect:p,place:v=\"top\",offset:m=10,events:h=[\"hover\"],openOnClick:w=!1,positionStrategy:b=\"absolute\",middlewares:S,wrapper:g,delayShow:A=0,delayHide:O=0,float:T=!1,hidden:x=!1,noArrow:N=!1,clickable:$=!1,closeOnEsc:j=!1,closeOnScroll:z=!1,closeOnResize:q=!1,openEvents:H,closeEvents:M,globalCloseEvents:W,imperativeModeOnly:P,style:V,position:F,afterShow:K,afterHide:U,disableTooltip:X,content:Y,contentWrapperRef:G,isOpen:Z,defaultIsOpen:J=!1,setIsOpen:Q,previousActiveAnchor:ee,activeAnchor:te,setActiveAnchor:oe,border:re,opacity:le,arrowColor:ne,arrowSize:ie=8,role:ce=\"tooltip\"})=>{var se;const ae=s(null),ue=s(null),de=s(null),pe=s(null),ve=s(null),[me,fe]=l({tooltipStyles:{},tooltipArrowStyles:{},place:v}),[ye,he]=l(!1),[we,be]=l(!1),[Se,ge]=l(null),Ee=s(!1),Ae=s(null),{anchorRefs:_e,setActiveAnchor:Oe}=I(r),ke=s(!1),[Te,Le]=l([]),Ce=s(!1),Re=w||h.includes(\"click\"),xe=Re||(null==H?void 0:H.click)||(null==H?void 0:H.dblclick)||(null==H?void 0:H.mousedown),Ne=H?{...H}:{mouseover:!0,focus:!0,mouseenter:!1,click:!1,dblclick:!1,mousedown:!1};!H&&Re&&Object.assign(Ne,{mouseenter:!1,focus:!1,mouseover:!1,click:!0});const $e=M?{...M}:{mouseout:!0,blur:!0,mouseleave:!1,click:!1,dblclick:!1,mouseup:!1};!M&&Re&&Object.assign($e,{mouseleave:!1,blur:!1,mouseout:!1});const je=W?{...W}:{escape:j||!1,scroll:z||!1,resize:q||!1,clickOutsideAnchor:xe||!1};P&&(Object.assign(Ne,{mouseover:!1,focus:!1,mouseenter:!1,click:!1,dblclick:!1,mousedown:!1}),Object.assign($e,{mouseout:!1,blur:!1,mouseleave:!1,click:!1,dblclick:!1,mouseup:!1}),Object.assign(je,{escape:!1,scroll:!1,resize:!1,clickOutsideAnchor:!1})),C((()=>(Ce.current=!0,()=>{Ce.current=!1})),[]);const Ie=e=>{Ce.current&&(e&&be(!0),setTimeout((()=>{Ce.current&&(null==Q||Q(e),void 0===Z&&he(e))}),10))};o((()=>{if(r){if(ye){t(ee);const o=e(te),l=[...new Set([...o,r])].filter(Boolean).join(\" \");null==te||te.setAttribute(\"aria-describedby\",l)}else t(te);return()=>{t(te),t(ee)}}function e(e){var t;return(null===(t=null==e?void 0:e.getAttribute(\"aria-describedby\"))||void 0===t?void 0:t.split(\" \"))||[]}function t(t){const o=e(t).filter((e=>e!==r));o.length?null==t||t.setAttribute(\"aria-describedby\",o.join(\" \")):null==t||t.removeAttribute(\"aria-describedby\")}}),[te,ye,r,ee]),o((()=>{if(void 0===Z)return()=>null;Z&&be(!0);const e=setTimeout((()=>{he(Z)}),10);return()=>{clearTimeout(e)}}),[Z]),o((()=>{if(ye!==Ee.current)if(R(ve),Ee.current=ye,ye)null==K||K();else{const e=(e=>{const t=e.match(/^([\\d.]+)(ms|s)$/);if(!t)return 0;const[,o,r]=t;return Number(o)*(\"ms\"===r?1:1e3)})(getComputedStyle(document.body).getPropertyValue(\"--rt-transition-show-delay\"));ve.current=setTimeout((()=>{be(!1),ge(null),null==U||U()}),e+25)}}),[ye]);const ze=e=>{fe((t=>k(t,e)?t:e))},Be=(e=A)=>{R(de),we?Ie(!0):de.current=setTimeout((()=>{Ie(!0)}),e)},De=(e=O)=>{R(pe),pe.current=setTimeout((()=>{ke.current||Ie(!1)}),e)},qe=e=>{var t;if(!e)return;const o=null!==(t=e.currentTarget)&&void 0!==t?t:e.target;if(!(null==o?void 0:o.isConnected))return oe(null),void Oe({current:null});A?Be():Ie(!0),oe(o),Oe({current:o}),R(pe)},He=()=>{$?De(O||100):O?De():Ie(!1),R(de)},Me=({x:e,y:t})=>{var o;const r={getBoundingClientRect:()=>({x:e,y:t,width:0,height:0,top:t,left:e,right:e,bottom:t})};E({place:null!==(o=null==Se?void 0:Se.place)&&void 0!==o?o:v,offset:m,elementReference:r,tooltipReference:ae.current,tooltipArrowReference:ue.current,strategy:b,middlewares:S,border:re,arrowSize:ie}).then((e=>{ze(e)}))},We=e=>{if(!e)return;const t=e,o={x:t.clientX,y:t.clientY};Me(o),Ae.current=o},Pe=e=>{var t;if(!ye)return;const o=e.target;if(!o.isConnected)return;if(null===(t=ae.current)||void 0===t?void 0:t.contains(o))return;[document.querySelector(`[id='${d}']`),...Te].some((e=>null==e?void 0:e.contains(o)))||(Ie(!1),R(de))},Ve=_(qe,50,!0),Fe=_(He,50,!0),Ke=e=>{Fe.cancel(),Ve(e)},Ue=()=>{Ve.cancel(),Fe()},Xe=n((()=>{var e,t;const o=null!==(e=null==Se?void 0:Se.position)&&void 0!==e?e:F;o?Me(o):T?Ae.current&&Me(Ae.current):(null==te?void 0:te.isConnected)&&E({place:null!==(t=null==Se?void 0:Se.place)&&void 0!==t?t:v,offset:m,elementReference:te,tooltipReference:ae.current,tooltipArrowReference:ue.current,strategy:b,middlewares:S,border:re,arrowSize:ie}).then((e=>{Ce.current&&ze(e)}))}),[ye,te,Y,V,v,null==Se?void 0:Se.place,m,b,F,null==Se?void 0:Se.position,T,ie]);o((()=>{var e,t;const o=new Set(_e);Te.forEach((e=>{(null==X?void 0:X(e))||o.add({current:e})}));const r=document.querySelector(`[id='${d}']`);r&&!(null==X?void 0:X(r))&&o.add({current:r});const l=()=>{Ie(!1)},n=L(te),i=L(ae.current);je.scroll&&(window.addEventListener(\"scroll\",l),null==n||n.addEventListener(\"scroll\",l),null==i||i.addEventListener(\"scroll\",l));let c=null;je.resize?window.addEventListener(\"resize\",l):te&&ae.current&&(c=f(te,ae.current,Xe,{ancestorResize:!0,elementResize:!0,layoutShift:!0}));const s=e=>{\"Escape\"===e.key&&Ie(!1)};je.escape&&window.addEventListener(\"keydown\",s),je.clickOutsideAnchor&&window.addEventListener(\"click\",Pe);const a=[],u=e=>Boolean((null==e?void 0:e.target)&&(null==te?void 0:te.contains(e.target))),p=e=>{ye&&u(e)||qe(e)},v=e=>{ye&&u(e)&&He()},m=[\"mouseover\",\"mouseout\",\"mouseenter\",\"mouseleave\",\"focus\",\"blur\"],y=[\"click\",\"dblclick\",\"mousedown\",\"mouseup\"];Object.entries(Ne).forEach((([e,t])=>{t&&(m.includes(e)?a.push({event:e,listener:Ke}):y.includes(e)&&a.push({event:e,listener:p}))})),Object.entries($e).forEach((([e,t])=>{t&&(m.includes(e)?a.push({event:e,listener:Ue}):y.includes(e)&&a.push({event:e,listener:v}))})),T&&a.push({event:\"pointermove\",listener:We});const h=()=>{ke.current=!0},w=()=>{ke.current=!1,He()},b=$&&($e.mouseout||$e.mouseleave);return b&&(null===(e=ae.current)||void 0===e||e.addEventListener(\"mouseover\",h),null===(t=ae.current)||void 0===t||t.addEventListener(\"mouseout\",w)),a.forEach((({event:e,listener:t})=>{o.forEach((o=>{var r;null===(r=o.current)||void 0===r||r.addEventListener(e,t)}))})),()=>{var e,t;je.scroll&&(window.removeEventListener(\"scroll\",l),null==n||n.removeEventListener(\"scroll\",l),null==i||i.removeEventListener(\"scroll\",l)),je.resize?window.removeEventListener(\"resize\",l):null==c||c(),je.clickOutsideAnchor&&window.removeEventListener(\"click\",Pe),je.escape&&window.removeEventListener(\"keydown\",s),b&&(null===(e=ae.current)||void 0===e||e.removeEventListener(\"mouseover\",h),null===(t=ae.current)||void 0===t||t.removeEventListener(\"mouseout\",w)),a.forEach((({event:e,listener:t})=>{o.forEach((o=>{var r;null===(r=o.current)||void 0===r||r.removeEventListener(e,t)}))}))}}),[te,Xe,we,_e,Te,H,M,W,Re,A,O]),o((()=>{var e,t;let o=null!==(t=null!==(e=null==Se?void 0:Se.anchorSelect)&&void 0!==e?e:p)&&void 0!==t?t:\"\";!o&&r&&(o=`[data-tooltip-id='${r.replace(/'/g,\"\\\\'\")}']`);const l=new MutationObserver((e=>{const t=[],l=[];e.forEach((e=>{if(\"attributes\"===e.type&&\"data-tooltip-id\"===e.attributeName){e.target.getAttribute(\"data-tooltip-id\")===r?t.push(e.target):e.oldValue===r&&l.push(e.target)}if(\"childList\"===e.type){if(te){const t=[...e.removedNodes].filter((e=>1===e.nodeType));if(o)try{l.push(...t.filter((e=>e.matches(o)))),l.push(...t.flatMap((e=>[...e.querySelectorAll(o)])))}catch(e){}t.some((e=>{var t;return!!(null===(t=null==e?void 0:e.contains)||void 0===t?void 0:t.call(e,te))&&(be(!1),Ie(!1),oe(null),R(de),R(pe),!0)}))}if(o)try{const r=[...e.addedNodes].filter((e=>1===e.nodeType));t.push(...r.filter((e=>e.matches(o)))),t.push(...r.flatMap((e=>[...e.querySelectorAll(o)])))}catch(e){}}})),(t.length||l.length)&&Le((e=>[...e.filter((e=>!l.includes(e))),...t]))}));return l.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[\"data-tooltip-id\"],attributeOldValue:!0}),()=>{l.disconnect()}}),[r,p,null==Se?void 0:Se.anchorSelect,te]),o((()=>{Xe()}),[Xe]),o((()=>{if(!(null==G?void 0:G.current))return()=>null;const e=new ResizeObserver((()=>{setTimeout((()=>Xe()))}));return e.observe(G.current),()=>{e.disconnect()}}),[Y,null==G?void 0:G.current]),o((()=>{var e;const t=document.querySelector(`[id='${d}']`),o=[...Te,t];te&&o.includes(te)||oe(null!==(e=Te[0])&&void 0!==e?e:t)}),[d,Te,te]),o((()=>(J&&Ie(!0),()=>{R(de),R(pe)})),[]),o((()=>{var e;let t=null!==(e=null==Se?void 0:Se.anchorSelect)&&void 0!==e?e:p;if(!t&&r&&(t=`[data-tooltip-id='${r.replace(/'/g,\"\\\\'\")}']`),t)try{const e=Array.from(document.querySelectorAll(t));Le(e)}catch(e){Le([])}}),[r,p,null==Se?void 0:Se.anchorSelect]),o((()=>{de.current&&(R(de),Be(A))}),[A]);const Ye=null!==(se=null==Se?void 0:Se.content)&&void 0!==se?se:Y,Ge=ye&&Object.keys(me.tooltipStyles).length>0;return a(t,(()=>({open:e=>{if(null==e?void 0:e.anchorSelect)try{document.querySelector(e.anchorSelect)}catch(t){return void console.warn(`[react-tooltip] \"${e.anchorSelect}\" is not a valid CSS selector`)}ge(null!=e?e:null),(null==e?void 0:e.delay)?Be(e.delay):Ie(!0)},close:e=>{(null==e?void 0:e.delay)?De(e.delay):Ie(!1)},activeAnchor:te,place:me.place,isOpen:Boolean(we&&!x&&Ye&&Ge)}))),we&&!x&&Ye?e.createElement(g,{id:r,role:ce,className:y(\"react-tooltip\",B.tooltip,D.tooltip,D[u],i,`react-tooltip__place-${me.place}`,B[Ge?\"show\":\"closing\"],Ge?\"react-tooltip__show\":\"react-tooltip__closing\",\"fixed\"===b&&B.fixed,$&&B.clickable),onTransitionEnd:e=>{R(ve),ye||\"opacity\"!==e.propertyName||(be(!1),ge(null),null==U||U())},style:{...V,...me.tooltipStyles,opacity:void 0!==le&&Ge?le:void 0},ref:ae},Ye,e.createElement(g,{className:y(\"react-tooltip-arrow\",B.arrow,D.arrow,c,N&&B.noArrow),style:{...me.tooltipArrowStyles,background:ne?`linear-gradient(to right bottom, transparent 50%, ${ne} 50%)`:void 0,\"--rt-arrow-size\":`${ie}px`},ref:ue})):null},H=({content:t})=>e.createElement(\"span\",{dangerouslySetInnerHTML:{__html:t}}),M=e.forwardRef((({id:t,anchorId:r,anchorSelect:n,content:i,html:c,render:a,className:u,classNameArrow:d,variant:p=\"dark\",place:v=\"top\",offset:m=10,wrapper:f=\"div\",children:h=null,events:w=[\"hover\"],openOnClick:b=!1,positionStrategy:S=\"absolute\",middlewares:g,delayShow:E=0,delayHide:_=0,float:O=!1,hidden:k=!1,noArrow:T=!1,clickable:L=!1,closeOnEsc:C=!1,closeOnScroll:R=!1,closeOnResize:x=!1,openEvents:N,closeEvents:$,globalCloseEvents:j,imperativeModeOnly:z=!1,style:B,position:D,isOpen:M,defaultIsOpen:W=!1,disableStyleInjection:P=!1,border:V,opacity:F,arrowColor:K,arrowSize:U,setIsOpen:X,afterShow:Y,afterHide:G,disableTooltip:Z,role:J=\"tooltip\"},Q)=>{const[ee,te]=l(i),[oe,re]=l(c),[le,ne]=l(v),[ie,ce]=l(p),[se,ae]=l(m),[ue,de]=l(E),[pe,ve]=l(_),[me,fe]=l(O),[ye,he]=l(k),[we,be]=l(f),[Se,ge]=l(w),[Ee,Ae]=l(S),[_e,Oe]=l(null),[ke,Te]=l(null),Le=s(null),Ce=s(P),{anchorRefs:Re,activeAnchor:xe}=I(t),Ne=e=>null==e?void 0:e.getAttributeNames().reduce(((t,o)=>{var r;if(o.startsWith(\"data-tooltip-\")){t[o.replace(/^data-tooltip-/,\"\")]=null!==(r=null==e?void 0:e.getAttribute(o))&&void 0!==r?r:null}return t}),{}),$e=e=>{const t={place:e=>{var t;ne(null!==(t=e)&&void 0!==t?t:v)},content:e=>{te(null!=e?e:i)},html:e=>{re(null!=e?e:c)},variant:e=>{var t;ce(null!==(t=e)&&void 0!==t?t:p)},offset:e=>{ae(null===e?m:Number(e))},wrapper:e=>{var t;be(null!==(t=e)&&void 0!==t?t:f)},events:e=>{const t=null==e?void 0:e.split(\" \");ge(null!=t?t:w)},\"position-strategy\":e=>{var t;Ae(null!==(t=e)&&void 0!==t?t:S)},\"delay-show\":e=>{de(null===e?E:Number(e))},\"delay-hide\":e=>{ve(null===e?_:Number(e))},float:e=>{fe(null===e?O:\"true\"===e)},hidden:e=>{he(null===e?k:\"true\"===e)},\"class-name\":e=>{Oe(e)}};Object.values(t).forEach((e=>e(null))),Object.entries(e).forEach((([e,o])=>{var r;null===(r=t[e])||void 0===r||r.call(t,o)}))};o((()=>{te(i)}),[i]),o((()=>{re(c)}),[c]),o((()=>{ne(v)}),[v]),o((()=>{ce(p)}),[p]),o((()=>{ae(m)}),[m]),o((()=>{de(E)}),[E]),o((()=>{ve(_)}),[_]),o((()=>{fe(O)}),[O]),o((()=>{he(k)}),[k]),o((()=>{Ae(S)}),[S]),o((()=>{Ce.current!==P&&console.warn(\"[react-tooltip] Do not change `disableStyleInjection` dynamically.\")}),[P]),o((()=>{\"undefined\"!=typeof window&&window.dispatchEvent(new CustomEvent(\"react-tooltip-inject-styles\",{detail:{disableCore:\"core\"===P,disableBase:P}}))}),[]),o((()=>{var e;const o=new Set(Re);let l=n;if(!l&&t&&(l=`[data-tooltip-id='${t.replace(/'/g,\"\\\\'\")}']`),l)try{document.querySelectorAll(l).forEach((e=>{o.add({current:e})}))}catch(e){console.warn(`[react-tooltip] \"${l}\" is not a valid CSS selector`)}const i=document.querySelector(`[id='${r}']`);if(i&&o.add({current:i}),!o.size)return()=>null;const c=null!==(e=null!=ke?ke:i)&&void 0!==e?e:xe.current,s=new MutationObserver((e=>{e.forEach((e=>{var t;if(!c||\"attributes\"!==e.type||!(null===(t=e.attributeName)||void 0===t?void 0:t.startsWith(\"data-tooltip-\")))return;const o=Ne(c);$e(o)}))})),a={attributes:!0,childList:!1,subtree:!1};if(c){const e=Ne(c);$e(e),s.observe(c,a)}return()=>{s.disconnect()}}),[Re,xe,ke,r,n]),o((()=>{(null==B?void 0:B.border)&&console.warn(\"[react-tooltip] Do not set `style.border`. Use `border` prop instead.\"),V&&!A(\"border\",`${V}`)&&console.warn(`[react-tooltip] \"${V}\" is not a valid \\`border\\`.`),(null==B?void 0:B.opacity)&&console.warn(\"[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead.\"),F&&!A(\"opacity\",`${F}`)&&console.warn(`[react-tooltip] \"${F}\" is not a valid \\`opacity\\`.`)}),[]);let je=h;const Ie=s(null);if(a){const t=a({content:(null==ke?void 0:ke.getAttribute(\"data-tooltip-content\"))||ee||null,activeAnchor:ke});je=t?e.createElement(\"div\",{ref:Ie,className:\"react-tooltip-content-wrapper\"},t):null}else ee&&(je=ee);oe&&(je=e.createElement(H,{content:oe}));const ze={forwardRef:Q,id:t,anchorId:r,anchorSelect:n,className:y(u,_e),classNameArrow:d,content:je,contentWrapperRef:Ie,place:le,variant:ie,offset:se,wrapper:we,events:Se,openOnClick:b,positionStrategy:Ee,middlewares:g,delayShow:ue,delayHide:pe,float:me,hidden:ye,noArrow:T,clickable:L,closeOnEsc:C,closeOnScroll:R,closeOnResize:x,openEvents:N,closeEvents:$,globalCloseEvents:j,imperativeModeOnly:z,style:B,position:D,isOpen:M,defaultIsOpen:W,border:V,opacity:F,arrowColor:K,arrowSize:U,setIsOpen:X,afterShow:Y,afterHide:G,disableTooltip:Z,activeAnchor:ke,previousActiveAnchor:Le.current,setActiveAnchor:e=>{Te((t=>((null==e?void 0:e.isSameNode(t))||(Le.current=t),e)))},role:J};return e.createElement(q,{...ze})}));\"undefined\"!=typeof window&&window.addEventListener(\"react-tooltip-inject-styles\",(e=>{e.detail.disableCore||S({css:`:root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s;--rt-arrow-size:8px}.core-styles-module_tooltip__3vRRp{position:absolute;top:0;left:0;pointer-events:none;opacity:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit;z-index:-1}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}`,type:\"core\"}),e.detail.disableBase||S({css:`\n.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:var(--rt-arrow-size);height:var(--rt-arrow-size)}[class*='react-tooltip__place-top']>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*='react-tooltip__place-right']>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*='react-tooltip__place-bottom']>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*='react-tooltip__place-left']>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}`,type:\"base\"})}));export{M as Tooltip,j as TooltipProvider,z as TooltipWrapper,g as removeStyle};\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Check = createLucideIcon(\"Check\", [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]);\n\nexport { Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleAlert = createLucideIcon(\"CircleAlert\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n]);\n\nexport { CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Copy = createLucideIcon(\"Copy\", [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n]);\n\nexport { Copy as default };\n//# sourceMappingURL=copy.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Moon = createLucideIcon(\"Moon\", [\n [\"path\", { d: \"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\", key: \"a7tn18\" }]\n]);\n\nexport { Moon as default };\n//# sourceMappingURL=moon.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst RotateCcw = createLucideIcon(\"RotateCcw\", [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }]\n]);\n\nexport { RotateCcw as default };\n//# sourceMappingURL=rotate-ccw.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Sun = createLucideIcon(\"Sun\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"4\", key: \"4exip2\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"m4.93 4.93 1.41 1.41\", key: \"149t6j\" }],\n [\"path\", { d: \"m17.66 17.66 1.41 1.41\", key: \"ptbguv\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"m6.34 17.66-1.41 1.41\", key: \"1m8zz5\" }],\n [\"path\", { d: \"m19.07 4.93-1.41 1.41\", key: \"1shlcs\" }]\n]);\n\nexport { Sun as default };\n//# sourceMappingURL=sun.js.map\n","export default \"data:image/png;base64,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IQARZNIJhIAQEAJCQAiMegJSwZFOQATZSG8hKZ8QEAJCQAgIASEw6gmIIBv1TSwVFAKdQUBqKQSEgBBYlgmIIFuWW0/KLgSEgBAQAkJACIwKAiLIlplmlIIKASEgBISAEBACo5WACLLR2rJSLyEgBISAEBAC74WAxFkqBESQLRXskqkQEAJCQAgIASEgBP5NQATZv1nIkRAQAp1BQGopBISAEBhxBESQjbgmkQIJASEgBISAEBACnUZABNlobHGpkxAQAkJACAgBIbBMERBBtkw1lxRWCAgBISAEhMDIISAlWXQERJAtOpaSkhAQAkJACAgBISAE3hMBEWTvCZtEEgJCoDMISC2FgBAQAkuGgAiyJcNZchECQkAICAEhIASEwNsSEEH2tmg644bUUggIASEgBISAEFj6BESQLf02kBIIASEgBISAEBjtBKR+70BABNk7AJLbQkAICAEhIASEgBBY3AREkC1uwpK+EBACnUFAaikEhIAQeB8ERJC9D3gSVQgIASEgBISAEBACi4KACLJFQbEz0pBaCgEhIASEgBAQAouJgAiyxQRWkhUCQkAICAEhIATeC4HOjCOCrDPbXWotBISAEBACQkAIjCACIshGUGNIUYSAEOgMAlJLISAEhMBbCYggeysRORcCQkAICAEhIASEwBImIIJsCQPvjOyklkJACAgBISAEhMC7ISCC7N3QkrBCQAgIASEgBITAyCEwikoigmwUNaZURQgIASEgBISAEFg2CYggWzbbTUotBIRAZxCQWgoBIdAhBESQdUhDSzWFgBAQAkJACAiBkUtABNnIbZvOKJnUUggIASEgBISAEIAIMukEQkAICAEhIASEwKgnMNIrKIJspLeQlE8ICAEhIASEgBAY9QREkI36JpYKCgEh0BkEpJZCQAgsywREkC3LrSdlFwJCQAgIASEgBEYFARFko6IZO6MSUkshIASEgBAQAqOVgAiy0dqyUi8hIASEgBAQAkLgvRBYKnFEkC0V7JKpEBACQkAICAEhIAT+TUAE2b9ZyJEQEAJCoDMISC2FgBAYcQREkI24JpECCQEhIASEgBAQAp1GQARZp7V4Z9RXaikEhIAQEAJCYJkiIIJsmWouKawQEAJCQAgIASEwcggsupKIIFt0LCUlISAEhIAQEAJCQAi8JwIiyN4TNokkBISAEOgMAlJLISAElgwBEWRLhrPkIgSEgBAQAkJACAiBtyUgguxt0ciNziAgtRQCQkAICAEhsPQJiCBb+m0gJRACQkAICAEhIARGO4F3qJ8IsncAJLeFgBAQAkJACAgBIbC4CYggW9yEJX0hIASEQGcQkFoKASHwPgiIIHsf8CSqEBACQkAICAEhIAQWBQERZIuCoqTRGQSklkJACAgBISAEFhMBEWSLCawkKwSEgBAQAkJACAiBhSXwn4JsYeNIOCEgBISAEBACQkAICIFFSEAE2SKEKUkJASEgBITAwhCQMEJACLyVgAiytxKRcyEgBISAEBACQkAILGECIsiWMHDJrjMISC2FgBAQAkJACLwbAiLI3g0tCSsEhIAQEAJCQAgIgcVA4D0KssVQEklSCAgBISAEhIAQEAIdSkAEWYc2vFRbCAgBIbBMEJBCCoEOISCCrEMaWqopBISAEBACQkAIjFwCIshGbttIyTqDgNRSCAgBISAEhABEkEknEAJCQAgIASEgBITAUiaw+AXZUq6gZC8EhIAQEAJCQAgIgZFOQATZSG8hKZ8QEAJCQAgsFAEJJASWZQIiyJbl1pOyCwEhIASEgBAQAqOCgAiyUdGMUonOICC1FAJCQAgIgdFKQATZaG1ZqZcQEAJCQAgIASGwzBAYUYJsmaEmBRUCQkAICAEhIASEwCIkIIJsEcKUpISAEBACQmCZICCFFAIjjoAIshHXJFIgISAEhIAQEAJCoNMIiCDrtBaX+nYGAamlEBACQkAILFMERJAtU80lhRUCQkAICAEhIARGI4FlVZCNxraQOgkBISAEhIAQEAIdSkAEWYc2vFRbCAgBISAEFoaAhBECS4aACLIlw1lyEQJCQAgIASEgBITA2xIQQfa2aOSGEOgMAlJLISAEhIAQWPoERJAt/TaQEggBISAEhIAQEAIdTqADBFmHt7BUXwgIASEgBISAEBjxBESQjfgmkgIKASEgBITAMkFACikE3gcBEWTvA55EFQJCQAgIASEgBITAoiAggmxRUJQ0hEBnEJBaCgEhIASEwGIiIIJsMYGVZIWAEBACQkAICAEhsLAERJD9Jyk5FgJCQAgIASEgBITAUiAggmwpQJcshYAQEAJCoLMJSO2FwFsJiCB7KxE5FwJCQAgIASEgBITAEiYggmwJA5fshEBnEJBaCgEhIASEwLshIILs3dCSsEJACAgBISAEhIAQWAwERJC9R6gSTQgIASEgBISAEBACi4qACLJFRVLSEQJCQAgIASGw6AlIih1CQARZhzS0VFMICAEhIASEgBAYuQREkI3ctpGSCYHOICC1FAJCQAgIAYggk04gBISAEBACQkAICIGlTEAE2eJvAMlBCAgBISAEhIAQEAL/JwERZP8nHrkpBISAEBACQmBZISDlXJYJiCBblltPyi4EhIAQEAJCQAiMCgIiyEZFM0olhEBnEJBaCgEhIARGKwERZKO1ZaVeQkAICAEhIASEwDJD4P8DAAD///RIpg8AAAAGSURBVAMAx7b2ZnocvSUAAAAASUVORK5CYII=\"","import { useEffect, useRef, useState } from 'react'\nimport Editor from '@monaco-editor/react'\nimport { Terminal as XTerm } from '@xterm/xterm'\nimport '@xterm/xterm/css/xterm.css'\nimport { Tooltip } from 'react-tooltip'\nimport 'react-tooltip/dist/react-tooltip.css'\nimport {\n RotateCcw,\n Copy,\n Moon,\n Sun,\n Check,\n AlertCircle\n} from 'lucide-react'\nimport notjsLogo from './assets/notjslogo.png'\n\n// Default code templates\nconst DEFAULT_CODE: Record<string, string> = {\n java: `void main() {\n System.out.println(\"Hello from NotJS!\");\n System.out.println(\"Enter your name:\");\n\n var scanner = new java.util.Scanner(System.in);\n var name = scanner.nextLine();\n\n System.out.println(\"Hello, \" + name + \"!\");\n}\n`,\n cpp: `#include <iostream>\n#include <string>\n\nint main() {\n std::cout << \"Hello from NotJS C++!\" << std::endl;\n std::cout << \"Enter your name: \";\n\n std::string name;\n std::getline(std::cin, name);\n\n std::cout << \"Hello, \" << name << \"!\" << std::endl;\n\n return 0;\n}\n`,\n c: `#include <stdio.h>\n#include <string.h>\n\nint main() {\n printf(\"Hello from NotJS C!\\\\n\");\n printf(\"Enter your name: \");\n\n char name[100];\n if (fgets(name, sizeof(name), stdin) != NULL) {\n // Remove trailing newline\n name[strcspn(name, \"\\\\n\")] = '\\\\0';\n printf(\"Hello, %s!\\\\n\", name);\n }\n\n return 0;\n}\n`,\n rust: `use std::io::{self, Write};\n\nfn main() {\n println!(\"Hello from NotJS Rust!\");\n print!(\"Enter your name: \");\n io::stdout().flush().unwrap();\n\n let mut name = String::new();\n io::stdin()\n .read_line(&mut name)\n .expect(\"Failed to read line\");\n\n let name = name.trim();\n println!(\"Hello, {}!\", name);\n}\n`,\n go: `package main\n\nimport (\n \"bufio\"\n \"fmt\"\n \"os\"\n \"strings\"\n)\n\nfunc main() {\n fmt.Println(\"Hello from NotJS Go!\")\n fmt.Print(\"Enter your name: \")\n\n reader := bufio.NewReader(os.Stdin)\n name, _ := reader.ReadString('\\\\n')\n\n // Remove trailing newline\n name = strings.TrimSpace(name)\n\n fmt.Printf(\"Hello, %s!\\\\n\", name)\n}\n`\n}\n\nexport interface ExecutionRequest {\n language: string\n code: string\n version: string | null\n arguments: string[]\n}\n\nexport interface NotJSProps {\n websocketUrl?: string\n apiBaseUrl?: string\n initialCode?: string\n initialLanguage?: string\n initialVersion?: string\n initialDarkMode?: boolean\n hideHeader?: boolean\n editorWidthPercent?: number\n}\n\nexport default function NotJS({\n websocketUrl = 'ws://localhost:8080/terminal',\n apiBaseUrl = 'http://localhost:8080/api',\n initialCode,\n initialLanguage = 'java',\n initialVersion = '25',\n initialDarkMode = true,\n hideHeader = false,\n editorWidthPercent = 50\n}: NotJSProps) {\n // State\n const [code, setCode] = useState(initialCode || DEFAULT_CODE[initialLanguage] || DEFAULT_CODE.java)\n const [languages, setLanguages] = useState<string[]>([])\n const [selectedLanguage, setSelectedLanguage] = useState(initialLanguage)\n const [languageInfo, setLanguageInfo] = useState<{versions: string[], default: string | null, code: string}>({\n default: null,\n code: '',\n versions: []\n })\n const [versions, setVersions] = useState<string[]>([])\n const [selectedVersion, setSelectedVersion] = useState<string | null>(initialVersion)\n const [defaultVersion, setDefaultVersion] = useState<string | null>(null)\n const [isDarkMode, setIsDarkMode] = useState(initialDarkMode)\n const [codeCopied, setCodeCopied] = useState(false)\n const [consoleCopied, setConsoleCopied] = useState(false)\n const [leftPanelWidth, setLeftPanelWidth] = useState(editorWidthPercent) // percentage\n const [isResizing, setIsResizing] = useState(false)\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n const [errorMessage, setErrorMessage] = useState<string>('')\n\n // Refs\n const terminalRef = useRef<HTMLDivElement>(null)\n const xtermRef = useRef<XTerm | null>(null)\n const wsRef = useRef<WebSocket | null>(null)\n const inputBufferRef = useRef<string>('')\n const containerRef = useRef<HTMLDivElement>(null)\n\n // Check API availability for initial language and version\n useEffect(() => {\n const checkAvailability = async () => {\n try {\n const response = await fetch(`${apiBaseUrl}/language/info/${initialLanguage}`)\n if (!response.ok) {\n throw new Error('Language not supported')\n }\n const info = await response.json()\n\n if (!info.availableVersions.includes(initialVersion)) {\n setIsAvailable(false)\n setErrorMessage(\n `${initialLanguage.toUpperCase()} version ${initialVersion} is not available. Available versions: ${info.availableVersions.join(', ')}`\n )\n } else {\n setIsAvailable(true)\n }\n } catch (error) {\n setIsAvailable(false)\n setErrorMessage(\n `Failed to connect to NotJS API at ${apiBaseUrl}. Please ensure the Spring Boot backend is running.`\n )\n }\n }\n\n checkAvailability()\n }, [apiBaseUrl, initialLanguage, initialVersion])\n\n // Fetch supported languages on mount\n useEffect(() => {\n fetch(`${apiBaseUrl}/language/supported`)\n .then(res => res.json())\n .then((langs: string[]) => {\n setLanguages(langs)\n })\n .catch(err => {\n console.error('Failed to fetch languages:', err)\n })\n }, [apiBaseUrl])\n\n // Fetch versions when language changes\n useEffect(() => {\n if (!selectedLanguage) return\n\n fetch(`${apiBaseUrl}/language/info/${selectedLanguage}`)\n .then(res => res.json())\n .then((info: { availableVersions: string[]; defaultVersion: string }) => {\n setVersions(info.availableVersions)\n setDefaultVersion(info.defaultVersion)\n setSelectedVersion(info.defaultVersion)\n setLanguageInfo({\n default: info.defaultVersion,\n versions: info.availableVersions,\n code: DEFAULT_CODE[selectedLanguage]\n })\n setCode(DEFAULT_CODE[selectedLanguage])\n })\n .catch(err => {\n console.error('Failed to fetch language info:', err)\n })\n }, [selectedLanguage, apiBaseUrl])\n\n // Initialize xterm and WebSocket\n useEffect(() => {\n if (!terminalRef.current || isAvailable !== true) return\n\n // Wait for versions to be loaded before connecting\n // (except on initial mount where defaultVersion may not be set yet)\n if (defaultVersion === null && versions.length === 0) return\n\n // Create terminal\n const term = new XTerm({\n cursorBlink: true,\n fontSize: 14,\n fontFamily: 'Menlo, Monaco, \"Courier New\", monospace',\n theme: isDarkMode ? {\n background: '#0a0a0a',\n foreground: '#d4d4d4',\n cursor: '#ffffff',\n } : {\n background: '#ffffff',\n foreground: '#000000',\n cursor: '#000000',\n },\n scrollback: 1000,\n convertEol: true,\n })\n\n xtermRef.current = term\n term.open(terminalRef.current)\n\n // Fit terminal to container\n const fitTerminal = () => {\n if (terminalRef.current && xtermRef.current) {\n const rect = terminalRef.current.getBoundingClientRect()\n const cols = Math.floor((rect.width - 20) / 9)\n const rows = Math.floor((rect.height - 20) / 17)\n xtermRef.current.resize(cols, rows)\n }\n }\n\n setTimeout(fitTerminal, 100)\n window.addEventListener('resize', fitTerminal)\n\n // Connect WebSocket\n const ws = new WebSocket(websocketUrl)\n wsRef.current = ws\n\n ws.onopen = () => {\n console.log('WebSocket connected')\n term.write('\\x1b[1;32m> Connected\\x1b[0m\\r\\n')\n\n // Send initial execution request\n const executionRequest: ExecutionRequest = {\n language: selectedLanguage,\n code: languageInfo.code,\n version: languageInfo.default || selectedVersion || null,\n arguments: []\n }\n\n ws.send(JSON.stringify(executionRequest))\n term.write(`\\x1b[1;36m> Running ${selectedLanguage} ${languageInfo.default || defaultVersion || ''}...\\x1b[0m\\r\\n`)\n }\n\n ws.onmessage = (event) => {\n const data = event.data.replace(/\\n/g, '\\r\\n')\n term.write(data)\n }\n\n ws.onerror = (error) => {\n console.error('WebSocket error:', error)\n term.write('\\x1b[1;31m\\r\\n[ERROR] WebSocket connection error\\x1b[0m\\r\\n')\n }\n\n ws.onclose = () => {\n console.log('WebSocket closed')\n term.write('\\x1b[1;33m\\r\\n[DISCONNECTED]\\x1b[0m\\r\\n')\n }\n\n // Handle terminal input\n term.onData((data) => {\n if (ws.readyState === WebSocket.OPEN) {\n if (data === '\\x7f' || data === '\\b') {\n // Backspace\n if (inputBufferRef.current.length > 0) {\n inputBufferRef.current = inputBufferRef.current.slice(0, -1)\n term.write('\\b \\b')\n }\n } else if (data === '\\r') {\n // Enter - send line\n term.write('\\r\\n')\n ws.send(inputBufferRef.current + '\\n')\n inputBufferRef.current = ''\n } else if (data === '\\x03') {\n // Ctrl+C\n term.write('^C\\r\\n')\n inputBufferRef.current = ''\n } else {\n // Normal character\n inputBufferRef.current += data\n term.write(data)\n }\n }\n })\n\n return () => {\n window.removeEventListener('resize', fitTerminal)\n term.dispose()\n if (ws.readyState === WebSocket.OPEN) {\n ws.close()\n }\n }\n }, [isAvailable, websocketUrl, languageInfo, isDarkMode])\n\n // Update terminal theme when dark mode changes\n useEffect(() => {\n if (xtermRef.current) {\n xtermRef.current.options.theme = isDarkMode ? {\n background: '#0a0a0a',\n foreground: '#d4d4d4',\n cursor: '#ffffff',\n } : {\n background: '#ffffff',\n foreground: '#000000',\n cursor: '#000000',\n }\n }\n }, [isDarkMode])\n\n // Handle run/restart\n const handleRun = () => {\n if (!xtermRef.current || !terminalRef.current) return\n\n // Close existing connection and remove its handlers to prevent them from writing to terminal\n if (wsRef.current) {\n const oldWs = wsRef.current\n // Remove all event handlers before closing\n oldWs.onopen = null\n oldWs.onmessage = null\n oldWs.onerror = null\n oldWs.onclose = null\n oldWs.close()\n }\n\n // Clear terminal completely (including scrollback buffer)\n xtermRef.current.reset()\n xtermRef.current.clear()\n inputBufferRef.current = ''\n\n // Reconnect\n const ws = new WebSocket(websocketUrl)\n wsRef.current = ws\n\n ws.onopen = () => {\n console.log('WebSocket reconnected')\n xtermRef.current?.write('\\x1b[1;32m> Connected\\x1b[0m\\r\\n')\n\n const executionRequest: ExecutionRequest = {\n language: selectedLanguage,\n code: code,\n version: selectedVersion || languageInfo.default || null,\n arguments: []\n }\n\n ws.send(JSON.stringify(executionRequest))\n xtermRef.current?.write(`\\x1b[1;36m> Running ${selectedLanguage} ${selectedVersion || languageInfo.default || defaultVersion || ''}...\\x1b[0m\\r\\n`)\n }\n\n ws.onmessage = (event) => {\n const data = event.data.replace(/\\n/g, '\\r\\n')\n xtermRef.current?.write(data)\n }\n\n ws.onerror = (error) => {\n console.error('WebSocket error:', error)\n xtermRef.current?.write('\\x1b[1;31m\\r\\n[ERROR] WebSocket connection error\\x1b[0m\\r\\n')\n }\n\n ws.onclose = () => {\n console.log('WebSocket closed')\n xtermRef.current?.write('\\x1b[1;33m\\r\\n[DISCONNECTED]\\x1b[0m\\r\\n')\n }\n\n // Handle terminal input\n xtermRef.current?.onData((data) => {\n if (ws.readyState === WebSocket.OPEN) {\n if (data === '\\x7f' || data === '\\b') {\n if (inputBufferRef.current.length > 0) {\n inputBufferRef.current = inputBufferRef.current.slice(0, -1)\n xtermRef.current?.write('\\b \\b')\n }\n } else if (data === '\\r') {\n xtermRef.current?.write('\\r\\n')\n ws.send(inputBufferRef.current + '\\n')\n inputBufferRef.current = ''\n } else if (data === '\\x03') {\n xtermRef.current?.write('^C\\r\\n')\n inputBufferRef.current = ''\n } else {\n inputBufferRef.current += data\n xtermRef.current?.write(data)\n }\n }\n })\n }\n\n // Handle copy to clipboard\n const copyToClipboard = (text: string, type: 'code' | 'console') => {\n navigator.clipboard.writeText(text).then(() => {\n if (type === 'code') {\n setCodeCopied(true)\n setTimeout(() => setCodeCopied(false), 2000)\n } else {\n setConsoleCopied(true)\n setTimeout(() => setConsoleCopied(false), 2000)\n }\n })\n }\n\n const copyConsoleOutput = () => {\n if (xtermRef.current) {\n const buffer = xtermRef.current.buffer.active\n let text = ''\n for (let i = 0; i < buffer.length; i++) {\n const line = buffer.getLine(i)\n if (line) {\n text += line.translateToString(true) + '\\n'\n }\n }\n copyToClipboard(text, 'console')\n }\n }\n\n // Toggle theme\n const toggleTheme = () => {\n setIsDarkMode(prev => !prev)\n if (isDarkMode) {\n document.documentElement.classList.remove('dark')\n } else {\n document.documentElement.classList.add('dark')\n }\n }\n\n // Initialize dark mode\n useEffect(() => {\n if (isDarkMode) {\n document.documentElement.classList.add('dark')\n }\n }, [])\n\n // Handle resizing panels\n const handleMouseDown = (e: React.MouseEvent) => {\n e.preventDefault()\n setIsResizing(true)\n }\n\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n if (!isResizing || !containerRef.current) return\n\n const container = containerRef.current\n const containerRect = container.getBoundingClientRect()\n const newLeftWidth = ((e.clientX - containerRect.left) / containerRect.width) * 100\n\n // Constrain between 20% and 80%\n if (newLeftWidth >= 20 && newLeftWidth <= 80) {\n setLeftPanelWidth(newLeftWidth)\n }\n }\n\n const handleMouseUp = () => {\n setIsResizing(false)\n }\n\n if (isResizing) {\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = 'col-resize'\n document.body.style.userSelect = 'none'\n }\n\n return () => {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = ''\n document.body.style.userSelect = ''\n }\n }, [isResizing])\n\n // Refit terminal when panel width changes\n useEffect(() => {\n if (xtermRef.current && terminalRef.current) {\n setTimeout(() => {\n if (terminalRef.current && xtermRef.current) {\n const rect = terminalRef.current.getBoundingClientRect()\n const cols = Math.floor((rect.width - 20) / 9)\n const rows = Math.floor((rect.height - 20) / 17)\n xtermRef.current.resize(cols, rows)\n }\n }, 10)\n }\n }, [leftPanelWidth])\n\n // Show error fallback if API is not available\n if (isAvailable === false) {\n return (\n <div className=\"flex flex-col items-center justify-center h-screen w-screen bg-neutral-50 dark:bg-neutral-950 p-8\">\n <div className=\"max-w-2xl w-full border-2 border-red-500 rounded-2xl p-8 bg-white dark:bg-neutral-900\">\n <div className=\"flex items-start gap-4\">\n <AlertCircle className=\"w-8 h-8 text-red-500 flex-shrink-0 mt-1\" />\n <div>\n <h2 className=\"text-2xl font-bold text-red-600 dark:text-red-500 mb-3\">\n NotJS Configuration Error\n </h2>\n <p className=\"text-red-700 dark:text-red-400 text-lg leading-relaxed\">\n {errorMessage}\n </p>\n </div>\n </div>\n </div>\n </div>\n )\n }\n\n // Show loading state while checking availability\n if (isAvailable === null) {\n return (\n <div className=\"flex flex-col items-center justify-center h-screen w-screen bg-neutral-50 dark:bg-neutral-950\">\n <div className=\"text-neutral-600 dark:text-neutral-400 text-lg\">\n Loading NotJS...\n </div>\n </div>\n )\n }\n\n return (\n <div className=\"notjs-container\">\n <div className=\"flex flex-col h-full w-full bg-neutral-50 dark:bg-neutral-950\">\n {/* Header */}\n {!hideHeader && (\n <div className=\"flex items-center justify-between px-8 py-3 bg-white/80 dark:bg-neutral-900/80 backdrop-blur border-b border-black/5 dark:border-white/5\">\n <div className=\"flex items-center gap-6\">\n <div className=\"flex items-center gap-4\">\n <h1 className=\"text-2xl font-semibold text-neutral-900 dark:text-white\">\n NotJS\n </h1>\n <img\n src={notjsLogo}\n alt=\"NotJS Logo\"\n className=\"h-10 object-contain rounded-xl\"\n />\n </div>\n\n <select\n value={selectedLanguage}\n onChange={(e) => setSelectedLanguage(e.target.value)}\n className=\"px-4 py-2 rounded-xl bg-neutral-100 dark:bg-neutral-800 text-neutral-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500/40 transition\"\n >\n {languages.map(lang => (\n <option key={lang} value={lang}>\n {lang.toUpperCase()}\n </option>\n ))}\n </select>\n\n {versions.length > 0 && (\n <select\n value={selectedVersion || defaultVersion || ''}\n onChange={(e) => setSelectedVersion(e.target.value || null)}\n className=\"px-4 py-2 rounded-xl bg-neutral-100 dark:bg-neutral-800 text-neutral-900 dark:text-white text-sm focus:outline-none focus:ring-2 focus:ring-blue-500/40 transition\"\n >\n {versions.map(version => (\n <option key={version} value={version}>\n v{version} {version === defaultVersion ? '(default)' : ''}\n </option>\n ))}\n </select>\n )}\n </div>\n\n <button\n onClick={toggleTheme}\n className=\"p-3 rounded-xl bg-neutral-100 dark:bg-neutral-800 hover:bg-neutral-200 dark:hover:bg-neutral-700 transition\"\n >\n {isDarkMode ? (\n <Sun className=\"w-5 h-5 text-yellow-500\" />\n ) : (\n <Moon className=\"w-5 h-5 text-neutral-700\" />\n )}\n </button>\n </div>\n )}\n\n {/* Main Content */}\n <div ref={containerRef} className=\"flex flex-1 overflow-hidden relative\">\n {/* Code Panel */}\n <div\n className=\"flex flex-col bg-white dark:bg-neutral-900\"\n style={{ width: `${leftPanelWidth}%`, flexShrink: 0 }}\n >\n {/* Code Header */}\n <div className={`flex items-center justify-between px-8 bg-neutral-100/70 dark:bg-neutral-900 border-b border-black/5 dark:border-white/5 ${hideHeader ? 'py-2' : 'py-1'}`}>\n <h2 className=\"text-sm font-semibold tracking-wide text-neutral-600 dark:text-neutral-400\">\n CODE\n </h2>\n\n <div className=\"flex items-center gap-2\">\n {/* Restart */}\n <button\n onClick={handleRun}\n className=\"p-1.5 rounded-lg transition bg-orange-500/90 hover:bg-orange-500 text-white\"\n data-tooltip-id=\"restart-tooltip\"\n data-tooltip-content=\"Restart program\"\n >\n <RotateCcw className=\"w-3.5 h-3.5\" />\n </button>\n\n {/* Copy Code */}\n <button\n onClick={() => copyToClipboard(code, 'code')}\n className=\"p-1.5 rounded-lg bg-neutral-200 dark:bg-neutral-800 hover:bg-neutral-300 dark:hover:bg-neutral-700 transition\"\n data-tooltip-id=\"copy-code-tooltip\"\n data-tooltip-content=\"Copy code\"\n >\n {codeCopied ? (\n <Check className=\"w-3.5 h-3.5 text-emerald-600\" />\n ) : (\n <Copy className=\"w-3.5 h-3.5 text-neutral-700 dark:text-neutral-300\" />\n )}\n </button>\n </div>\n </div>\n\n <div className=\"flex-1 overflow-hidden rounded-b-2xl\">\n <Editor\n height=\"100%\"\n language={selectedLanguage}\n value={code}\n onChange={(value) => setCode(value || '')}\n theme={isDarkMode ? 'vs-dark' : 'light'}\n options={{\n minimap: { enabled: false },\n fontSize: 14,\n lineNumbers: 'on',\n scrollBeyondLastLine: false,\n automaticLayout: true,\n tabSize: 2,\n wordWrap: 'on',\n padding: { top: 12, bottom: 12 }\n }}\n />\n </div>\n </div>\n\n {/* Resize Handle */}\n <div\n className={`w-1 shrink-0 bg-black/5 dark:bg-white/5 hover:bg-blue-500 cursor-col-resize transition ${\n isResizing ? 'bg-blue-500' : ''\n }`}\n onMouseDown={handleMouseDown}\n />\n\n {/* Console Panel */}\n <div className=\"flex-1 min-w-0 flex flex-col bg-white dark:bg-neutral-950\">\n <div className={`flex items-center justify-between px-8 bg-neutral-100/70 dark:bg-neutral-900 border-b border-black/5 dark:border-white/5 shrink-0 ${hideHeader ? 'py-2' : 'py-1'}`}>\n <h2 className=\"text-sm font-semibold tracking-wide text-neutral-600 dark:text-neutral-400\">\n CONSOLE\n </h2>\n\n <button\n onClick={copyConsoleOutput}\n className=\"p-1.5 rounded-lg bg-neutral-200 dark:bg-neutral-800 hover:bg-neutral-300 dark:hover:bg-neutral-700 transition\"\n data-tooltip-id=\"copy-output-tooltip\"\n data-tooltip-content=\"Copy output\"\n >\n {consoleCopied ? (\n <Check className=\"w-3.5 h-3.5 text-emerald-600\" />\n ) : (\n <Copy className=\"w-3.5 h-3.5 text-neutral-700 dark:text-neutral-300\" />\n )}\n </button>\n </div>\n\n <div\n ref={terminalRef}\n className=\"flex-1 overflow-hidden rounded-b-2xl bg-white dark:bg-neutral-950 p-3\"\n />\n </div>\n </div>\n </div>\n <Tooltip\n id=\"restart-tooltip\"\n className=\"!rounded-lg !bg-slate-800/95 !backdrop-blur-sm !px-3 !py-2 !shadow-xl !border !border-slate-700/50\"\n style={{\n fontSize: '0.75rem',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n color: '#ffffff',\n zIndex: 9999\n }}\n place=\"bottom\"\n offset={8}\n />\n <Tooltip\n id=\"copy-code-tooltip\"\n className=\"!rounded-lg !bg-slate-800/95 !backdrop-blur-sm !px-3 !py-2 !shadow-xl !border !border-slate-700/50\"\n style={{\n fontSize: '0.75rem',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n color: '#ffffff',\n zIndex: 9999\n }}\n place=\"bottom\"\n offset={8}\n />\n <Tooltip\n id=\"copy-output-tooltip\"\n className=\"!rounded-lg !bg-slate-800/95 !backdrop-blur-sm !px-3 !py-2 !shadow-xl !border !border-slate-700/50\"\n style={{\n fontSize: '0.75rem',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n color: '#ffffff',\n zIndex: 9999\n }}\n place=\"bottom\"\n offset={8}\n />\n </div>\n )\n}"],"names":["_arrayLikeToArray","r","a","e","n","_arrayWithHoles","_defineProperty","t","_toPropertyKey","_iterableToArrayLimit","l","i","u","f","o","_nonIterableRest","ownKeys","_objectSpread2","_objectWithoutProperties","_objectWithoutPropertiesLoose","_slicedToArray","_unsupportedIterableToArray","_toPrimitive","obj","key","value","object","enumerableOnly","keys","symbols","sym","target","source","compose","_len","fns","_key","x","y","curry","fn","curried","_this","_len2","args","_key2","_len3","nextArgs","_key3","isObject","isEmpty","isFunction","hasOwnProperty","property","validateChanges","initial","changes","errorHandler","field","validateSelector","selector","validateHandler","handler","_handler","validateInitial","throwError","errorMessages","type","validators","create","state","didUpdate","didStateUpdate","update","updateState","validate","getChanges","extractChanges","getState","setState","causedChanges","_handler$field","index","config","validateConfig","informAboutDeprecation","merge","CANCELATION_MESSAGE","makeCancelable","promise","hasCanceled_","wrappedPromise","resolve","reject","val","_excluded","_state$create","config$1","_state$create2","globalConfig","_validators$config","monaco","init","_ref","isInitialized","wrapperPromise","storeMonacoInstance","injectScripts","getMonacoLoaderScript","configureLoader","script","createScript","src","_ref2","loaderScript","_ref3","require","loaded","error","__getMonacoInstance","_ref4","loader","le","v","ae","Y","Me","me","Z","$","Ee","m","E","K","ee","H","ye","Ce","xe","k","he","Re","ge","D","h","De","be","te","Oe","g","N","P","V","z","F","j","A","q","M","O","re","T","s","S","c","w","d","b","Se","I","_b","_a","L","oe","U","ne","_c","_d","ke","ie","Te","He","ve","Ue","se","_","Ve","ue","C","B","p","Ne","R","pe","X","_e","W","G","J","We","fe","de","ze","Ft","module","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","side","isStart","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","width","height","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","name","nextX","nextY","data","reset","detectOverflow","options","_await$platform$isEle","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflow","overflows","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","acc","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","hasWindow","getNodeName","node","isNode","getWindow","_node$ownerDocument","getDocumentElement","isElement","isHTMLElement","isShadowRoot","invalidOverflowDisplayValues","isOverflowElement","overflowX","overflowY","display","getComputedStyle","tableElements","isTableElement","topLayerSelectors","isTopLayer","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","css","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","lastTraversableNodeNames","getNodeScroll","result","getNearestOverflowAncestor","parentNode","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getCssDimensions","getComputedStyle$1","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","offsets","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","doc","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cache","cachedResult","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","root","cleanup","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","arrow$1","mergedOptions","platformWithCache","computePosition$1","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","Q","ce","we","Ae","Le","$e","je","Ie","Be","qe","Pe","Fe","Ke","Xe","Ye","Ge","toKebabCase","string","mergeClasses","className","array","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","rest","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","props","Check","CircleAlert","Copy","Moon","RotateCcw","Sun","notjsLogo","DEFAULT_CODE","NotJS","websocketUrl","apiBaseUrl","initialCode","initialLanguage","initialVersion","initialDarkMode","hideHeader","editorWidthPercent","code","setCode","useState","languages","setLanguages","selectedLanguage","setSelectedLanguage","languageInfo","setLanguageInfo","versions","setVersions","selectedVersion","setSelectedVersion","defaultVersion","setDefaultVersion","isDarkMode","setIsDarkMode","codeCopied","setCodeCopied","consoleCopied","setConsoleCopied","leftPanelWidth","setLeftPanelWidth","isResizing","setIsResizing","isAvailable","setIsAvailable","errorMessage","setErrorMessage","terminalRef","useRef","xtermRef","wsRef","inputBufferRef","containerRef","useEffect","response","info","res","langs","err","term","XTerm","fitTerminal","cols","rows","ws","executionRequest","event","handleRun","oldWs","copyToClipboard","text","copyConsoleOutput","buffer","line","toggleTheme","prev","handleMouseDown","handleMouseMove","containerRect","newLeftWidth","handleMouseUp","jsx","jsxs","AlertCircle","lang","version","Editor","Tooltip"],"mappings":"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E,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]}
1
+ {"version":3,"file":"index.js","sources":["../../node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js","../../node_modules/state-local/lib/es/state-local.js","../../node_modules/@monaco-editor/loader/lib/es/config/index.js","../../node_modules/@monaco-editor/loader/lib/es/utils/curry.js","../../node_modules/@monaco-editor/loader/lib/es/utils/isObject.js","../../node_modules/@monaco-editor/loader/lib/es/validators/index.js","../../node_modules/@monaco-editor/loader/lib/es/utils/compose.js","../../node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js","../../node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js","../../node_modules/@monaco-editor/loader/lib/es/loader/index.js","../../node_modules/@monaco-editor/react/dist/index.mjs","../../node_modules/@xterm/xterm/lib/xterm.js","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../node_modules/classnames/index.js","../../node_modules/react-tooltip/dist/react-tooltip.min.mjs","../../node_modules/lucide-react/dist/esm/shared/src/utils.js","../../node_modules/lucide-react/dist/esm/defaultAttributes.js","../../node_modules/lucide-react/dist/esm/Icon.js","../../node_modules/lucide-react/dist/esm/createLucideIcon.js","../../node_modules/lucide-react/dist/esm/icons/check.js","../../node_modules/lucide-react/dist/esm/icons/circle-alert.js","../../node_modules/lucide-react/dist/esm/icons/copy.js","../../node_modules/lucide-react/dist/esm/icons/moon.js","../../node_modules/lucide-react/dist/esm/icons/rotate-ccw.js","../../node_modules/lucide-react/dist/esm/icons/sun.js","../src/assets/notjslogo.png","../src/NotJS.tsx"],"sourcesContent":["function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = true,\n o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = true, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = _objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r);\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey, _unsupportedIterableToArray as unsupportedIterableToArray };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\n\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\n\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\n\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\n\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\n\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n\n return [getState, setState];\n}\n\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\n\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\n\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\n\nvar index = {\n create: create\n};\n\nexport default index;\n","var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs'\n }\n};\n\nexport { config as default };\n","function curry(fn) {\n return function curried() {\n var _this = this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nexport { curry as default };\n","function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nexport { isObject as default };\n","import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n return config;\n}\n\n/**\n * logs deprecation message\n */\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\n\nexport { validators as default, errorHandler, errorMessages };\n","var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\n\nexport { compose as default };\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\n\nexport { merge as default };\n","// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\n\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\n\nexport { CANCELATION_MESSAGE, makeCancelable as default };\n","import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\nvar _excluded = [\"monaco\"];\n\n/** the local state of the module */\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n }),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, _excluded);\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n return makeCancelable(wrapperPromise);\n}\n\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n loaderScript.onload = function () {\n return configureLoader();\n };\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n\n/**\n * configures the monaco loader\n */\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n require.config(state.config);\n require(['vs/editor/editor.main'], function (loaded) {\n var monaco = loaded.m /* for 0.53 & 0.54 */ || loaded /* for other versions */;\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n\n/**\n * store monaco instance in local state\n */\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\n\nexport { loader as default };\n","import _t from\"@monaco-editor/loader\";import{memo as Te}from\"react\";import ke,{useState as re,useRef as S,useCallback as oe,useEffect as ne}from\"react\";import Se from\"@monaco-editor/loader\";import{memo as ye}from\"react\";import K from\"react\";var le={wrapper:{display:\"flex\",position:\"relative\",textAlign:\"initial\"},fullWidth:{width:\"100%\"},hide:{display:\"none\"}},v=le;import me from\"react\";var ae={container:{display:\"flex\",height:\"100%\",width:\"100%\",justifyContent:\"center\",alignItems:\"center\"}},Y=ae;function Me({children:e}){return me.createElement(\"div\",{style:Y.container},e)}var Z=Me;var $=Z;function Ee({width:e,height:r,isEditorReady:n,loading:t,_ref:a,className:m,wrapperProps:E}){return K.createElement(\"section\",{style:{...v.wrapper,width:e,height:r},...E},!n&&K.createElement($,null,t),K.createElement(\"div\",{ref:a,style:{...v.fullWidth,...!n&&v.hide},className:m}))}var ee=Ee;var H=ye(ee);import{useEffect as xe}from\"react\";function Ce(e){xe(e,[])}var k=Ce;import{useEffect as ge,useRef as Re}from\"react\";function he(e,r,n=!0){let t=Re(!0);ge(t.current||!n?()=>{t.current=!1}:e,r)}var l=he;function D(){}function h(e,r,n,t){return De(e,t)||be(e,r,n,t)}function De(e,r){return e.editor.getModel(te(e,r))}function be(e,r,n,t){return e.editor.createModel(r,n,t?te(e,t):void 0)}function te(e,r){return e.Uri.parse(r)}function Oe({original:e,modified:r,language:n,originalLanguage:t,modifiedLanguage:a,originalModelPath:m,modifiedModelPath:E,keepCurrentOriginalModel:g=!1,keepCurrentModifiedModel:N=!1,theme:x=\"light\",loading:P=\"Loading...\",options:y={},height:V=\"100%\",width:z=\"100%\",className:F,wrapperProps:j={},beforeMount:A=D,onMount:q=D}){let[M,O]=re(!1),[T,s]=re(!0),u=S(null),c=S(null),w=S(null),d=S(q),o=S(A),b=S(!1);k(()=>{let i=Se.init();return i.then(f=>(c.current=f)&&s(!1)).catch(f=>f?.type!==\"cancelation\"&&console.error(\"Monaco initialization: error:\",f)),()=>u.current?I():i.cancel()}),l(()=>{if(u.current&&c.current){let i=u.current.getOriginalEditor(),f=h(c.current,e||\"\",t||n||\"text\",m||\"\");f!==i.getModel()&&i.setModel(f)}},[m],M),l(()=>{if(u.current&&c.current){let i=u.current.getModifiedEditor(),f=h(c.current,r||\"\",a||n||\"text\",E||\"\");f!==i.getModel()&&i.setModel(f)}},[E],M),l(()=>{let i=u.current.getModifiedEditor();i.getOption(c.current.editor.EditorOption.readOnly)?i.setValue(r||\"\"):r!==i.getValue()&&(i.executeEdits(\"\",[{range:i.getModel().getFullModelRange(),text:r||\"\",forceMoveMarkers:!0}]),i.pushUndoStop())},[r],M),l(()=>{u.current?.getModel()?.original.setValue(e||\"\")},[e],M),l(()=>{let{original:i,modified:f}=u.current.getModel();c.current.editor.setModelLanguage(i,t||n||\"text\"),c.current.editor.setModelLanguage(f,a||n||\"text\")},[n,t,a],M),l(()=>{c.current?.editor.setTheme(x)},[x],M),l(()=>{u.current?.updateOptions(y)},[y],M);let L=oe(()=>{if(!c.current)return;o.current(c.current);let i=h(c.current,e||\"\",t||n||\"text\",m||\"\"),f=h(c.current,r||\"\",a||n||\"text\",E||\"\");u.current?.setModel({original:i,modified:f})},[n,r,a,e,t,m,E]),U=oe(()=>{!b.current&&w.current&&(u.current=c.current.editor.createDiffEditor(w.current,{automaticLayout:!0,...y}),L(),c.current?.editor.setTheme(x),O(!0),b.current=!0)},[y,x,L]);ne(()=>{M&&d.current(u.current,c.current)},[M]),ne(()=>{!T&&!M&&U()},[T,M,U]);function I(){let i=u.current?.getModel();g||i?.original?.dispose(),N||i?.modified?.dispose(),u.current?.dispose()}return ke.createElement(H,{width:z,height:V,isEditorReady:M,loading:P,_ref:w,className:F,wrapperProps:j})}var ie=Oe;var we=Te(ie);import{useState as Ie}from\"react\";import ce from\"@monaco-editor/loader\";function Pe(){let[e,r]=Ie(ce.__getMonacoInstance());return k(()=>{let n;return e||(n=ce.init(),n.then(t=>{r(t)})),()=>n?.cancel()}),e}var Le=Pe;import{memo as ze}from\"react\";import We,{useState as ue,useEffect as W,useRef as C,useCallback as _e}from\"react\";import Ne from\"@monaco-editor/loader\";import{useEffect as Ue,useRef as ve}from\"react\";function He(e){let r=ve();return Ue(()=>{r.current=e},[e]),r.current}var se=He;var _=new Map;function Ve({defaultValue:e,defaultLanguage:r,defaultPath:n,value:t,language:a,path:m,theme:E=\"light\",line:g,loading:N=\"Loading...\",options:x={},overrideServices:P={},saveViewState:y=!0,keepCurrentModel:V=!1,width:z=\"100%\",height:F=\"100%\",className:j,wrapperProps:A={},beforeMount:q=D,onMount:M=D,onChange:O,onValidate:T=D}){let[s,u]=ue(!1),[c,w]=ue(!0),d=C(null),o=C(null),b=C(null),L=C(M),U=C(q),I=C(),i=C(t),f=se(m),Q=C(!1),B=C(!1);k(()=>{let p=Ne.init();return p.then(R=>(d.current=R)&&w(!1)).catch(R=>R?.type!==\"cancelation\"&&console.error(\"Monaco initialization: error:\",R)),()=>o.current?pe():p.cancel()}),l(()=>{let p=h(d.current,e||t||\"\",r||a||\"\",m||n||\"\");p!==o.current?.getModel()&&(y&&_.set(f,o.current?.saveViewState()),o.current?.setModel(p),y&&o.current?.restoreViewState(_.get(m)))},[m],s),l(()=>{o.current?.updateOptions(x)},[x],s),l(()=>{!o.current||t===void 0||(o.current.getOption(d.current.editor.EditorOption.readOnly)?o.current.setValue(t):t!==o.current.getValue()&&(B.current=!0,o.current.executeEdits(\"\",[{range:o.current.getModel().getFullModelRange(),text:t,forceMoveMarkers:!0}]),o.current.pushUndoStop(),B.current=!1))},[t],s),l(()=>{let p=o.current?.getModel();p&&a&&d.current?.editor.setModelLanguage(p,a)},[a],s),l(()=>{g!==void 0&&o.current?.revealLine(g)},[g],s),l(()=>{d.current?.editor.setTheme(E)},[E],s);let X=_e(()=>{if(!(!b.current||!d.current)&&!Q.current){U.current(d.current);let p=m||n,R=h(d.current,t||e||\"\",r||a||\"\",p||\"\");o.current=d.current?.editor.create(b.current,{model:R,automaticLayout:!0,...x},P),y&&o.current.restoreViewState(_.get(p)),d.current.editor.setTheme(E),g!==void 0&&o.current.revealLine(g),u(!0),Q.current=!0}},[e,r,n,t,a,m,x,P,y,E,g]);W(()=>{s&&L.current(o.current,d.current)},[s]),W(()=>{!c&&!s&&X()},[c,s,X]),i.current=t,W(()=>{s&&O&&(I.current?.dispose(),I.current=o.current?.onDidChangeModelContent(p=>{B.current||O(o.current.getValue(),p)}))},[s,O]),W(()=>{if(s){let p=d.current.editor.onDidChangeMarkers(R=>{let G=o.current.getModel()?.uri;if(G&&R.find(J=>J.path===G.path)){let J=d.current.editor.getModelMarkers({resource:G});T?.(J)}});return()=>{p?.dispose()}}return()=>{}},[s,T]);function pe(){I.current?.dispose(),V?y&&_.set(m,o.current.saveViewState()):o.current.getModel()?.dispose(),o.current.dispose()}return We.createElement(H,{width:z,height:F,isEditorReady:s,loading:N,_ref:b,className:j,wrapperProps:A})}var fe=Ve;var de=ze(fe);var Ft=de;export{we as DiffEditor,de as Editor,Ft as default,_t as loader,Le as useMonaco};\n//# sourceMappingURL=index.mjs.map","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var i=t();for(var s in i)(\"object\"==typeof exports?exports:e)[s]=i[s]}}(globalThis,(()=>(()=>{\"use strict\";var e={4567:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.AccessibilityManager=void 0;const n=i(9042),o=i(9924),a=i(844),h=i(4725),c=i(2585),l=i(3656);let d=t.AccessibilityManager=class extends a.Disposable{constructor(e,t,i,s){super(),this._terminal=e,this._coreBrowserService=i,this._renderService=s,this._rowColumns=new WeakMap,this._liveRegionLineCount=0,this._charsToConsume=[],this._charsToAnnounce=\"\",this._accessibilityContainer=this._coreBrowserService.mainDocument.createElement(\"div\"),this._accessibilityContainer.classList.add(\"xterm-accessibility\"),this._rowContainer=this._coreBrowserService.mainDocument.createElement(\"div\"),this._rowContainer.setAttribute(\"role\",\"list\"),this._rowContainer.classList.add(\"xterm-accessibility-tree\"),this._rowElements=[];for(let e=0;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);if(this._topBoundaryFocusListener=e=>this._handleBoundaryFocus(e,0),this._bottomBoundaryFocusListener=e=>this._handleBoundaryFocus(e,1),this._rowElements[0].addEventListener(\"focus\",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._refreshRowsDimensions(),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=this._coreBrowserService.mainDocument.createElement(\"div\"),this._liveRegion.classList.add(\"live-region\"),this._liveRegion.setAttribute(\"aria-live\",\"assertive\"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this.register(new o.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error(\"Cannot enable accessibility before Terminal.open\");this._terminal.element.insertAdjacentElement(\"afterbegin\",this._accessibilityContainer),this.register(this._terminal.onResize((e=>this._handleResize(e.rows)))),this.register(this._terminal.onRender((e=>this._refreshRows(e.start,e.end)))),this.register(this._terminal.onScroll((()=>this._refreshRows()))),this.register(this._terminal.onA11yChar((e=>this._handleChar(e)))),this.register(this._terminal.onLineFeed((()=>this._handleChar(\"\\n\")))),this.register(this._terminal.onA11yTab((e=>this._handleTab(e)))),this.register(this._terminal.onKey((e=>this._handleKey(e.key)))),this.register(this._terminal.onBlur((()=>this._clearLiveRegion()))),this.register(this._renderService.onDimensionsChange((()=>this._refreshRowsDimensions()))),this.register((0,l.addDisposableDomListener)(document,\"selectionchange\",(()=>this._handleSelectionChange()))),this.register(this._coreBrowserService.onDprChange((()=>this._refreshRowsDimensions()))),this._refreshRows(),this.register((0,a.toDisposable)((()=>{this._accessibilityContainer.remove(),this._rowElements.length=0})))}_handleTab(e){for(let t=0;t<e;t++)this._handleChar(\" \")}_handleChar(e){this._liveRegionLineCount<21&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,\"\\n\"===e&&(this._liveRegionLineCount++,21===this._liveRegionLineCount&&(this._liveRegion.textContent+=n.tooMuchOutput)))}_clearLiveRegion(){this._liveRegion.textContent=\"\",this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,t){this._liveRegionDebouncer.refresh(e,t,this._terminal.rows)}_renderRows(e,t){const i=this._terminal.buffer,s=i.lines.length.toString();for(let r=e;r<=t;r++){const e=i.lines.get(i.ydisp+r),t=[],n=e?.translateToString(!0,void 0,void 0,t)||\"\",o=(i.ydisp+r+1).toString(),a=this._rowElements[r];a&&(0===n.length?(a.innerText=\" \",this._rowColumns.set(a,[0,1])):(a.textContent=n,this._rowColumns.set(a,t)),a.setAttribute(\"aria-posinset\",o),a.setAttribute(\"aria-setsize\",s))}this._announceCharacters()}_announceCharacters(){0!==this._charsToAnnounce.length&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce=\"\")}_handleBoundaryFocus(e,t){const i=e.target,s=this._rowElements[0===t?1:this._rowElements.length-2];if(i.getAttribute(\"aria-posinset\")===(0===t?\"1\":`${this._terminal.buffer.lines.length}`))return;if(e.relatedTarget!==s)return;let r,n;if(0===t?(r=i,n=this._rowElements.pop(),this._rowContainer.removeChild(n)):(r=this._rowElements.shift(),n=i,this._rowContainer.removeChild(r)),r.removeEventListener(\"focus\",this._topBoundaryFocusListener),n.removeEventListener(\"focus\",this._bottomBoundaryFocusListener),0===t){const e=this._createAccessibilityTreeNode();this._rowElements.unshift(e),this._rowContainer.insertAdjacentElement(\"afterbegin\",e)}else{const e=this._createAccessibilityTreeNode();this._rowElements.push(e),this._rowContainer.appendChild(e)}this._rowElements[0].addEventListener(\"focus\",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._terminal.scrollLines(0===t?-1:1),this._rowElements[0===t?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(0===this._rowElements.length)return;const e=document.getSelection();if(!e)return;if(e.isCollapsed)return void(this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection());if(!e.anchorNode||!e.focusNode)return void console.error(\"anchorNode and/or focusNode are null\");let t={node:e.anchorNode,offset:e.anchorOffset},i={node:e.focusNode,offset:e.focusOffset};if((t.node.compareDocumentPosition(i.node)&Node.DOCUMENT_POSITION_PRECEDING||t.node===i.node&&t.offset>i.offset)&&([t,i]=[i,t]),t.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(t={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(t.node))return;const s=this._rowElements.slice(-1)[0];if(i.node.compareDocumentPosition(s)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(i={node:s,offset:s.textContent?.length??0}),!this._rowContainer.contains(i.node))return;const r=({node:e,offset:t})=>{const i=e instanceof Text?e.parentNode:e;let s=parseInt(i?.getAttribute(\"aria-posinset\"),10)-1;if(isNaN(s))return console.warn(\"row is invalid. Race condition?\"),null;const r=this._rowColumns.get(i);if(!r)return console.warn(\"columns is null. Race condition?\"),null;let n=t<r.length?r[t]:r.slice(-1)[0]+1;return n>=this._terminal.cols&&(++s,n=0),{row:s,column:n}},n=r(t),o=r(i);if(n&&o){if(n.row>o.row||n.row===o.row&&n.column>=o.column)throw new Error(\"invalid range\");this._terminal.select(n.column,n.row,(o.row-n.row)*this._terminal.cols-n.column+o.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener(\"focus\",this._bottomBoundaryFocusListener);for(let e=this._rowContainer.children.length;e<this._terminal.rows;e++)this._rowElements[e]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[e]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const e=this._coreBrowserService.mainDocument.createElement(\"div\");return e.setAttribute(\"role\",\"listitem\"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){this._accessibilityContainer.style.width=`${this._renderService.dimensions.css.canvas.width}px`,this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e])}}_refreshRowDimensions(e){e.style.height=`${this._renderService.dimensions.css.cell.height}px`}};t.AccessibilityManager=d=s([r(1,c.IInstantiationService),r(2,h.ICoreBrowserService),r(3,h.IRenderService)],d)},3614:(e,t)=>{function i(e){return e.replace(/\\r?\\n/g,\"\\r\")}function s(e,t){return t?\"\u001b[200~\"+e+\"\u001b[201~\":e}function r(e,t,r,n){e=s(e=i(e),r.decPrivateModes.bracketedPasteMode&&!0!==n.rawOptions.ignoreBracketedPasteMode),r.triggerDataEvent(e,!0),t.value=\"\"}function n(e,t,i){const s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width=\"20px\",t.style.height=\"20px\",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex=\"1000\",t.focus()}Object.defineProperty(t,\"__esModule\",{value:!0}),t.rightClickHandler=t.moveTextAreaUnderMouseCursor=t.paste=t.handlePasteEvent=t.copyHandler=t.bracketTextForPaste=t.prepareTextForTerminal=void 0,t.prepareTextForTerminal=i,t.bracketTextForPaste=s,t.copyHandler=function(e,t){e.clipboardData&&e.clipboardData.setData(\"text/plain\",t.selectionText),e.preventDefault()},t.handlePasteEvent=function(e,t,i,s){e.stopPropagation(),e.clipboardData&&r(e.clipboardData.getData(\"text/plain\"),t,i,s)},t.paste=r,t.moveTextAreaUnderMouseCursor=n,t.rightClickHandler=function(e,t,i,s,r){n(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}},7239:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ColorContrastCache=void 0;const s=i(1505);t.ColorContrastCache=class{constructor(){this._color=new s.TwoKeyMap,this._css=new s.TwoKeyMap}setCss(e,t,i){this._css.set(e,t,i)}getCss(e,t){return this._css.get(e,t)}setColor(e,t,i){this._color.set(e,t,i)}getColor(e,t){return this._color.get(e,t)}clear(){this._color.clear(),this._css.clear()}}},3656:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.addDisposableDomListener=void 0,t.addDisposableDomListener=function(e,t,i,s){e.addEventListener(t,i,s);let r=!1;return{dispose:()=>{r||(r=!0,e.removeEventListener(t,i,s))}}}},3551:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.Linkifier=void 0;const n=i(3656),o=i(8460),a=i(844),h=i(2585),c=i(4725);let l=t.Linkifier=class extends a.Disposable{get currentLink(){return this._currentLink}constructor(e,t,i,s,r){super(),this._element=e,this._mouseService=t,this._renderService=i,this._bufferService=s,this._linkProviderService=r,this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new o.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new o.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,a.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,a.toDisposable)((()=>{this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()}))),this.register(this._bufferService.onResize((()=>{this._clearCurrentLink(),this._wasResized=!0}))),this.register((0,n.addDisposableDomListener)(this._element,\"mouseleave\",(()=>{this._isMouseOut=!0,this._clearCurrentLink()}))),this.register((0,n.addDisposableDomListener)(this._element,\"mousemove\",this._handleMouseMove.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,\"mousedown\",this._handleMouseDown.bind(this))),this.register((0,n.addDisposableDomListener)(this._element,\"mouseup\",this._handleMouseUp.bind(this)))}_handleMouseMove(e){this._lastMouseEvent=e;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!t)return;this._isMouseOut=!1;const i=e.composedPath();for(let e=0;e<i.length;e++){const t=i[e];if(t.classList.contains(\"xterm\"))break;if(t.classList.contains(\"xterm-hover\"))return}this._lastBufferCell&&t.x===this._lastBufferCell.x&&t.y===this._lastBufferCell.y||(this._handleHover(t),this._lastBufferCell=t)}_handleHover(e){if(this._activeLine!==e.y||this._wasResized)return this._clearCurrentLink(),this._askForLink(e,!1),void(this._wasResized=!1);this._currentLink&&this._linkAtPosition(this._currentLink.link,e)||(this._clearCurrentLink(),this._askForLink(e,!0))}_askForLink(e,t){this._activeProviderReplies&&t||(this._activeProviderReplies?.forEach((e=>{e?.forEach((e=>{e.link.dispose&&e.link.dispose()}))})),this._activeProviderReplies=new Map,this._activeLine=e.y);let i=!1;for(const[s,r]of this._linkProviderService.linkProviders.entries())if(t){const t=this._activeProviderReplies?.get(s);t&&(i=this._checkLinkProviderResult(s,e,i))}else r.provideLinks(e.y,(t=>{if(this._isMouseOut)return;const r=t?.map((e=>({link:e})));this._activeProviderReplies?.set(s,r),i=this._checkLinkProviderResult(s,e,i),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)}))}_removeIntersectingLinks(e,t){const i=new Set;for(let s=0;s<t.size;s++){const r=t.get(s);if(r)for(let t=0;t<r.length;t++){const s=r[t],n=s.link.range.start.y<e?0:s.link.range.start.x,o=s.link.range.end.y>e?this._bufferService.cols:s.link.range.end.x;for(let e=n;e<=o;e++){if(i.has(e)){r.splice(t--,1);break}i.add(e)}}}}_checkLinkProviderResult(e,t,i){if(!this._activeProviderReplies)return i;const s=this._activeProviderReplies.get(e);let r=!1;for(let t=0;t<e;t++)this._activeProviderReplies.has(t)&&!this._activeProviderReplies.get(t)||(r=!0);if(!r&&s){const e=s.find((e=>this._linkAtPosition(e.link,t)));e&&(i=!0,this._handleNewLink(e))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!i)for(let e=0;e<this._activeProviderReplies.size;e++){const s=this._activeProviderReplies.get(e)?.find((e=>this._linkAtPosition(e.link,t)));if(s){i=!0,this._handleNewLink(s);break}}return i}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._currentLink)return;const t=this._positionFromMouseEvent(e,this._element,this._mouseService);t&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,t)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,t){this._currentLink&&this._lastMouseEvent&&(!e||!t||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=t)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,a.disposeArray)(this._linkCacheDisposables))}_handleNewLink(e){if(!this._lastMouseEvent)return;const t=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);t&&this._linkAtPosition(e.link,t)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:void 0===e.link.decorations||e.link.decorations.underline,pointerCursor:void 0===e.link.decorations||e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:e=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==e&&(this._currentLink.state.decorations.pointerCursor=e,this._currentLink.state.isHovered&&this._element.classList.toggle(\"xterm-cursor-pointer\",e))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:t=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==t&&(this._currentLink.state.decorations.underline=t,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,t))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange((e=>{if(!this._currentLink)return;const t=0===e.start?0:e.start+1+this._bufferService.buffer.ydisp,i=this._bufferService.buffer.ydisp+1+e.end;if(this._currentLink.link.range.start.y>=t&&this._currentLink.link.range.end.y<=i&&(this._clearCurrentLink(t,i),this._lastMouseEvent)){const e=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);e&&this._askForLink(e,!1)}}))))}_linkHover(e,t,i){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add(\"xterm-cursor-pointer\")),t.hover&&t.hover(i,t.text)}_fireUnderlineEvent(e,t){const i=e.range,s=this._bufferService.buffer.ydisp,r=this._createLinkUnderlineEvent(i.start.x-1,i.start.y-s-1,i.end.x,i.end.y-s-1,void 0);(t?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(r)}_linkLeave(e,t,i){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(t,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove(\"xterm-cursor-pointer\")),t.leave&&t.leave(i,t.text)}_linkAtPosition(e,t){const i=e.range.start.y*this._bufferService.cols+e.range.start.x,s=e.range.end.y*this._bufferService.cols+e.range.end.x,r=t.y*this._bufferService.cols+t.x;return i<=r&&r<=s}_positionFromMouseEvent(e,t,i){const s=i.getCoords(e,t,this._bufferService.cols,this._bufferService.rows);if(s)return{x:s[0],y:s[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,t,i,s,r){return{x1:e,y1:t,x2:i,y2:s,cols:this._bufferService.cols,fg:r}}};t.Linkifier=l=s([r(1,c.IMouseService),r(2,c.IRenderService),r(3,h.IBufferService),r(4,c.ILinkProviderService)],l)},9042:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.tooMuchOutput=t.promptLabel=void 0,t.promptLabel=\"Terminal input\",t.tooMuchOutput=\"Too much output to announce, navigate to rows manually to read\"},3730:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscLinkProvider=void 0;const n=i(511),o=i(2585);let a=t.OscLinkProvider=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){const i=this._bufferService.buffer.lines.get(e-1);if(!i)return void t(void 0);const s=[],r=this._optionsService.rawOptions.linkHandler,o=new n.CellData,a=i.getTrimmedLength();let c=-1,l=-1,d=!1;for(let t=0;t<a;t++)if(-1!==l||i.hasContent(t)){if(i.loadCell(t,o),o.hasExtendedAttrs()&&o.extended.urlId){if(-1===l){l=t,c=o.extended.urlId;continue}d=o.extended.urlId!==c}else-1!==l&&(d=!0);if(d||-1!==l&&t===a-1){const i=this._oscLinkService.getLinkData(c)?.uri;if(i){const n={start:{x:l+1,y:e},end:{x:t+(d||t!==a-1?0:1),y:e}};let o=!1;if(!r?.allowNonHttpProtocols)try{const e=new URL(i);[\"http:\",\"https:\"].includes(e.protocol)||(o=!0)}catch(e){o=!0}o||s.push({text:i,range:n,activate:(e,t)=>r?r.activate(e,t,n):h(0,t),hover:(e,t)=>r?.hover?.(e,t,n),leave:(e,t)=>r?.leave?.(e,t,n)})}d=!1,o.hasExtendedAttrs()&&o.extended.urlId?(l=t,c=o.extended.urlId):(l=-1,c=-1)}}t(s)}};function h(e,t){if(confirm(`Do you want to navigate to ${t}?\\n\\nWARNING: This link could potentially be dangerous`)){const e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(\"Opening link blocked as opener could not be cleared\")}}t.OscLinkProvider=a=s([r(0,o.IBufferService),r(1,o.IOptionsService),r(2,o.IOscLinkService)],a)},6193:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.RenderDebouncer=void 0,t.RenderDebouncer=class{constructor(e,t){this._renderCallback=e,this._coreBrowserService=t,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(e){return this._refreshCallbacks.push(e),this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh()))),this._animationFrame}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t,this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._animationFrame=void 0,void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return void this._runRefreshCallbacks();const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(const e of this._refreshCallbacks)e(0);this._refreshCallbacks=[]}}},3236:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Terminal=void 0;const s=i(3614),r=i(3656),n=i(3551),o=i(9042),a=i(3730),h=i(1680),c=i(3107),l=i(5744),d=i(2950),_=i(1296),u=i(428),f=i(4269),v=i(5114),p=i(8934),g=i(3230),m=i(9312),S=i(4725),C=i(6731),b=i(8055),w=i(8969),y=i(8460),E=i(844),k=i(6114),L=i(8437),D=i(2584),R=i(7399),x=i(5941),A=i(9074),B=i(2585),T=i(5435),M=i(4567),O=i(779);class P extends w.CoreTerminal{get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}constructor(e={}){super(e),this.browser=k,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this.register(new E.MutableDisposable),this._onCursorMove=this.register(new y.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new y.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new y.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new y.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new y.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new y.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new y.EventEmitter),this._onBlur=this.register(new y.EventEmitter),this._onA11yCharEmitter=this.register(new y.EventEmitter),this._onA11yTabEmitter=this.register(new y.EventEmitter),this._onWillOpen=this.register(new y.EventEmitter),this._setup(),this._decorationService=this._instantiationService.createInstance(A.DecorationService),this._instantiationService.setService(B.IDecorationService,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(O.LinkProviderService),this._instantiationService.setService(S.ILinkProviderService,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(a.OscLinkProvider)),this.register(this._inputHandler.onRequestBell((()=>this._onBell.fire()))),this.register(this._inputHandler.onRequestRefreshRows(((e,t)=>this.refresh(e,t)))),this.register(this._inputHandler.onRequestSendFocus((()=>this._reportFocus()))),this.register(this._inputHandler.onRequestReset((()=>this.reset()))),this.register(this._inputHandler.onRequestWindowsOptionsReport((e=>this._reportWindowsOptions(e)))),this.register(this._inputHandler.onColor((e=>this._handleColorEvent(e)))),this.register((0,y.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,y.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,y.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,y.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize((e=>this._afterResize(e.cols,e.rows)))),this.register((0,E.toDisposable)((()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)})))}_handleColorEvent(e){if(this._themeService)for(const t of e){let e,i=\"\";switch(t.index){case 256:e=\"foreground\",i=\"10\";break;case 257:e=\"background\",i=\"11\";break;case 258:e=\"cursor\",i=\"12\";break;default:e=\"ansi\",i=\"4;\"+t.index}switch(t.type){case 0:const s=b.color.toColorRGB(\"ansi\"===e?this._themeService.colors.ansi[t.index]:this._themeService.colors[e]);this.coreService.triggerDataEvent(`${D.C0.ESC}]${i};${(0,x.toRgbString)(s)}${D.C1_ESCAPED.ST}`);break;case 1:if(\"ansi\"===e)this._themeService.modifyColors((e=>e.ansi[t.index]=b.channels.toColor(...t.color)));else{const i=e;this._themeService.modifyColors((e=>e[i]=b.channels.toColor(...t.color)))}break;case 2:this._themeService.restoreColor(t.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){e?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(D.C0.ESC+\"[I\"),this.element.classList.add(\"focus\"),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value=\"\",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(D.C0.ESC+\"[O\"),this.element.classList.remove(\"focus\"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;const e=this.buffer.ybase+this.buffer.y,t=this.buffer.lines.get(e);if(!t)return;const i=Math.min(this.buffer.x,this.cols-1),s=this._renderService.dimensions.css.cell.height,r=t.getWidth(i),n=this._renderService.dimensions.css.cell.width*r,o=this.buffer.y*this._renderService.dimensions.css.cell.height,a=i*this._renderService.dimensions.css.cell.width;this.textarea.style.left=a+\"px\",this.textarea.style.top=o+\"px\",this.textarea.style.width=n+\"px\",this.textarea.style.height=s+\"px\",this.textarea.style.lineHeight=s+\"px\",this.textarea.style.zIndex=\"-5\"}_initGlobal(){this._bindKeys(),this.register((0,r.addDisposableDomListener)(this.element,\"copy\",(e=>{this.hasSelection()&&(0,s.copyHandler)(e,this._selectionService)})));const e=e=>(0,s.handlePasteEvent)(e,this.textarea,this.coreService,this.optionsService);this.register((0,r.addDisposableDomListener)(this.textarea,\"paste\",e)),this.register((0,r.addDisposableDomListener)(this.element,\"paste\",e)),k.isFirefox?this.register((0,r.addDisposableDomListener)(this.element,\"mousedown\",(e=>{2===e.button&&(0,s.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))):this.register((0,r.addDisposableDomListener)(this.element,\"contextmenu\",(e=>{(0,s.rightClickHandler)(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)}))),k.isLinux&&this.register((0,r.addDisposableDomListener)(this.element,\"auxclick\",(e=>{1===e.button&&(0,s.moveTextAreaUnderMouseCursor)(e,this.textarea,this.screenElement)})))}_bindKeys(){this.register((0,r.addDisposableDomListener)(this.textarea,\"keyup\",(e=>this._keyUp(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,\"keydown\",(e=>this._keyDown(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,\"keypress\",(e=>this._keyPress(e)),!0)),this.register((0,r.addDisposableDomListener)(this.textarea,\"compositionstart\",(()=>this._compositionHelper.compositionstart()))),this.register((0,r.addDisposableDomListener)(this.textarea,\"compositionupdate\",(e=>this._compositionHelper.compositionupdate(e)))),this.register((0,r.addDisposableDomListener)(this.textarea,\"compositionend\",(()=>this._compositionHelper.compositionend()))),this.register((0,r.addDisposableDomListener)(this.textarea,\"input\",(e=>this._inputEvent(e)),!0)),this.register(this.onRender((()=>this._compositionHelper.updateCompositionElements())))}open(e){if(!e)throw new Error(\"Terminal requires a parent element.\");if(e.isConnected||this._logService.debug(\"Terminal.open was called on an element that was not attached to the DOM\"),this.element?.ownerDocument.defaultView&&this._coreBrowserService)return void(this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView));this._document=e.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement(\"div\"),this.element.dir=\"ltr\",this.element.classList.add(\"terminal\"),this.element.classList.add(\"xterm\"),e.appendChild(this.element);const t=this._document.createDocumentFragment();this._viewportElement=this._document.createElement(\"div\"),this._viewportElement.classList.add(\"xterm-viewport\"),t.appendChild(this._viewportElement),this._viewportScrollArea=this._document.createElement(\"div\"),this._viewportScrollArea.classList.add(\"xterm-scroll-area\"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=this._document.createElement(\"div\"),this.screenElement.classList.add(\"xterm-screen\"),this.register((0,r.addDisposableDomListener)(this.screenElement,\"mousemove\",(e=>this.updateCursorStyle(e)))),this._helperContainer=this._document.createElement(\"div\"),this._helperContainer.classList.add(\"xterm-helpers\"),this.screenElement.appendChild(this._helperContainer),t.appendChild(this.screenElement),this.textarea=this._document.createElement(\"textarea\"),this.textarea.classList.add(\"xterm-helper-textarea\"),this.textarea.setAttribute(\"aria-label\",o.promptLabel),k.isChromeOS||this.textarea.setAttribute(\"aria-multiline\",\"false\"),this.textarea.setAttribute(\"autocorrect\",\"off\"),this.textarea.setAttribute(\"autocapitalize\",\"off\"),this.textarea.setAttribute(\"spellcheck\",\"false\"),this.textarea.tabIndex=0,this._coreBrowserService=this.register(this._instantiationService.createInstance(v.CoreBrowserService,this.textarea,e.ownerDocument.defaultView??window,this._document??\"undefined\"!=typeof window?window.document:null)),this._instantiationService.setService(S.ICoreBrowserService,this._coreBrowserService),this.register((0,r.addDisposableDomListener)(this.textarea,\"focus\",(e=>this._handleTextAreaFocus(e)))),this.register((0,r.addDisposableDomListener)(this.textarea,\"blur\",(()=>this._handleTextAreaBlur()))),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(u.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(S.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(C.ThemeService),this._instantiationService.setService(S.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(f.CharacterJoinerService),this._instantiationService.setService(S.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(g.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(S.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange((e=>this._onRender.fire(e)))),this.onResize((e=>this._renderService.resize(e.cols,e.rows))),this._compositionView=this._document.createElement(\"div\"),this._compositionView.classList.add(\"composition-view\"),this._compositionHelper=this._instantiationService.createInstance(d.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(p.MouseService),this._instantiationService.setService(S.IMouseService,this._mouseService),this.linkifier=this.register(this._instantiationService.createInstance(n.Linkifier,this.screenElement)),this.element.appendChild(t);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this.viewport=this._instantiationService.createInstance(h.Viewport,this._viewportElement,this._viewportScrollArea),this.viewport.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent,1))),this.register(this._inputHandler.onRequestSyncScrollBar((()=>this.viewport.syncScrollArea()))),this.register(this.viewport),this.register(this.onCursorMove((()=>{this._renderService.handleCursorMove(),this._syncTextArea()}))),this.register(this.onResize((()=>this._renderService.handleResize(this.cols,this.rows)))),this.register(this.onBlur((()=>this._renderService.handleBlur()))),this.register(this.onFocus((()=>this._renderService.handleFocus()))),this.register(this._renderService.onDimensionsChange((()=>this.viewport.syncScrollArea()))),this._selectionService=this.register(this._instantiationService.createInstance(m.SelectionService,this.element,this.screenElement,this.linkifier)),this._instantiationService.setService(S.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines((e=>this.scrollLines(e.amount,e.suppressScrollEvent)))),this.register(this._selectionService.onSelectionChange((()=>this._onSelectionChange.fire()))),this.register(this._selectionService.onRequestRedraw((e=>this._renderService.handleSelectionChanged(e.start,e.end,e.columnSelectMode)))),this.register(this._selectionService.onLinuxMouseSelection((e=>{this.textarea.value=e,this.textarea.focus(),this.textarea.select()}))),this.register(this._onScroll.event((e=>{this.viewport.syncScrollArea(),this._selectionService.refresh()}))),this.register((0,r.addDisposableDomListener)(this._viewportElement,\"scroll\",(()=>this._selectionService.refresh()))),this.register(this._instantiationService.createInstance(c.BufferDecorationRenderer,this.screenElement)),this.register((0,r.addDisposableDomListener)(this.element,\"mousedown\",(e=>this._selectionService.handleMouseDown(e)))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add(\"enable-mouse-events\")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(M.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange(\"screenReaderMode\",(e=>this._handleScreenReaderModeOptionChange(e)))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(l.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange(\"overviewRulerWidth\",(e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(l.OverviewRulerRenderer,this._viewportElement,this.screenElement)))})),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(_.DomRenderer,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){const e=this,t=this.element;function i(t){const i=e._mouseService.getMouseReportCoords(t,e.screenElement);if(!i)return!1;let s,r;switch(t.overrideType||t.type){case\"mousemove\":r=32,void 0===t.buttons?(s=3,void 0!==t.button&&(s=t.button<3?t.button:3)):s=1&t.buttons?0:4&t.buttons?1:2&t.buttons?2:3;break;case\"mouseup\":r=0,s=t.button<3?t.button:3;break;case\"mousedown\":r=1,s=t.button<3?t.button:3;break;case\"wheel\":if(e._customWheelEventHandler&&!1===e._customWheelEventHandler(t))return!1;if(0===e.viewport.getLinesScrolled(t))return!1;r=t.deltaY<0?0:1,s=4;break;default:return!1}return!(void 0===r||void 0===s||s>4)&&e.coreMouseService.triggerMouseEvent({col:i.col,row:i.row,x:i.x,y:i.y,button:s,action:r,ctrl:t.ctrlKey,alt:t.altKey,shift:t.shiftKey})}const s={mouseup:null,wheel:null,mousedrag:null,mousemove:null},n={mouseup:e=>(i(e),e.buttons||(this._document.removeEventListener(\"mouseup\",s.mouseup),s.mousedrag&&this._document.removeEventListener(\"mousemove\",s.mousedrag)),this.cancel(e)),wheel:e=>(i(e),this.cancel(e,!0)),mousedrag:e=>{e.buttons&&i(e)},mousemove:e=>{e.buttons||i(e)}};this.register(this.coreMouseService.onProtocolChange((e=>{e?(\"debug\"===this.optionsService.rawOptions.logLevel&&this._logService.debug(\"Binding to mouse events:\",this.coreMouseService.explainEvents(e)),this.element.classList.add(\"enable-mouse-events\"),this._selectionService.disable()):(this._logService.debug(\"Unbinding from mouse events.\"),this.element.classList.remove(\"enable-mouse-events\"),this._selectionService.enable()),8&e?s.mousemove||(t.addEventListener(\"mousemove\",n.mousemove),s.mousemove=n.mousemove):(t.removeEventListener(\"mousemove\",s.mousemove),s.mousemove=null),16&e?s.wheel||(t.addEventListener(\"wheel\",n.wheel,{passive:!1}),s.wheel=n.wheel):(t.removeEventListener(\"wheel\",s.wheel),s.wheel=null),2&e?s.mouseup||(s.mouseup=n.mouseup):(this._document.removeEventListener(\"mouseup\",s.mouseup),s.mouseup=null),4&e?s.mousedrag||(s.mousedrag=n.mousedrag):(this._document.removeEventListener(\"mousemove\",s.mousedrag),s.mousedrag=null)}))),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,r.addDisposableDomListener)(t,\"mousedown\",(e=>{if(e.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(e))return i(e),s.mouseup&&this._document.addEventListener(\"mouseup\",s.mouseup),s.mousedrag&&this._document.addEventListener(\"mousemove\",s.mousedrag),this.cancel(e)}))),this.register((0,r.addDisposableDomListener)(t,\"wheel\",(e=>{if(!s.wheel){if(this._customWheelEventHandler&&!1===this._customWheelEventHandler(e))return!1;if(!this.buffer.hasScrollback){const t=this.viewport.getLinesScrolled(e);if(0===t)return;const i=D.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?\"O\":\"[\")+(e.deltaY<0?\"A\":\"B\");let s=\"\";for(let e=0;e<Math.abs(t);e++)s+=i;return this.coreService.triggerDataEvent(s,!0),this.cancel(e,!0)}return this.viewport.handleWheel(e)?this.cancel(e):void 0}}),{passive:!1})),this.register((0,r.addDisposableDomListener)(t,\"touchstart\",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(e),this.cancel(e)}),{passive:!0})),this.register((0,r.addDisposableDomListener)(t,\"touchmove\",(e=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(e)?void 0:this.cancel(e)}),{passive:!1}))}refresh(e,t){this._renderService?.refreshRows(e,t)}updateCursorStyle(e){this._selectionService?.shouldColumnSelect(e)?this.element.classList.add(\"column-select\"):this.element.classList.remove(\"column-select\")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,t,i=0){1===i?(super.scrollLines(e,t,i),this.refresh(0,this.rows-1)):this.viewport?.scrollLines(e)}paste(e){(0,s.paste)(e,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}attachCustomWheelEventHandler(e){this._customWheelEventHandler=e}registerLinkProvider(e){return this._linkProviderService.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw new Error(\"Terminal must be opened first\");const t=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),t}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw new Error(\"Terminal must be opened first\");this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(e,t,i){this._selectionService.setSelection(e,t,i)}getSelection(){return this._selectionService?this._selectionService.selectionText:\"\"}getSelectionPosition(){if(this._selectionService&&this._selectionService.hasSelection)return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(e,t){this._selectionService?.selectLines(e,t)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;const t=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!t&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;t||\"Dead\"!==e.key&&\"AltGraph\"!==e.key||(this._unprocessedDeadKey=!0);const i=(0,R.evaluateKeyboardEvent)(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),3===i.type||2===i.type){const t=this.rows-1;return this.scrollLines(2===i.type?-t:t),this.cancel(e,!0)}return 1===i.type&&this.selectAll(),!!this._isThirdLevelShift(this.browser,e)||(i.cancel&&this.cancel(e,!0),!i.key||!!(e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&1===e.key.length&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(i.key!==D.C0.ETX&&i.key!==D.C0.CR||(this.textarea.value=\"\"),this._onKey.fire({key:i.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(i.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey?this.cancel(e,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(e,t){const i=e.isMac&&!this.options.macOptionIsMeta&&t.altKey&&!t.ctrlKey&&!t.metaKey||e.isWindows&&t.altKey&&t.ctrlKey&&!t.metaKey||e.isWindows&&t.getModifierState(\"AltGraph\");return\"keypress\"===t.type?i:i&&(!t.keyCode||t.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,this._customKeyEventHandler&&!1===this._customKeyEventHandler(e)||(function(e){return 16===e.keyCode||17===e.keyCode||18===e.keyCode}(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let t;if(this._keyPressHandled=!1,this._keyDownHandled)return!1;if(this._customKeyEventHandler&&!1===this._customKeyEventHandler(e))return!1;if(this.cancel(e),e.charCode)t=e.charCode;else if(null===e.which||void 0===e.which)t=e.keyCode;else{if(0===e.which||0===e.charCode)return!1;t=e.which}return!(!t||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)||(t=String.fromCharCode(t),this._onKey.fire({key:t,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(t,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(e){if(e.data&&\"insertText\"===e.inputType&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;const t=e.data;return this.coreService.triggerDataEvent(t,!0),this.cancel(e),!0}return!1}resize(e,t){e!==this.cols||t!==this.rows?super.resize(e,t):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(e,t){this._charSizeService?.measure(),this.viewport?.syncScrollArea(!0)}clear(){if(0!==this.buffer.ybase||0!==this.buffer.y){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e<this.rows;e++)this.buffer.lines.push(this.buffer.getBlankLine(L.DEFAULT_ATTR_DATA));this._onScroll.fire({position:this.buffer.ydisp,source:0}),this.viewport?.reset(),this.refresh(0,this.rows-1)}}reset(){this.options.rows=this.rows,this.options.cols=this.cols;const e=this._customKeyEventHandler;this._setup(),super.reset(),this._selectionService?.reset(),this._decorationService.reset(),this.viewport?.reset(),this._customKeyEventHandler=e,this.refresh(0,this.rows-1)}clearTextureAtlas(){this._renderService?.clearTextureAtlas()}_reportFocus(){this.element?.classList.contains(\"focus\")?this.coreService.triggerDataEvent(D.C0.ESC+\"[I\"):this.coreService.triggerDataEvent(D.C0.ESC+\"[O\")}_reportWindowsOptions(e){if(this._renderService)switch(e){case T.WindowsOptionsReportType.GET_WIN_SIZE_PIXELS:const e=this._renderService.dimensions.css.canvas.width.toFixed(0),t=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${D.C0.ESC}[4;${t};${e}t`);break;case T.WindowsOptionsReportType.GET_CELL_SIZE_PIXELS:const i=this._renderService.dimensions.css.cell.width.toFixed(0),s=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${D.C0.ESC}[6;${s};${i}t`)}}cancel(e,t){if(this.options.cancelEvents||t)return e.preventDefault(),e.stopPropagation(),!1}}t.Terminal=P},9924:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TimeBasedDebouncer=void 0,t.TimeBasedDebouncer=class{constructor(e,t=1e3){this._renderCallback=e,this._debounceThresholdMS=t,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(e,t,i){this._rowCount=i,e=void 0!==e?e:0,t=void 0!==t?t:this._rowCount-1,this._rowStart=void 0!==this._rowStart?Math.min(this._rowStart,e):e,this._rowEnd=void 0!==this._rowEnd?Math.max(this._rowEnd,t):t;const s=Date.now();if(s-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=s,this._innerRefresh();else if(!this._additionalRefreshRequested){const e=s-this._lastRefreshMs,t=this._debounceThresholdMS-e;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout((()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0}),t)}}_innerRefresh(){if(void 0===this._rowStart||void 0===this._rowEnd||void 0===this._rowCount)return;const e=Math.max(this._rowStart,0),t=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(e,t)}}},1680:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.Viewport=void 0;const n=i(3656),o=i(4725),a=i(8460),h=i(844),c=i(2585);let l=t.Viewport=class extends h.Disposable{constructor(e,t,i,s,r,o,h,c){super(),this._viewportElement=e,this._scrollArea=t,this._bufferService=i,this._optionsService=s,this._charSizeService=r,this._renderService=o,this._coreBrowserService=h,this.scrollBarWidth=0,this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._wheelPartialScroll=0,this._refreshAnimationFrame=null,this._ignoreNextScrollEvent=!1,this._smoothScrollState={startTime:0,origin:-1,target:-1},this._onRequestScrollLines=this.register(new a.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,n.addDisposableDomListener)(this._viewportElement,\"scroll\",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange((e=>this._renderDimensions=e))),this._handleThemeChange(c.colors),this.register(c.onChangeColors((e=>this._handleThemeChange(e)))),this.register(this._optionsService.onSpecificOptionChange(\"scrollback\",(()=>this.syncScrollArea()))),setTimeout((()=>this.syncScrollArea()))}_handleThemeChange(e){this._viewportElement.style.backgroundColor=e.background.css}reset(){this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._coreBrowserService.window.requestAnimationFrame((()=>this.syncScrollArea()))}_refresh(e){if(e)return this._innerRefresh(),void(null!==this._refreshAnimationFrame&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));null===this._refreshAnimationFrame&&(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._innerRefresh())))}_innerRefresh(){if(this._charSizeService.height>0){this._currentRowHeight=this._renderDimensions.device.cell.height/this._coreBrowserService.dpr,this._currentDeviceCellHeight=this._renderDimensions.device.cell.height,this._lastRecordedViewportHeight=this._viewportElement.offsetHeight;const e=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderDimensions.css.canvas.height);this._lastRecordedBufferHeight!==e&&(this._lastRecordedBufferHeight=e,this._scrollArea.style.height=this._lastRecordedBufferHeight+\"px\")}const e=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==e&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=e),this._refreshAnimationFrame=null}syncScrollArea(e=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(e);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(e)}_handleScroll(e){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._onRequestScrollLines.fire({amount:0,suppressScrollEvent:!0});const t=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._onRequestScrollLines.fire({amount:t,suppressScrollEvent:!0})}_smoothScroll(){if(this._isDisposed||-1===this._smoothScrollState.origin||-1===this._smoothScrollState.target)return;const e=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(e*(this._smoothScrollState.target-this._smoothScrollState.origin)),e<1?this._coreBrowserService.window.requestAnimationFrame((()=>this._smoothScroll())):this._clearSmoothScrollState()}_smoothScrollPercent(){return this._optionsService.rawOptions.smoothScrollDuration&&this._smoothScrollState.startTime?Math.max(Math.min((Date.now()-this._smoothScrollState.startTime)/this._optionsService.rawOptions.smoothScrollDuration,1),0):1}_clearSmoothScrollState(){this._smoothScrollState.startTime=0,this._smoothScrollState.origin=-1,this._smoothScrollState.target=-1}_bubbleScroll(e,t){const i=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(t<0&&0!==this._viewportElement.scrollTop||t>0&&i<this._lastRecordedBufferHeight)||(e.cancelable&&e.preventDefault(),!1)}handleWheel(e){const t=this._getPixelsScrolled(e);return 0!==t&&(this._optionsService.rawOptions.smoothScrollDuration?(this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,-1===this._smoothScrollState.target?this._smoothScrollState.target=this._viewportElement.scrollTop+t:this._smoothScrollState.target+=t,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()):this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}scrollLines(e){if(0!==e)if(this._optionsService.rawOptions.smoothScrollDuration){const t=e*this._currentRowHeight;this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,this._smoothScrollState.target=this._smoothScrollState.origin+t,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()}else this._onRequestScrollLines.fire({amount:e,suppressScrollEvent:!1})}_getPixelsScrolled(e){if(0===e.deltaY||e.shiftKey)return 0;let t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_LINE?t*=this._currentRowHeight:e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._currentRowHeight*this._bufferService.rows),t}getBufferElements(e,t){let i,s=\"\";const r=[],n=t??this._bufferService.buffer.lines.length,o=this._bufferService.buffer.lines;for(let t=e;t<n;t++){const e=o.get(t);if(!e)continue;const n=o.get(t+1)?.isWrapped;if(s+=e.translateToString(!n),!n||t===o.length-1){const e=document.createElement(\"div\");e.textContent=s,r.push(e),s.length>0&&(i=e),s=\"\"}}return{bufferElements:r,cursorElement:i}}getLinesScrolled(e){if(0===e.deltaY||e.shiftKey)return 0;let t=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(t/=this._currentRowHeight+0,this._wheelPartialScroll+=t,t=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(t*=this._bufferService.rows),t}_applyScrollModifier(e,t){const i=this._optionsService.rawOptions.fastScrollModifier;return\"alt\"===i&&t.altKey||\"ctrl\"===i&&t.ctrlKey||\"shift\"===i&&t.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(e){this._lastTouchY=e.touches[0].pageY}handleTouchMove(e){const t=this._lastTouchY-e.touches[0].pageY;return this._lastTouchY=e.touches[0].pageY,0!==t&&(this._viewportElement.scrollTop+=t,this._bubbleScroll(e,t))}};t.Viewport=l=s([r(2,c.IBufferService),r(3,c.IOptionsService),r(4,o.ICharSizeService),r(5,o.IRenderService),r(6,o.ICoreBrowserService),r(7,o.IThemeService)],l)},3107:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferDecorationRenderer=void 0;const n=i(4725),o=i(844),a=i(2585);let h=t.BufferDecorationRenderer=class extends o.Disposable{constructor(e,t,i,s,r){super(),this._screenElement=e,this._bufferService=t,this._coreBrowserService=i,this._decorationService=s,this._renderService=r,this._decorationElements=new Map,this._altBufferIsActive=!1,this._dimensionsChanged=!1,this._container=document.createElement(\"div\"),this._container.classList.add(\"xterm-decoration-container\"),this._screenElement.appendChild(this._container),this.register(this._renderService.onRenderedViewportChange((()=>this._doRefreshDecorations()))),this.register(this._renderService.onDimensionsChange((()=>{this._dimensionsChanged=!0,this._queueRefresh()}))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt}))),this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh()))),this.register(this._decorationService.onDecorationRemoved((e=>this._removeDecoration(e)))),this.register((0,o.toDisposable)((()=>{this._container.remove(),this._decorationElements.clear()})))}_queueRefresh(){void 0===this._animationFrame&&(this._animationFrame=this._renderService.addRefreshCallback((()=>{this._doRefreshDecorations(),this._animationFrame=void 0})))}_doRefreshDecorations(){for(const e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){const t=this._coreBrowserService.mainDocument.createElement(\"div\");t.classList.add(\"xterm-decoration\"),t.classList.toggle(\"xterm-decoration-top-layer\",\"top\"===e?.options?.layer),t.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,t.style.height=(e.options.height||1)*this._renderService.dimensions.css.cell.height+\"px\",t.style.top=(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+\"px\",t.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;const i=e.options.x??0;return i&&i>this._bufferService.cols&&(t.style.display=\"none\"),this._refreshXPosition(e,t),t}_refreshStyle(e){const t=e.marker.line-this._bufferService.buffers.active.ydisp;if(t<0||t>=this._bufferService.rows)e.element&&(e.element.style.display=\"none\",e.onRenderEmitter.fire(e.element));else{let i=this._decorationElements.get(e);i||(i=this._createElement(e),e.element=i,this._decorationElements.set(e,i),this._container.appendChild(i),e.onDispose((()=>{this._decorationElements.delete(e),i.remove()}))),i.style.top=t*this._renderService.dimensions.css.cell.height+\"px\",i.style.display=this._altBufferIsActive?\"none\":\"block\",e.onRenderEmitter.fire(i)}}_refreshXPosition(e,t=e.element){if(!t)return;const i=e.options.x??0;\"right\"===(e.options.anchor||\"left\")?t.style.right=i?i*this._renderService.dimensions.css.cell.width+\"px\":\"\":t.style.left=i?i*this._renderService.dimensions.css.cell.width+\"px\":\"\"}_removeDecoration(e){this._decorationElements.get(e)?.remove(),this._decorationElements.delete(e),e.dispose()}};t.BufferDecorationRenderer=h=s([r(1,a.IBufferService),r(2,n.ICoreBrowserService),r(3,a.IDecorationService),r(4,n.IRenderService)],h)},5871:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ColorZoneStore=void 0,t.ColorZoneStore=class{constructor(){this._zones=[],this._zonePool=[],this._zonePoolIndex=0,this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(e){if(e.options.overviewRulerOptions){for(const t of this._zones)if(t.color===e.options.overviewRulerOptions.color&&t.position===e.options.overviewRulerOptions.position){if(this._lineIntersectsZone(t,e.marker.line))return;if(this._lineAdjacentToZone(t,e.marker.line,e.options.overviewRulerOptions.position))return void this._addLineToZone(t,e.marker.line)}if(this._zonePoolIndex<this._zonePool.length)return this._zonePool[this._zonePoolIndex].color=e.options.overviewRulerOptions.color,this._zonePool[this._zonePoolIndex].position=e.options.overviewRulerOptions.position,this._zonePool[this._zonePoolIndex].startBufferLine=e.marker.line,this._zonePool[this._zonePoolIndex].endBufferLine=e.marker.line,void this._zones.push(this._zonePool[this._zonePoolIndex++]);this._zones.push({color:e.options.overviewRulerOptions.color,position:e.options.overviewRulerOptions.position,startBufferLine:e.marker.line,endBufferLine:e.marker.line}),this._zonePool.push(this._zones[this._zones.length-1]),this._zonePoolIndex++}}setPadding(e){this._linePadding=e}_lineIntersectsZone(e,t){return t>=e.startBufferLine&&t<=e.endBufferLine}_lineAdjacentToZone(e,t,i){return t>=e.startBufferLine-this._linePadding[i||\"full\"]&&t<=e.endBufferLine+this._linePadding[i||\"full\"]}_addLineToZone(e,t){e.startBufferLine=Math.min(e.startBufferLine,t),e.endBufferLine=Math.max(e.endBufferLine,t)}}},5744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OverviewRulerRenderer=void 0;const n=i(5871),o=i(4725),a=i(844),h=i(2585),c={full:0,left:0,center:0,right:0},l={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0};let _=t.OverviewRulerRenderer=class extends a.Disposable{get _width(){return this._optionsService.options.overviewRulerWidth||0}constructor(e,t,i,s,r,o,h){super(),this._viewportElement=e,this._screenElement=t,this._bufferService=i,this._decorationService=s,this._renderService=r,this._optionsService=o,this._coreBrowserService=h,this._colorZoneStore=new n.ColorZoneStore,this._shouldUpdateDimensions=!0,this._shouldUpdateAnchor=!0,this._lastKnownBufferLength=0,this._canvas=this._coreBrowserService.mainDocument.createElement(\"canvas\"),this._canvas.classList.add(\"xterm-decoration-overview-ruler\"),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement);const c=this._canvas.getContext(\"2d\");if(!c)throw new Error(\"Ctx cannot be null\");this._ctx=c,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,a.toDisposable)((()=>{this._canvas?.remove()})))}_registerDecorationListeners(){this.register(this._decorationService.onDecorationRegistered((()=>this._queueRefresh(void 0,!0)))),this.register(this._decorationService.onDecorationRemoved((()=>this._queueRefresh(void 0,!0))))}_registerBufferChangeListeners(){this.register(this._renderService.onRenderedViewportChange((()=>this._queueRefresh()))),this.register(this._bufferService.buffers.onBufferActivate((()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?\"none\":\"block\"}))),this.register(this._bufferService.onScroll((()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})))}_registerDimensionChangeListeners(){this.register(this._renderService.onRender((()=>{this._containerHeight&&this._containerHeight===this._screenElement.clientHeight||(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)}))),this.register(this._optionsService.onSpecificOptionChange(\"overviewRulerWidth\",(()=>this._queueRefresh(!0)))),this.register(this._coreBrowserService.onDprChange((()=>this._queueRefresh(!0)))),this._queueRefresh(!0)}_refreshDrawConstants(){const e=Math.floor(this._canvas.width/3),t=Math.ceil(this._canvas.width/3);l.full=this._canvas.width,l.left=e,l.center=t,l.right=e,this._refreshDrawHeightConstants(),d.full=0,d.left=0,d.center=l.left,d.right=l.left+l.center}_refreshDrawHeightConstants(){c.full=Math.round(2*this._coreBrowserService.dpr);const e=this._canvas.height/this._bufferService.buffer.lines.length,t=Math.round(Math.max(Math.min(e,12),6)*this._coreBrowserService.dpr);c.left=t,c.center=t,c.right=t}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*c.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(const e of this._decorationService.decorations)this._colorZoneStore.addDecoration(e);this._ctx.lineWidth=1;const e=this._colorZoneStore.zones;for(const t of e)\"full\"!==t.position&&this._renderColorZone(t);for(const t of e)\"full\"===t.position&&this._renderColorZone(t);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(e){this._ctx.fillStyle=e.color,this._ctx.fillRect(d[e.position||\"full\"],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-c[e.position||\"full\"]/2),l[e.position||\"full\"],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+c[e.position||\"full\"]))}_queueRefresh(e,t){this._shouldUpdateDimensions=e||this._shouldUpdateDimensions,this._shouldUpdateAnchor=t||this._shouldUpdateAnchor,void 0===this._animationFrame&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>{this._refreshDecorations(),this._animationFrame=void 0})))}};t.OverviewRulerRenderer=_=s([r(2,h.IBufferService),r(3,h.IDecorationService),r(4,o.IRenderService),r(5,h.IOptionsService),r(6,o.ICoreBrowserService)],_)},2950:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CompositionHelper=void 0;const n=i(4725),o=i(2585),a=i(2584);let h=t.CompositionHelper=class{get isComposing(){return this._isComposing}constructor(e,t,i,s,r,n){this._textarea=e,this._compositionView=t,this._bufferService=i,this._optionsService=s,this._coreService=r,this._renderService=n,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=\"\"}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent=\"\",this._dataAlreadySent=\"\",this._compositionView.classList.add(\"active\")}compositionupdate(e){this._compositionView.textContent=e.data,this.updateCompositionElements(),setTimeout((()=>{this._compositionPosition.end=this._textarea.value.length}),0)}compositionend(){this._finalizeComposition(!0)}keydown(e){if(this._isComposing||this._isSendingComposition){if(229===e.keyCode)return!1;if(16===e.keyCode||17===e.keyCode||18===e.keyCode)return!1;this._finalizeComposition(!1)}return 229!==e.keyCode||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(e){if(this._compositionView.classList.remove(\"active\"),this._isComposing=!1,e){const e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout((()=>{if(this._isSendingComposition){let t;this._isSendingComposition=!1,e.start+=this._dataAlreadySent.length,t=this._isComposing?this._textarea.value.substring(e.start,e.end):this._textarea.value.substring(e.start),t.length>0&&this._coreService.triggerDataEvent(t,!0)}}),0)}else{this._isSendingComposition=!1;const e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){const e=this._textarea.value;setTimeout((()=>{if(!this._isComposing){const t=this._textarea.value,i=t.replace(e,\"\");this._dataAlreadySent=i,t.length>e.length?this._coreService.triggerDataEvent(i,!0):t.length<e.length?this._coreService.triggerDataEvent(`${a.C0.DEL}`,!0):t.length===e.length&&t!==e&&this._coreService.triggerDataEvent(t,!0)}}),0)}updateCompositionElements(e){if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){const e=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),t=this._renderService.dimensions.css.cell.height,i=this._bufferService.buffer.y*this._renderService.dimensions.css.cell.height,s=e*this._renderService.dimensions.css.cell.width;this._compositionView.style.left=s+\"px\",this._compositionView.style.top=i+\"px\",this._compositionView.style.height=t+\"px\",this._compositionView.style.lineHeight=t+\"px\",this._compositionView.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._compositionView.style.fontSize=this._optionsService.rawOptions.fontSize+\"px\";const r=this._compositionView.getBoundingClientRect();this._textarea.style.left=s+\"px\",this._textarea.style.top=i+\"px\",this._textarea.style.width=Math.max(r.width,1)+\"px\",this._textarea.style.height=Math.max(r.height,1)+\"px\",this._textarea.style.lineHeight=r.height+\"px\"}e||setTimeout((()=>this.updateCompositionElements(!0)),0)}}};t.CompositionHelper=h=s([r(2,o.IBufferService),r(3,o.IOptionsService),r(4,o.ICoreService),r(5,n.IRenderService)],h)},9806:(e,t)=>{function i(e,t,i){const s=i.getBoundingClientRect(),r=e.getComputedStyle(i),n=parseInt(r.getPropertyValue(\"padding-left\")),o=parseInt(r.getPropertyValue(\"padding-top\"));return[t.clientX-s.left-n,t.clientY-s.top-o]}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getCoords=t.getCoordsRelativeToElement=void 0,t.getCoordsRelativeToElement=i,t.getCoords=function(e,t,s,r,n,o,a,h,c){if(!o)return;const l=i(e,t,s);return l?(l[0]=Math.ceil((l[0]+(c?a/2:0))/a),l[1]=Math.ceil(l[1]/h),l[0]=Math.min(Math.max(l[0],1),r+(c?1:0)),l[1]=Math.min(Math.max(l[1],1),n),l):void 0}},9504:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.moveToCellSequence=void 0;const s=i(2584);function r(e,t,i,s){const r=e-n(e,i),a=t-n(t,i),l=Math.abs(r-a)-function(e,t,i){let s=0;const r=e-n(e,i),a=t-n(t,i);for(let n=0;n<Math.abs(r-a);n++){const a=\"A\"===o(e,t)?-1:1,h=i.buffer.lines.get(r+a*n);h?.isWrapped&&s++}return s}(e,t,i);return c(l,h(o(e,t),s))}function n(e,t){let i=0,s=t.buffer.lines.get(e),r=s?.isWrapped;for(;r&&e>=0&&e<t.rows;)i++,s=t.buffer.lines.get(--e),r=s?.isWrapped;return i}function o(e,t){return e>t?\"A\":\"B\"}function a(e,t,i,s,r,n){let o=e,a=t,h=\"\";for(;o!==i||a!==s;)o+=r?1:-1,r&&o>n.cols-1?(h+=n.buffer.translateBufferLineToString(a,!1,e,o),o=0,e=0,a++):!r&&o<0&&(h+=n.buffer.translateBufferLineToString(a,!1,0,e+1),o=n.cols-1,e=o,a--);return h+n.buffer.translateBufferLineToString(a,!1,e,o)}function h(e,t){const i=t?\"O\":\"[\";return s.C0.ESC+i+e}function c(e,t){e=Math.floor(e);let i=\"\";for(let s=0;s<e;s++)i+=t;return i}t.moveToCellSequence=function(e,t,i,s){const o=i.buffer.x,l=i.buffer.y;if(!i.buffer.hasScrollback)return function(e,t,i,s,o,l){return 0===r(t,s,o,l).length?\"\":c(a(e,t,e,t-n(t,o),!1,o).length,h(\"D\",l))}(o,l,0,t,i,s)+r(l,t,i,s)+function(e,t,i,s,o,l){let d;d=r(t,s,o,l).length>0?s-n(s,o):t;const _=s,u=function(e,t,i,s,o,a){let h;return h=r(i,s,o,a).length>0?s-n(s,o):t,e<i&&h<=s||e>=i&&h<s?\"C\":\"D\"}(e,t,i,s,o,l);return c(a(e,d,i,_,\"C\"===u,o).length,h(u,l))}(o,l,e,t,i,s);let d;if(l===t)return d=o>e?\"D\":\"C\",c(Math.abs(o-e),h(d,s));d=l>t?\"D\":\"C\";const _=Math.abs(l-t);return c(function(e,t){return t.cols-e}(l>t?e:o,i)+(_-1)*i.cols+1+((l>t?o:e)-1),h(d,s))}},1296:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.DomRenderer=void 0;const n=i(3787),o=i(2550),a=i(2223),h=i(6171),c=i(6052),l=i(4725),d=i(8055),_=i(8460),u=i(844),f=i(2585),v=\"xterm-dom-renderer-owner-\",p=\"xterm-rows\",g=\"xterm-fg-\",m=\"xterm-bg-\",S=\"xterm-focus\",C=\"xterm-selection\";let b=1,w=t.DomRenderer=class extends u.Disposable{constructor(e,t,i,s,r,a,l,d,f,g,m,S,w){super(),this._terminal=e,this._document=t,this._element=i,this._screenElement=s,this._viewportElement=r,this._helperContainer=a,this._linkifier2=l,this._charSizeService=f,this._optionsService=g,this._bufferService=m,this._coreBrowserService=S,this._themeService=w,this._terminalClass=b++,this._rowElements=[],this._selectionRenderModel=(0,c.createSelectionRenderModel)(),this.onRequestRedraw=this.register(new _.EventEmitter).event,this._rowContainer=this._document.createElement(\"div\"),this._rowContainer.classList.add(p),this._rowContainer.style.lineHeight=\"normal\",this._rowContainer.setAttribute(\"aria-hidden\",\"true\"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement(\"div\"),this._selectionContainer.classList.add(C),this._selectionContainer.setAttribute(\"aria-hidden\",\"true\"),this.dimensions=(0,h.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._themeService.onChangeColors((e=>this._injectCss(e)))),this._injectCss(this._themeService.colors),this._rowFactory=d.createInstance(n.DomRendererRowFactory,document),this._element.classList.add(v+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline((e=>this._handleLinkHover(e)))),this.register(this._linkifier2.onHideLinkUnderline((e=>this._handleLinkLeave(e)))),this.register((0,u.toDisposable)((()=>{this._element.classList.remove(v+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()}))),this._widthCache=new o.WidthCache(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){const e=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*e,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*e),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/e),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/e),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(const e of this._rowElements)e.style.width=`${this.dimensions.css.canvas.width}px`,e.style.height=`${this.dimensions.css.cell.height}px`,e.style.lineHeight=`${this.dimensions.css.cell.height}px`,e.style.overflow=\"hidden\";this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement(\"style\"),this._screenElement.appendChild(this._dimensionsStyleElement));const t=`${this._terminalSelector} .${p} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=t,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(e){this._themeStyleElement||(this._themeStyleElement=this._document.createElement(\"style\"),this._screenElement.appendChild(this._themeStyleElement));let t=`${this._terminalSelector} .${p} { color: ${e.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;t+=`${this._terminalSelector} .${p} .xterm-dim { color: ${d.color.multiplyOpacity(e.foreground,.5).css};}`,t+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;const i=`blink_underline_${this._terminalClass}`,s=`blink_bar_${this._terminalClass}`,r=`blink_block_${this._terminalClass}`;t+=`@keyframes ${i} { 50% { border-bottom-style: hidden; }}`,t+=`@keyframes ${s} { 50% { box-shadow: none; }}`,t+=`@keyframes ${r} { 0% { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css}; } 50% { background-color: inherit; color: ${e.cursor.css}; }}`,t+=`${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${i} 1s step-end infinite;}${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${s} 1s step-end infinite;}${this._terminalSelector} .${p}.${S} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${r} 1s step-end infinite;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-block { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css};}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${e.cursor.css} !important; color: ${e.cursorAccent.css} !important;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${e.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${e.cursor.css} inset;}${this._terminalSelector} .${p} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${e.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,t+=`${this._terminalSelector} .${C} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${C} div { position: absolute; background-color: ${e.selectionBackgroundOpaque.css};}${this._terminalSelector} .${C} div { position: absolute; background-color: ${e.selectionInactiveBackgroundOpaque.css};}`;for(const[i,s]of e.ansi.entries())t+=`${this._terminalSelector} .${g}${i} { color: ${s.css}; }${this._terminalSelector} .${g}${i}.xterm-dim { color: ${d.color.multiplyOpacity(s,.5).css}; }${this._terminalSelector} .${m}${i} { background-color: ${s.css}; }`;t+=`${this._terminalSelector} .${g}${a.INVERTED_DEFAULT_COLOR} { color: ${d.color.opaque(e.background).css}; }${this._terminalSelector} .${g}${a.INVERTED_DEFAULT_COLOR}.xterm-dim { color: ${d.color.multiplyOpacity(d.color.opaque(e.background),.5).css}; }${this._terminalSelector} .${m}${a.INVERTED_DEFAULT_COLOR} { background-color: ${e.foreground.css}; }`,this._themeStyleElement.textContent=t}_setDefaultSpacing(){const e=this.dimensions.css.cell.width-this._widthCache.get(\"W\",!1,!1);this._rowContainer.style.letterSpacing=`${e}px`,this._rowFactory.defaultSpacing=e}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(e,t){for(let e=this._rowElements.length;e<=t;e++){const e=this._document.createElement(\"div\");this._rowContainer.appendChild(e),this._rowElements.push(e)}for(;this._rowElements.length>t;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(e,t){this._refreshRowElements(e,t),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(S),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(S),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(e,t,i){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(e,t,i),this.renderRows(0,this._bufferService.rows-1),!e||!t)return;this._selectionRenderModel.update(this._terminal,e,t,i);const s=this._selectionRenderModel.viewportStartRow,r=this._selectionRenderModel.viewportEndRow,n=this._selectionRenderModel.viewportCappedStartRow,o=this._selectionRenderModel.viewportCappedEndRow;if(n>=this._bufferService.rows||o<0)return;const a=this._document.createDocumentFragment();if(i){const i=e[0]>t[0];a.appendChild(this._createSelectionElement(n,i?t[0]:e[0],i?e[0]:t[0],o-n+1))}else{const i=s===n?e[0]:0,h=n===r?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(n,i,h));const c=o-n-1;if(a.appendChild(this._createSelectionElement(n+1,0,this._bufferService.cols,c)),n!==o){const e=r===o?t[0]:this._bufferService.cols;a.appendChild(this._createSelectionElement(o,0,e))}}this._selectionContainer.appendChild(a)}_createSelectionElement(e,t,i,s=1){const r=this._document.createElement(\"div\"),n=t*this.dimensions.css.cell.width;let o=this.dimensions.css.cell.width*(i-t);return n+o>this.dimensions.css.canvas.width&&(o=this.dimensions.css.canvas.width-n),r.style.height=s*this.dimensions.css.cell.height+\"px\",r.style.top=e*this.dimensions.css.cell.height+\"px\",r.style.left=`${n}px`,r.style.width=`${o}px`,r}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(const e of this._rowElements)e.replaceChildren()}renderRows(e,t){const i=this._bufferService.buffer,s=i.ybase+i.y,r=Math.min(i.x,this._bufferService.cols-1),n=this._optionsService.rawOptions.cursorBlink,o=this._optionsService.rawOptions.cursorStyle,a=this._optionsService.rawOptions.cursorInactiveStyle;for(let h=e;h<=t;h++){const e=h+i.ydisp,t=this._rowElements[h],c=i.lines.get(e);if(!t||!c)break;t.replaceChildren(...this._rowFactory.createRow(c,e,e===s,o,a,r,n,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${v}${this._terminalClass}`}_handleLinkHover(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)}_handleLinkLeave(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)}_setCellUnderline(e,t,i,s,r,n){i<0&&(e=0),s<0&&(t=0);const o=this._bufferService.rows-1;i=Math.max(Math.min(i,o),0),s=Math.max(Math.min(s,o),0),r=Math.min(r,this._bufferService.cols);const a=this._bufferService.buffer,h=a.ybase+a.y,c=Math.min(a.x,r-1),l=this._optionsService.rawOptions.cursorBlink,d=this._optionsService.rawOptions.cursorStyle,_=this._optionsService.rawOptions.cursorInactiveStyle;for(let o=i;o<=s;++o){const u=o+a.ydisp,f=this._rowElements[o],v=a.lines.get(u);if(!f||!v)break;f.replaceChildren(...this._rowFactory.createRow(v,u,u===h,d,_,c,l,this.dimensions.css.cell.width,this._widthCache,n?o===i?e:0:-1,n?(o===s?t:r)-1:-1))}}};t.DomRenderer=w=s([r(7,f.IInstantiationService),r(8,l.ICharSizeService),r(9,f.IOptionsService),r(10,f.IBufferService),r(11,l.ICoreBrowserService),r(12,l.IThemeService)],w)},3787:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.DomRendererRowFactory=void 0;const n=i(2223),o=i(643),a=i(511),h=i(2585),c=i(8055),l=i(4725),d=i(4269),_=i(6171),u=i(3734);let f=t.DomRendererRowFactory=class{constructor(e,t,i,s,r,n,o){this._document=e,this._characterJoinerService=t,this._optionsService=i,this._coreBrowserService=s,this._coreService=r,this._decorationService=n,this._themeService=o,this._workCell=new a.CellData,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(e,t,i){this._selectionStart=e,this._selectionEnd=t,this._columnSelectMode=i}createRow(e,t,i,s,r,a,h,l,_,f,p){const g=[],m=this._characterJoinerService.getJoinedCharacters(t),S=this._themeService.colors;let C,b=e.getNoBgTrimmedLength();i&&b<a+1&&(b=a+1);let w=0,y=\"\",E=0,k=0,L=0,D=!1,R=0,x=!1,A=0;const B=[],T=-1!==f&&-1!==p;for(let M=0;M<b;M++){e.loadCell(M,this._workCell);let b=this._workCell.getWidth();if(0===b)continue;let O=!1,P=M,I=this._workCell;if(m.length>0&&M===m[0][0]){O=!0;const t=m.shift();I=new d.JoinedCellData(this._workCell,e.translateToString(!0,t[0],t[1]),t[1]-t[0]),P=t[1]-1,b=I.getWidth()}const H=this._isCellInSelection(M,t),F=i&&M===a,W=T&&M>=f&&M<=p;let U=!1;this._decorationService.forEachDecorationAtCell(M,t,void 0,(e=>{U=!0}));let N=I.getChars()||o.WHITESPACE_CELL_CHAR;if(\" \"===N&&(I.isUnderline()||I.isOverline())&&(N=\" \"),A=b*l-_.get(N,I.isBold(),I.isItalic()),C){if(w&&(H&&x||!H&&!x&&I.bg===E)&&(H&&x&&S.selectionForeground||I.fg===k)&&I.extended.ext===L&&W===D&&A===R&&!F&&!O&&!U){I.isInvisible()?y+=o.WHITESPACE_CELL_CHAR:y+=N,w++;continue}w&&(C.textContent=y),C=this._document.createElement(\"span\"),w=0,y=\"\"}else C=this._document.createElement(\"span\");if(E=I.bg,k=I.fg,L=I.extended.ext,D=W,R=A,x=H,O&&a>=M&&a<=P&&(a=M),!this._coreService.isCursorHidden&&F&&this._coreService.isCursorInitialized)if(B.push(\"xterm-cursor\"),this._coreBrowserService.isFocused)h&&B.push(\"xterm-cursor-blink\"),B.push(\"bar\"===s?\"xterm-cursor-bar\":\"underline\"===s?\"xterm-cursor-underline\":\"xterm-cursor-block\");else if(r)switch(r){case\"outline\":B.push(\"xterm-cursor-outline\");break;case\"block\":B.push(\"xterm-cursor-block\");break;case\"bar\":B.push(\"xterm-cursor-bar\");break;case\"underline\":B.push(\"xterm-cursor-underline\")}if(I.isBold()&&B.push(\"xterm-bold\"),I.isItalic()&&B.push(\"xterm-italic\"),I.isDim()&&B.push(\"xterm-dim\"),y=I.isInvisible()?o.WHITESPACE_CELL_CHAR:I.getChars()||o.WHITESPACE_CELL_CHAR,I.isUnderline()&&(B.push(`xterm-underline-${I.extended.underlineStyle}`),\" \"===y&&(y=\" \"),!I.isUnderlineColorDefault()))if(I.isUnderlineColorRGB())C.style.textDecorationColor=`rgb(${u.AttributeData.toColorRGB(I.getUnderlineColor()).join(\",\")})`;else{let e=I.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&I.isBold()&&e<8&&(e+=8),C.style.textDecorationColor=S.ansi[e].css}I.isOverline()&&(B.push(\"xterm-overline\"),\" \"===y&&(y=\" \")),I.isStrikethrough()&&B.push(\"xterm-strikethrough\"),W&&(C.style.textDecoration=\"underline\");let $=I.getFgColor(),j=I.getFgColorMode(),z=I.getBgColor(),K=I.getBgColorMode();const q=!!I.isInverse();if(q){const e=$;$=z,z=e;const t=j;j=K,K=t}let V,G,X,J=!1;switch(this._decorationService.forEachDecorationAtCell(M,t,void 0,(e=>{\"top\"!==e.options.layer&&J||(e.backgroundColorRGB&&(K=50331648,z=e.backgroundColorRGB.rgba>>8&16777215,V=e.backgroundColorRGB),e.foregroundColorRGB&&(j=50331648,$=e.foregroundColorRGB.rgba>>8&16777215,G=e.foregroundColorRGB),J=\"top\"===e.options.layer)})),!J&&H&&(V=this._coreBrowserService.isFocused?S.selectionBackgroundOpaque:S.selectionInactiveBackgroundOpaque,z=V.rgba>>8&16777215,K=50331648,J=!0,S.selectionForeground&&(j=50331648,$=S.selectionForeground.rgba>>8&16777215,G=S.selectionForeground)),J&&B.push(\"xterm-decoration-top\"),K){case 16777216:case 33554432:X=S.ansi[z],B.push(`xterm-bg-${z}`);break;case 50331648:X=c.channels.toColor(z>>16,z>>8&255,255&z),this._addStyle(C,`background-color:#${v((z>>>0).toString(16),\"0\",6)}`);break;default:q?(X=S.foreground,B.push(`xterm-bg-${n.INVERTED_DEFAULT_COLOR}`)):X=S.background}switch(V||I.isDim()&&(V=c.color.multiplyOpacity(X,.5)),j){case 16777216:case 33554432:I.isBold()&&$<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&($+=8),this._applyMinimumContrast(C,X,S.ansi[$],I,V,void 0)||B.push(`xterm-fg-${$}`);break;case 50331648:const e=c.channels.toColor($>>16&255,$>>8&255,255&$);this._applyMinimumContrast(C,X,e,I,V,G)||this._addStyle(C,`color:#${v($.toString(16),\"0\",6)}`);break;default:this._applyMinimumContrast(C,X,S.foreground,I,V,G)||q&&B.push(`xterm-fg-${n.INVERTED_DEFAULT_COLOR}`)}B.length&&(C.className=B.join(\" \"),B.length=0),F||O||U?C.textContent=y:w++,A!==this.defaultSpacing&&(C.style.letterSpacing=`${A}px`),g.push(C),M=P}return C&&w&&(C.textContent=y),g}_applyMinimumContrast(e,t,i,s,r,n){if(1===this._optionsService.rawOptions.minimumContrastRatio||(0,_.treatGlyphAsBackgroundColor)(s.getCode()))return!1;const o=this._getContrastCache(s);let a;if(r||n||(a=o.getColor(t.rgba,i.rgba)),void 0===a){const e=this._optionsService.rawOptions.minimumContrastRatio/(s.isDim()?2:1);a=c.color.ensureContrastRatio(r||t,n||i,e),o.setColor((r||t).rgba,(n||i).rgba,a??null)}return!!a&&(this._addStyle(e,`color:${a.css}`),!0)}_getContrastCache(e){return e.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(e,t){e.setAttribute(\"style\",`${e.getAttribute(\"style\")||\"\"}${t};`)}_isCellInSelection(e,t){const i=this._selectionStart,s=this._selectionEnd;return!(!i||!s)&&(this._columnSelectMode?i[0]<=s[0]?e>=i[0]&&t>=i[1]&&e<s[0]&&t<=s[1]:e<i[0]&&t>=i[1]&&e>=s[0]&&t<=s[1]:t>i[1]&&t<s[1]||i[1]===s[1]&&t===i[1]&&e>=i[0]&&e<s[0]||i[1]<s[1]&&t===s[1]&&e<s[0]||i[1]<s[1]&&t===i[1]&&e>=i[0])}};function v(e,t,i){for(;e.length<i;)e=t+e;return e}t.DomRendererRowFactory=f=s([r(1,l.ICharacterJoinerService),r(2,h.IOptionsService),r(3,l.ICoreBrowserService),r(4,h.ICoreService),r(5,h.IDecorationService),r(6,l.IThemeService)],f)},2550:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WidthCache=void 0,t.WidthCache=class{constructor(e,t){this._flat=new Float32Array(256),this._font=\"\",this._fontSize=0,this._weight=\"normal\",this._weightBold=\"bold\",this._measureElements=[],this._container=e.createElement(\"div\"),this._container.classList.add(\"xterm-width-cache-measure-container\"),this._container.setAttribute(\"aria-hidden\",\"true\"),this._container.style.whiteSpace=\"pre\",this._container.style.fontKerning=\"none\";const i=e.createElement(\"span\");i.classList.add(\"xterm-char-measure-element\");const s=e.createElement(\"span\");s.classList.add(\"xterm-char-measure-element\"),s.style.fontWeight=\"bold\";const r=e.createElement(\"span\");r.classList.add(\"xterm-char-measure-element\"),r.style.fontStyle=\"italic\";const n=e.createElement(\"span\");n.classList.add(\"xterm-char-measure-element\"),n.style.fontWeight=\"bold\",n.style.fontStyle=\"italic\",this._measureElements=[i,s,r,n],this._container.appendChild(i),this._container.appendChild(s),this._container.appendChild(r),this._container.appendChild(n),t.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(e,t,i,s){e===this._font&&t===this._fontSize&&i===this._weight&&s===this._weightBold||(this._font=e,this._fontSize=t,this._weight=i,this._weightBold=s,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${i}`,this._measureElements[1].style.fontWeight=`${s}`,this._measureElements[2].style.fontWeight=`${i}`,this._measureElements[3].style.fontWeight=`${s}`,this.clear())}get(e,t,i){let s=0;if(!t&&!i&&1===e.length&&(s=e.charCodeAt(0))<256){if(-9999!==this._flat[s])return this._flat[s];const t=this._measure(e,0);return t>0&&(this._flat[s]=t),t}let r=e;t&&(r+=\"B\"),i&&(r+=\"I\");let n=this._holey.get(r);if(void 0===n){let s=0;t&&(s|=1),i&&(s|=2),n=this._measure(e,s),n>0&&this._holey.set(r,n)}return n}_measure(e,t){const i=this._measureElements[t];return i.textContent=e.repeat(32),i.offsetWidth/32}}},2223:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.TEXT_BASELINE=t.DIM_OPACITY=t.INVERTED_DEFAULT_COLOR=void 0;const s=i(6114);t.INVERTED_DEFAULT_COLOR=257,t.DIM_OPACITY=.5,t.TEXT_BASELINE=s.isFirefox||s.isLegacyEdge?\"bottom\":\"ideographic\"},6171:(e,t)=>{function i(e){return 57508<=e&&e<=57558}function s(e){return e>=128512&&e<=128591||e>=127744&&e<=128511||e>=128640&&e<=128767||e>=9728&&e<=9983||e>=9984&&e<=10175||e>=65024&&e<=65039||e>=129280&&e<=129535||e>=127462&&e<=127487}Object.defineProperty(t,\"__esModule\",{value:!0}),t.computeNextVariantOffset=t.createRenderDimensions=t.treatGlyphAsBackgroundColor=t.allowRescaling=t.isEmoji=t.isRestrictedPowerlineGlyph=t.isPowerlineGlyph=t.throwIfFalsy=void 0,t.throwIfFalsy=function(e){if(!e)throw new Error(\"value must not be falsy\");return e},t.isPowerlineGlyph=i,t.isRestrictedPowerlineGlyph=function(e){return 57520<=e&&e<=57527},t.isEmoji=s,t.allowRescaling=function(e,t,r,n){return 1===t&&r>Math.ceil(1.5*n)&&void 0!==e&&e>255&&!s(e)&&!i(e)&&!function(e){return 57344<=e&&e<=63743}(e)},t.treatGlyphAsBackgroundColor=function(e){return i(e)||function(e){return 9472<=e&&e<=9631}(e)},t.createRenderDimensions=function(){return{css:{canvas:{width:0,height:0},cell:{width:0,height:0}},device:{canvas:{width:0,height:0},cell:{width:0,height:0},char:{width:0,height:0,left:0,top:0}}}},t.computeNextVariantOffset=function(e,t,i=0){return(e-(2*Math.round(t)-i))%(2*Math.round(t))}},6052:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.createSelectionRenderModel=void 0;class i{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(e,t,i,s=!1){if(this.selectionStart=t,this.selectionEnd=i,!t||!i||t[0]===i[0]&&t[1]===i[1])return void this.clear();const r=e.buffers.active.ydisp,n=t[1]-r,o=i[1]-r,a=Math.max(n,0),h=Math.min(o,e.rows-1);a>=e.rows||h<0?this.clear():(this.hasSelection=!0,this.columnSelectMode=s,this.viewportStartRow=n,this.viewportEndRow=o,this.viewportCappedStartRow=a,this.viewportCappedEndRow=h,this.startCol=t[0],this.endCol=i[0])}isCellSelected(e,t,i){return!!this.hasSelection&&(i-=e.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?t>=this.startCol&&i>=this.viewportCappedStartRow&&t<this.endCol&&i<=this.viewportCappedEndRow:t<this.startCol&&i>=this.viewportCappedStartRow&&t>=this.endCol&&i<=this.viewportCappedEndRow:i>this.viewportStartRow&&i<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&i===this.viewportStartRow&&t>=this.startCol&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&i===this.viewportEndRow&&t<this.endCol||this.viewportStartRow<this.viewportEndRow&&i===this.viewportStartRow&&t>=this.startCol)}}t.createSelectionRenderModel=function(){return new i}},456:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.SelectionModel=void 0,t.SelectionModel=class{constructor(e){this._bufferService=e,this.isSelectAllActive=!1,this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:this.selectionEnd&&this.selectionStart&&this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?e%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)-1]:[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[e,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){const e=this.selectionStart[0]+this.selectionStartLength;return e>this._bufferService.cols?[e%this._bufferService.cols,this.selectionStart[1]+Math.floor(e/this._bufferService.cols)]:[Math.max(e,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){const e=this.selectionStart,t=this.selectionEnd;return!(!e||!t)&&(e[1]>t[1]||e[1]===t[1]&&e[0]>t[0])}handleTrim(e){return this.selectionStart&&(this.selectionStart[1]-=e),this.selectionEnd&&(this.selectionEnd[1]-=e),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharSizeService=void 0;const n=i(2585),o=i(8460),a=i(844);let h=t.CharSizeService=class extends a.Disposable{get hasValidSize(){return this.width>0&&this.height>0}constructor(e,t,i){super(),this._optionsService=i,this.width=0,this.height=0,this._onCharSizeChange=this.register(new o.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this.register(new d(this._optionsService))}catch{this._measureStrategy=this.register(new l(e,t,this._optionsService))}this.register(this._optionsService.onMultipleOptionChange([\"fontFamily\",\"fontSize\"],(()=>this.measure())))}measure(){const e=this._measureStrategy.measure();e.width===this.width&&e.height===this.height||(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};t.CharSizeService=h=s([r(2,n.IOptionsService)],h);class c extends a.Disposable{constructor(){super(...arguments),this._result={width:0,height:0}}_validateAndSet(e,t){void 0!==e&&e>0&&void 0!==t&&t>0&&(this._result.width=e,this._result.height=t)}}class l extends c{constructor(e,t,i){super(),this._document=e,this._parentElement=t,this._optionsService=i,this._measureElement=this._document.createElement(\"span\"),this._measureElement.classList.add(\"xterm-char-measure-element\"),this._measureElement.textContent=\"W\".repeat(32),this._measureElement.setAttribute(\"aria-hidden\",\"true\"),this._measureElement.style.whiteSpace=\"pre\",this._measureElement.style.fontKerning=\"none\",this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}}class d extends c{constructor(e){super(),this._optionsService=e,this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext(\"2d\");const t=this._ctx.measureText(\"W\");if(!(\"width\"in t&&\"fontBoundingBoxAscent\"in t&&\"fontBoundingBoxDescent\"in t))throw new Error(\"Required font metrics not supported\")}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;const e=this._ctx.measureText(\"W\");return this._validateAndSet(e.width,e.fontBoundingBoxAscent+e.fontBoundingBoxDescent),this._result}}},4269:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharacterJoinerService=t.JoinedCellData=void 0;const n=i(3734),o=i(643),a=i(511),h=i(2585);class c extends n.AttributeData{constructor(e,t,i){super(),this.content=0,this.combinedData=\"\",this.fg=e.fg,this.bg=e.bg,this.combinedData=t,this._width=i}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error(\"not implemented\")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.JoinedCellData=c;let l=t.CharacterJoinerService=class e{constructor(e){this._bufferService=e,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new a.CellData}register(e){const t={id:this._nextCharacterJoinerId++,handler:e};return this._characterJoiners.push(t),t.id}deregister(e){for(let t=0;t<this._characterJoiners.length;t++)if(this._characterJoiners[t].id===e)return this._characterJoiners.splice(t,1),!0;return!1}getJoinedCharacters(e){if(0===this._characterJoiners.length)return[];const t=this._bufferService.buffer.lines.get(e);if(!t||0===t.length)return[];const i=[],s=t.translateToString(!0);let r=0,n=0,a=0,h=t.getFg(0),c=t.getBg(0);for(let e=0;e<t.getTrimmedLength();e++)if(t.loadCell(e,this._workCell),0!==this._workCell.getWidth()){if(this._workCell.fg!==h||this._workCell.bg!==c){if(e-r>1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t<e.length;t++)i.push(e[t])}r=e,a=n,h=this._workCell.fg,c=this._workCell.bg}n+=this._workCell.getChars().length||o.WHITESPACE_CELL_CHAR.length}if(this._bufferService.cols-r>1){const e=this._getJoinedRanges(s,a,n,t,r);for(let t=0;t<e.length;t++)i.push(e[t])}return i}_getJoinedRanges(t,i,s,r,n){const o=t.substring(i,s);let a=[];try{a=this._characterJoiners[0].handler(o)}catch(e){console.error(e)}for(let t=1;t<this._characterJoiners.length;t++)try{const i=this._characterJoiners[t].handler(o);for(let t=0;t<i.length;t++)e._mergeRanges(a,i[t])}catch(e){console.error(e)}return this._stringRangesToCellRanges(a,r,n),a}_stringRangesToCellRanges(e,t,i){let s=0,r=!1,n=0,a=e[s];if(a){for(let h=i;h<this._bufferService.cols;h++){const i=t.getWidth(h),c=t.getString(h).length||o.WHITESPACE_CELL_CHAR.length;if(0!==i){if(!r&&a[0]<=n&&(a[0]=h,r=!0),a[1]<=n){if(a[1]=h,a=e[++s],!a)break;a[0]<=n?(a[0]=h,r=!0):r=!1}n+=c}}a&&(a[1]=this._bufferService.cols)}}static _mergeRanges(e,t){let i=!1;for(let s=0;s<e.length;s++){const r=e[s];if(i){if(t[1]<=r[0])return e[s-1][1]=t[1],e;if(t[1]<=r[1])return e[s-1][1]=Math.max(t[1],r[1]),e.splice(s,1),e;e.splice(s,1),s--}else{if(t[1]<=r[0])return e.splice(s,0,t),e;if(t[1]<=r[1])return r[0]=Math.min(t[0],r[0]),e;t[0]<r[1]&&(r[0]=Math.min(t[0],r[0]),i=!0)}}return i?e[e.length-1][1]=t[1]:e.push(t),e}};t.CharacterJoinerService=l=s([r(0,h.IBufferService)],l)},5114:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreBrowserService=void 0;const s=i(844),r=i(8460),n=i(3656);class o extends s.Disposable{constructor(e,t,i){super(),this._textarea=e,this._window=t,this.mainDocument=i,this._isFocused=!1,this._cachedIsFocused=void 0,this._screenDprMonitor=new a(this._window),this._onDprChange=this.register(new r.EventEmitter),this.onDprChange=this._onDprChange.event,this._onWindowChange=this.register(new r.EventEmitter),this.onWindowChange=this._onWindowChange.event,this.register(this.onWindowChange((e=>this._screenDprMonitor.setWindow(e)))),this.register((0,r.forwardEvent)(this._screenDprMonitor.onDprChange,this._onDprChange)),this._textarea.addEventListener(\"focus\",(()=>this._isFocused=!0)),this._textarea.addEventListener(\"blur\",(()=>this._isFocused=!1))}get window(){return this._window}set window(e){this._window!==e&&(this._window=e,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return void 0===this._cachedIsFocused&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask((()=>this._cachedIsFocused=void 0))),this._cachedIsFocused}}t.CoreBrowserService=o;class a extends s.Disposable{constructor(e){super(),this._parentWindow=e,this._windowResizeListener=this.register(new s.MutableDisposable),this._onDprChange=this.register(new r.EventEmitter),this.onDprChange=this._onDprChange.event,this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this.register((0,s.toDisposable)((()=>this.clearListener())))}setWindow(e){this._parentWindow=e,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=(0,n.addDisposableDomListener)(this._parentWindow,\"resize\",(()=>this._setDprAndFireIfDiffers()))}_setDprAndFireIfDiffers(){this._parentWindow.devicePixelRatio!==this._currentDevicePixelRatio&&this._onDprChange.fire(this._parentWindow.devicePixelRatio),this._updateDpr()}_updateDpr(){this._outerListener&&(this._resolutionMediaMatchList?.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){this._resolutionMediaMatchList&&this._outerListener&&(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._outerListener=void 0)}}},779:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.LinkProviderService=void 0;const s=i(844);class r extends s.Disposable{constructor(){super(),this.linkProviders=[],this.register((0,s.toDisposable)((()=>this.linkProviders.length=0)))}registerLinkProvider(e){return this.linkProviders.push(e),{dispose:()=>{const t=this.linkProviders.indexOf(e);-1!==t&&this.linkProviders.splice(t,1)}}}}t.LinkProviderService=r},8934:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.MouseService=void 0;const n=i(4725),o=i(9806);let a=t.MouseService=class{constructor(e,t){this._renderService=e,this._charSizeService=t}getCoords(e,t,i,s,r){return(0,o.getCoords)(window,e,t,i,s,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,r)}getMouseReportCoords(e,t){const i=(0,o.getCoordsRelativeToElement)(window,e,t);if(this._charSizeService.hasValidSize)return i[0]=Math.min(Math.max(i[0],0),this._renderService.dimensions.css.canvas.width-1),i[1]=Math.min(Math.max(i[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(i[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(i[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(i[0]),y:Math.floor(i[1])}}};t.MouseService=a=s([r(0,n.IRenderService),r(1,n.ICharSizeService)],a)},3230:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.RenderService=void 0;const n=i(6193),o=i(4725),a=i(8460),h=i(844),c=i(7226),l=i(2585);let d=t.RenderService=class extends h.Disposable{get dimensions(){return this._renderer.value.dimensions}constructor(e,t,i,s,r,o,l,d){super(),this._rowCount=e,this._charSizeService=s,this._renderer=this.register(new h.MutableDisposable),this._pausedResizeTask=new c.DebouncedIdleTask,this._observerDisposable=this.register(new h.MutableDisposable),this._isPaused=!1,this._needsFullRefresh=!1,this._isNextRenderRedrawOnly=!0,this._needsSelectionRefresh=!1,this._canvasWidth=0,this._canvasHeight=0,this._selectionState={start:void 0,end:void 0,columnSelectMode:!1},this._onDimensionsChange=this.register(new a.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new a.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new a.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new a.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new n.RenderDebouncer(((e,t)=>this._renderRows(e,t)),l),this.register(this._renderDebouncer),this.register(l.onDprChange((()=>this.handleDevicePixelRatioChange()))),this.register(o.onResize((()=>this._fullRefresh()))),this.register(o.buffers.onBufferActivate((()=>this._renderer.value?.clear()))),this.register(i.onOptionChange((()=>this._handleOptionsChanged()))),this.register(this._charSizeService.onCharSizeChange((()=>this.handleCharSizeChanged()))),this.register(r.onDecorationRegistered((()=>this._fullRefresh()))),this.register(r.onDecorationRemoved((()=>this._fullRefresh()))),this.register(i.onMultipleOptionChange([\"customGlyphs\",\"drawBoldTextInBrightColors\",\"letterSpacing\",\"lineHeight\",\"fontFamily\",\"fontSize\",\"fontWeight\",\"fontWeightBold\",\"minimumContrastRatio\",\"rescaleOverlappingGlyphs\"],(()=>{this.clear(),this.handleResize(o.cols,o.rows),this._fullRefresh()}))),this.register(i.onMultipleOptionChange([\"cursorBlink\",\"cursorStyle\"],(()=>this.refreshRows(o.buffer.y,o.buffer.y,!0)))),this.register(d.onChangeColors((()=>this._fullRefresh()))),this._registerIntersectionObserver(l.window,t),this.register(l.onWindowChange((e=>this._registerIntersectionObserver(e,t))))}_registerIntersectionObserver(e,t){if(\"IntersectionObserver\"in e){const i=new e.IntersectionObserver((e=>this._handleIntersectionChange(e[e.length-1])),{threshold:0});i.observe(t),this._observerDisposable.value=(0,h.toDisposable)((()=>i.disconnect()))}}_handleIntersectionChange(e){this._isPaused=void 0===e.isIntersecting?0===e.intersectionRatio:!e.isIntersecting,this._isPaused||this._charSizeService.hasValidSize||this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(e,t,i=!1){this._isPaused?this._needsFullRefresh=!0:(i||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(e,t,this._rowCount))}_renderRows(e,t){this._renderer.value&&(e=Math.min(e,this._rowCount-1),t=Math.min(t,this._rowCount-1),this._renderer.value.renderRows(e,t),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:e,end:t}),this._onRender.fire({start:e,end:t}),this._isNextRenderRedrawOnly=!0)}resize(e,t){this._rowCount=t,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(e){this._renderer.value=e,this._renderer.value&&(this._renderer.value.onRequestRedraw((e=>this.refreshRows(e.start,e.end,!0))),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(e){return this._renderDebouncer.addRefreshCallback(e)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(e,t){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set((()=>this._renderer.value?.handleResize(e,t))):this._renderer.value.handleResize(e,t),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(e,t,i){this._selectionState.start=e,this._selectionState.end=t,this._selectionState.columnSelectMode=i,this._renderer.value?.handleSelectionChanged(e,t,i)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};t.RenderService=d=s([r(2,l.IOptionsService),r(3,o.ICharSizeService),r(4,l.IDecorationService),r(5,l.IBufferService),r(6,o.ICoreBrowserService),r(7,o.IThemeService)],d)},9312:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.SelectionService=void 0;const n=i(9806),o=i(9504),a=i(456),h=i(4725),c=i(8460),l=i(844),d=i(6114),_=i(4841),u=i(511),f=i(2585),v=String.fromCharCode(160),p=new RegExp(v,\"g\");let g=t.SelectionService=class extends l.Disposable{constructor(e,t,i,s,r,n,o,h,d){super(),this._element=e,this._screenElement=t,this._linkifier=i,this._bufferService=s,this._coreService=r,this._mouseService=n,this._optionsService=o,this._renderService=h,this._coreBrowserService=d,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new u.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new c.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new c.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new c.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new c.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=e=>this._handleMouseMove(e),this._mouseUpListener=e=>this._handleMouseUp(e),this._coreService.onUserInput((()=>{this.hasSelection&&this.clearSelection()})),this._trimListener=this._bufferService.buffer.lines.onTrim((e=>this._handleTrim(e))),this.register(this._bufferService.buffers.onBufferActivate((e=>this._handleBufferActivate(e)))),this.enable(),this._model=new a.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,l.toDisposable)((()=>{this._removeMouseDownListeners()})))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;return!(!e||!t||e[0]===t[0]&&e[1]===t[1])}get selectionText(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd;if(!e||!t)return\"\";const i=this._bufferService.buffer,s=[];if(3===this._activeSelectionMode){if(e[0]===t[0])return\"\";const r=e[0]<t[0]?e[0]:t[0],n=e[0]<t[0]?t[0]:e[0];for(let o=e[1];o<=t[1];o++){const e=i.translateBufferLineToString(o,!0,r,n);s.push(e)}}else{const r=e[1]===t[1]?t[0]:void 0;s.push(i.translateBufferLineToString(e[1],!0,e[0],r));for(let r=e[1]+1;r<=t[1]-1;r++){const e=i.lines.get(r),t=i.translateBufferLineToString(r,!0);e?.isWrapped?s[s.length-1]+=t:s.push(t)}if(e[1]!==t[1]){const e=i.lines.get(t[1]),r=i.translateBufferLineToString(t[1],!0,0,t[0]);e&&e.isWrapped?s[s.length-1]+=r:s.push(r)}}return s.map((e=>e.replace(p,\" \"))).join(d.isWindows?\"\\r\\n\":\"\\n\")}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame((()=>this._refresh()))),d.isLinux&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:3===this._activeSelectionMode})}_isClickInSelection(e){const t=this._getMouseBufferCoords(e),i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!!(i&&s&&t)&&this._areCoordsInSelection(t,i,s)}isCellInSelection(e,t){const i=this._model.finalSelectionStart,s=this._model.finalSelectionEnd;return!(!i||!s)&&this._areCoordsInSelection([e,t],i,s)}_areCoordsInSelection(e,t,i){return e[1]>t[1]&&e[1]<i[1]||t[1]===i[1]&&e[1]===t[1]&&e[0]>=t[0]&&e[0]<i[0]||t[1]<i[1]&&e[1]===i[1]&&e[0]<i[0]||t[1]<i[1]&&e[1]===t[1]&&e[0]>=t[0]}_selectWordAtCursor(e,t){const i=this._linkifier.currentLink?.link?.range;if(i)return this._model.selectionStart=[i.start.x-1,i.start.y-1],this._model.selectionStartLength=(0,_.getRangeLength)(i,this._bufferService.cols),this._model.selectionEnd=void 0,!0;const s=this._getMouseBufferCoords(e);return!!s&&(this._selectWordAt(s,t),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,t){this._model.clearSelection(),e=Math.max(e,0),t=Math.min(t,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,t],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){const t=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(t)return t[0]--,t[1]--,t[1]+=this._bufferService.buffer.ydisp,t}_getMouseEventScrollAmount(e){let t=(0,n.getCoordsRelativeToElement)(this._coreBrowserService.window,e,this._screenElement)[1];const i=this._renderService.dimensions.css.canvas.height;return t>=0&&t<=i?0:(t>i&&(t-=i),t=Math.min(Math.max(t,-50),50),t/=50,t/Math.abs(t)+Math.round(14*t))}shouldForceSelection(e){return d.isMac?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,(2!==e.button||!this.hasSelection)&&0===e.button){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):1===e.detail?this._handleSingleClick(e):2===e.detail?this._handleDoubleClick(e):3===e.detail&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener(\"mousemove\",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener(\"mouseup\",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval((()=>this._dragScroll()),50)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener(\"mousemove\",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener(\"mouseup\",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;const t=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);t&&t.length!==this._model.selectionStart[0]&&0===t.hasWidth(this._model.selectionStart[0])&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){const t=this._getMouseBufferCoords(e);t&&(this._activeSelectionMode=2,this._selectLineAt(t[1]))}shouldColumnSelect(e){return e.altKey&&!(d.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;const t=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd)return void this.refresh(!0);2===this._activeSelectionMode?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:1===this._activeSelectionMode&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(e),3!==this._activeSelectionMode&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));const i=this._bufferService.buffer;if(this._model.selectionEnd[1]<i.lines.length){const e=i.lines.get(this._model.selectionEnd[1]);e&&0===e.hasWidth(this._model.selectionEnd[0])&&this._model.selectionEnd[0]<this._bufferService.cols&&this._model.selectionEnd[0]++}t&&t[0]===this._model.selectionEnd[0]&&t[1]===this._model.selectionEnd[1]||this.refresh(!0)}_dragScroll(){if(this._model.selectionEnd&&this._model.selectionStart&&this._dragScrollAmount){this._onRequestScrollLines.fire({amount:this._dragScrollAmount,suppressScrollEvent:!1});const e=this._bufferService.buffer;this._dragScrollAmount>0?(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(3!==this._activeSelectionMode&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){const t=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&t<500&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){const t=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(t&&void 0!==t[0]&&void 0!==t[1]){const e=(0,o.moveToCellSequence)(t[0]-1,t[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(e,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){const e=this._model.finalSelectionStart,t=this._model.finalSelectionEnd,i=!(!e||!t||e[0]===t[0]&&e[1]===t[1]);i?e&&t&&(this._oldSelectionStart&&this._oldSelectionEnd&&e[0]===this._oldSelectionStart[0]&&e[1]===this._oldSelectionStart[1]&&t[0]===this._oldSelectionEnd[0]&&t[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(e,t,i)):this._oldHasSelection&&this._fireOnSelectionChange(e,t,i)}_fireOnSelectionChange(e,t,i){this._oldSelectionStart=e,this._oldSelectionEnd=t,this._oldHasSelection=i,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim((e=>this._handleTrim(e)))}_convertViewportColToCharacterIndex(e,t){let i=t;for(let s=0;t>=s;s++){const r=e.loadCell(s,this._workCell).getChars().length;0===this._workCell.getWidth()?i--:r>1&&t!==s&&(i+=r-1)}return i}setSelection(e,t,i){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,t],this._model.selectionStartLength=i,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,t,i=!0,s=!0){if(e[0]>=this._bufferService.cols)return;const r=this._bufferService.buffer,n=r.lines.get(e[1]);if(!n)return;const o=r.translateBufferLineToString(e[1],!1);let a=this._convertViewportColToCharacterIndex(n,e[0]),h=a;const c=e[0]-a;let l=0,d=0,_=0,u=0;if(\" \"===o.charAt(a)){for(;a>0&&\" \"===o.charAt(a-1);)a--;for(;h<o.length&&\" \"===o.charAt(h+1);)h++}else{let t=e[0],i=e[0];0===n.getWidth(t)&&(l++,t--),2===n.getWidth(i)&&(d++,i++);const s=n.getString(i).length;for(s>1&&(u+=s-1,h+=s-1);t>0&&a>0&&!this._isCharWordSeparator(n.loadCell(t-1,this._workCell));){n.loadCell(t-1,this._workCell);const e=this._workCell.getChars().length;0===this._workCell.getWidth()?(l++,t--):e>1&&(_+=e-1,a-=e-1),a--,t--}for(;i<n.length&&h+1<o.length&&!this._isCharWordSeparator(n.loadCell(i+1,this._workCell));){n.loadCell(i+1,this._workCell);const e=this._workCell.getChars().length;2===this._workCell.getWidth()?(d++,i++):e>1&&(u+=e-1,h+=e-1),h++,i++}}h++;let f=a+c-l+_,v=Math.min(this._bufferService.cols,h-a+l+d-_-u);if(t||\"\"!==o.slice(a,h).trim()){if(i&&0===f&&32!==n.getCodePoint(0)){const t=r.lines.get(e[1]-1);if(t&&n.isWrapped&&32!==t.getCodePoint(this._bufferService.cols-1)){const t=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(t){const e=this._bufferService.cols-t.start;f-=e,v+=e}}}if(s&&f+v===this._bufferService.cols&&32!==n.getCodePoint(this._bufferService.cols-1)){const t=r.lines.get(e[1]+1);if(t?.isWrapped&&32!==t.getCodePoint(0)){const t=this._getWordAt([0,e[1]+1],!1,!1,!0);t&&(v+=t.length)}}return{start:f,length:v}}}_selectWordAt(e,t){const i=this._getWordAt(e,t);if(i){for(;i.start<0;)i.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[i.start,e[1]],this._model.selectionStartLength=i.length}}_selectToWordAt(e){const t=this._getWordAt(e,!0);if(t){let i=e[1];for(;t.start<0;)t.start+=this._bufferService.cols,i--;if(!this._model.areSelectionValuesReversed())for(;t.start+t.length>this._bufferService.cols;)t.length-=this._bufferService.cols,i++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?t.start:t.start+t.length,i]}}_isCharWordSeparator(e){return 0!==e.getWidth()&&this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){const t=this._bufferService.buffer.getWrappedRangeForLine(e),i={start:{x:0,y:t.first},end:{x:this._bufferService.cols-1,y:t.last}};this._model.selectionStart=[0,t.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,_.getRangeLength)(i,this._bufferService.cols)}};t.SelectionService=g=s([r(3,f.IBufferService),r(4,f.ICoreService),r(5,h.IMouseService),r(6,f.IOptionsService),r(7,h.IRenderService),r(8,h.ICoreBrowserService)],g)},4725:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ILinkProviderService=t.IThemeService=t.ICharacterJoinerService=t.ISelectionService=t.IRenderService=t.IMouseService=t.ICoreBrowserService=t.ICharSizeService=void 0;const s=i(8343);t.ICharSizeService=(0,s.createDecorator)(\"CharSizeService\"),t.ICoreBrowserService=(0,s.createDecorator)(\"CoreBrowserService\"),t.IMouseService=(0,s.createDecorator)(\"MouseService\"),t.IRenderService=(0,s.createDecorator)(\"RenderService\"),t.ISelectionService=(0,s.createDecorator)(\"SelectionService\"),t.ICharacterJoinerService=(0,s.createDecorator)(\"CharacterJoinerService\"),t.IThemeService=(0,s.createDecorator)(\"ThemeService\"),t.ILinkProviderService=(0,s.createDecorator)(\"LinkProviderService\")},6731:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.ThemeService=t.DEFAULT_ANSI_COLORS=void 0;const n=i(7239),o=i(8055),a=i(8460),h=i(844),c=i(2585),l=o.css.toColor(\"#ffffff\"),d=o.css.toColor(\"#000000\"),_=o.css.toColor(\"#ffffff\"),u=o.css.toColor(\"#000000\"),f={css:\"rgba(255, 255, 255, 0.3)\",rgba:4294967117};t.DEFAULT_ANSI_COLORS=Object.freeze((()=>{const e=[o.css.toColor(\"#2e3436\"),o.css.toColor(\"#cc0000\"),o.css.toColor(\"#4e9a06\"),o.css.toColor(\"#c4a000\"),o.css.toColor(\"#3465a4\"),o.css.toColor(\"#75507b\"),o.css.toColor(\"#06989a\"),o.css.toColor(\"#d3d7cf\"),o.css.toColor(\"#555753\"),o.css.toColor(\"#ef2929\"),o.css.toColor(\"#8ae234\"),o.css.toColor(\"#fce94f\"),o.css.toColor(\"#729fcf\"),o.css.toColor(\"#ad7fa8\"),o.css.toColor(\"#34e2e2\"),o.css.toColor(\"#eeeeec\")],t=[0,95,135,175,215,255];for(let i=0;i<216;i++){const s=t[i/36%6|0],r=t[i/6%6|0],n=t[i%6];e.push({css:o.channels.toCss(s,r,n),rgba:o.channels.toRgba(s,r,n)})}for(let t=0;t<24;t++){const i=8+10*t;e.push({css:o.channels.toCss(i,i,i),rgba:o.channels.toRgba(i,i,i)})}return e})());let v=t.ThemeService=class extends h.Disposable{get colors(){return this._colors}constructor(e){super(),this._optionsService=e,this._contrastCache=new n.ColorContrastCache,this._halfContrastCache=new n.ColorContrastCache,this._onChangeColors=this.register(new a.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:l,background:d,cursor:_,cursorAccent:u,selectionForeground:void 0,selectionBackgroundTransparent:f,selectionBackgroundOpaque:o.color.blend(d,f),selectionInactiveBackgroundTransparent:f,selectionInactiveBackgroundOpaque:o.color.blend(d,f),ansi:t.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this.register(this._optionsService.onSpecificOptionChange(\"minimumContrastRatio\",(()=>this._contrastCache.clear()))),this.register(this._optionsService.onSpecificOptionChange(\"theme\",(()=>this._setTheme(this._optionsService.rawOptions.theme))))}_setTheme(e={}){const i=this._colors;if(i.foreground=p(e.foreground,l),i.background=p(e.background,d),i.cursor=p(e.cursor,_),i.cursorAccent=p(e.cursorAccent,u),i.selectionBackgroundTransparent=p(e.selectionBackground,f),i.selectionBackgroundOpaque=o.color.blend(i.background,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundTransparent=p(e.selectionInactiveBackground,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundOpaque=o.color.blend(i.background,i.selectionInactiveBackgroundTransparent),i.selectionForeground=e.selectionForeground?p(e.selectionForeground,o.NULL_COLOR):void 0,i.selectionForeground===o.NULL_COLOR&&(i.selectionForeground=void 0),o.color.isOpaque(i.selectionBackgroundTransparent)){const e=.3;i.selectionBackgroundTransparent=o.color.opacity(i.selectionBackgroundTransparent,e)}if(o.color.isOpaque(i.selectionInactiveBackgroundTransparent)){const e=.3;i.selectionInactiveBackgroundTransparent=o.color.opacity(i.selectionInactiveBackgroundTransparent,e)}if(i.ansi=t.DEFAULT_ANSI_COLORS.slice(),i.ansi[0]=p(e.black,t.DEFAULT_ANSI_COLORS[0]),i.ansi[1]=p(e.red,t.DEFAULT_ANSI_COLORS[1]),i.ansi[2]=p(e.green,t.DEFAULT_ANSI_COLORS[2]),i.ansi[3]=p(e.yellow,t.DEFAULT_ANSI_COLORS[3]),i.ansi[4]=p(e.blue,t.DEFAULT_ANSI_COLORS[4]),i.ansi[5]=p(e.magenta,t.DEFAULT_ANSI_COLORS[5]),i.ansi[6]=p(e.cyan,t.DEFAULT_ANSI_COLORS[6]),i.ansi[7]=p(e.white,t.DEFAULT_ANSI_COLORS[7]),i.ansi[8]=p(e.brightBlack,t.DEFAULT_ANSI_COLORS[8]),i.ansi[9]=p(e.brightRed,t.DEFAULT_ANSI_COLORS[9]),i.ansi[10]=p(e.brightGreen,t.DEFAULT_ANSI_COLORS[10]),i.ansi[11]=p(e.brightYellow,t.DEFAULT_ANSI_COLORS[11]),i.ansi[12]=p(e.brightBlue,t.DEFAULT_ANSI_COLORS[12]),i.ansi[13]=p(e.brightMagenta,t.DEFAULT_ANSI_COLORS[13]),i.ansi[14]=p(e.brightCyan,t.DEFAULT_ANSI_COLORS[14]),i.ansi[15]=p(e.brightWhite,t.DEFAULT_ANSI_COLORS[15]),e.extendedAnsi){const s=Math.min(i.ansi.length-16,e.extendedAnsi.length);for(let r=0;r<s;r++)i.ansi[r+16]=p(e.extendedAnsi[r],t.DEFAULT_ANSI_COLORS[r+16])}this._contrastCache.clear(),this._halfContrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(e){this._restoreColor(e),this._onChangeColors.fire(this.colors)}_restoreColor(e){if(void 0!==e)switch(e){case 256:this._colors.foreground=this._restoreColors.foreground;break;case 257:this._colors.background=this._restoreColors.background;break;case 258:this._colors.cursor=this._restoreColors.cursor;break;default:this._colors.ansi[e]=this._restoreColors.ansi[e]}else for(let e=0;e<this._restoreColors.ansi.length;++e)this._colors.ansi[e]=this._restoreColors.ansi[e]}modifyColors(e){e(this._colors),this._onChangeColors.fire(this.colors)}_updateRestoreColors(){this._restoreColors={foreground:this._colors.foreground,background:this._colors.background,cursor:this._colors.cursor,ansi:this._colors.ansi.slice()}}};function p(e,t){if(void 0!==e)try{return o.css.toColor(e)}catch{}return t}t.ThemeService=v=s([r(0,c.IOptionsService)],v)},6349:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CircularList=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._maxLength=e,this.onDeleteEmitter=this.register(new s.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new s.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new s.EventEmitter),this.onTrim=this.onTrimEmitter.event,this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;const t=new Array(e);for(let i=0;i<Math.min(e,this.length);i++)t[i]=this._array[this._getCyclicIndex(i)];this._array=t,this._maxLength=e,this._startIndex=0}get length(){return this._length}set length(e){if(e>this._length)for(let t=this._length;t<e;t++)this._array[t]=void 0;this._length=e}get(e){return this._array[this._getCyclicIndex(e)]}set(e,t){this._array[this._getCyclicIndex(e)]=t}push(e){this._array[this._getCyclicIndex(this._length)]=e,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw new Error(\"Can only recycle when the buffer is full\");return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(e,t,...i){if(t){for(let i=e;i<this._length-t;i++)this._array[this._getCyclicIndex(i)]=this._array[this._getCyclicIndex(i+t)];this._length-=t,this.onDeleteEmitter.fire({index:e,amount:t})}for(let t=this._length-1;t>=e;t--)this._array[this._getCyclicIndex(t+i.length)]=this._array[this._getCyclicIndex(t)];for(let t=0;t<i.length;t++)this._array[this._getCyclicIndex(e+t)]=i[t];if(i.length&&this.onInsertEmitter.fire({index:e,amount:i.length}),this._length+i.length>this._maxLength){const e=this._length+i.length-this._maxLength;this._startIndex+=e,this._length=this._maxLength,this.onTrimEmitter.fire(e)}else this._length+=i.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,t,i){if(!(t<=0)){if(e<0||e>=this._length)throw new Error(\"start argument out of range\");if(e+i<0)throw new Error(\"Cannot shift elements in list beyond index 0\");if(i>0){for(let s=t-1;s>=0;s--)this.set(e+s+i,this.get(e+s));const s=e+t+i-this._length;if(s>0)for(this._length+=s;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let s=0;s<t;s++)this.set(e+s+i,this.get(e+s))}}_getCyclicIndex(e){return(this._startIndex+e)%this._maxLength}}t.CircularList=n},1439:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.clone=void 0,t.clone=function e(t,i=5){if(\"object\"!=typeof t)return t;const s=Array.isArray(t)?[]:{};for(const r in t)s[r]=i<=1?t[r]:t[r]&&e(t[r],i-1);return s}},8055:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.contrastRatio=t.toPaddedHex=t.rgba=t.rgb=t.css=t.color=t.channels=t.NULL_COLOR=void 0;let i=0,s=0,r=0,n=0;var o,a,h,c,l;function d(e){const t=e.toString(16);return t.length<2?\"0\"+t:t}function _(e,t){return e<t?(t+.05)/(e+.05):(e+.05)/(t+.05)}t.NULL_COLOR={css:\"#00000000\",rgba:0},function(e){e.toCss=function(e,t,i,s){return void 0!==s?`#${d(e)}${d(t)}${d(i)}${d(s)}`:`#${d(e)}${d(t)}${d(i)}`},e.toRgba=function(e,t,i,s=255){return(e<<24|t<<16|i<<8|s)>>>0},e.toColor=function(t,i,s,r){return{css:e.toCss(t,i,s,r),rgba:e.toRgba(t,i,s,r)}}}(o||(t.channels=o={})),function(e){function t(e,t){return n=Math.round(255*t),[i,s,r]=l.toChannels(e.rgba),{css:o.toCss(i,s,r,n),rgba:o.toRgba(i,s,r,n)}}e.blend=function(e,t){if(n=(255&t.rgba)/255,1===n)return{css:t.css,rgba:t.rgba};const a=t.rgba>>24&255,h=t.rgba>>16&255,c=t.rgba>>8&255,l=e.rgba>>24&255,d=e.rgba>>16&255,_=e.rgba>>8&255;return i=l+Math.round((a-l)*n),s=d+Math.round((h-d)*n),r=_+Math.round((c-_)*n),{css:o.toCss(i,s,r),rgba:o.toRgba(i,s,r)}},e.isOpaque=function(e){return 255==(255&e.rgba)},e.ensureContrastRatio=function(e,t,i){const s=l.ensureContrastRatio(e.rgba,t.rgba,i);if(s)return o.toColor(s>>24&255,s>>16&255,s>>8&255)},e.opaque=function(e){const t=(255|e.rgba)>>>0;return[i,s,r]=l.toChannels(t),{css:o.toCss(i,s,r),rgba:t}},e.opacity=t,e.multiplyOpacity=function(e,i){return n=255&e.rgba,t(e,n*i/255)},e.toColorRGB=function(e){return[e.rgba>>24&255,e.rgba>>16&255,e.rgba>>8&255]}}(a||(t.color=a={})),function(e){let t,a;try{const e=document.createElement(\"canvas\");e.width=1,e.height=1;const i=e.getContext(\"2d\",{willReadFrequently:!0});i&&(t=i,t.globalCompositeOperation=\"copy\",a=t.createLinearGradient(0,0,1,1))}catch{}e.toColor=function(e){if(e.match(/#[\\da-f]{3,8}/i))switch(e.length){case 4:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),o.toColor(i,s,r);case 5:return i=parseInt(e.slice(1,2).repeat(2),16),s=parseInt(e.slice(2,3).repeat(2),16),r=parseInt(e.slice(3,4).repeat(2),16),n=parseInt(e.slice(4,5).repeat(2),16),o.toColor(i,s,r,n);case 7:return{css:e,rgba:(parseInt(e.slice(1),16)<<8|255)>>>0};case 9:return{css:e,rgba:parseInt(e.slice(1),16)>>>0}}const h=e.match(/rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(,\\s*(0|1|\\d?\\.(\\d+))\\s*)?\\)/);if(h)return i=parseInt(h[1]),s=parseInt(h[2]),r=parseInt(h[3]),n=Math.round(255*(void 0===h[5]?1:parseFloat(h[5]))),o.toColor(i,s,r,n);if(!t||!a)throw new Error(\"css.toColor: Unsupported css format\");if(t.fillStyle=a,t.fillStyle=e,\"string\"!=typeof t.fillStyle)throw new Error(\"css.toColor: Unsupported css format\");if(t.fillRect(0,0,1,1),[i,s,r,n]=t.getImageData(0,0,1,1).data,255!==n)throw new Error(\"css.toColor: Unsupported css format\");return{rgba:o.toRgba(i,s,r,n),css:e}}}(h||(t.css=h={})),function(e){function t(e,t,i){const s=e/255,r=t/255,n=i/255;return.2126*(s<=.03928?s/12.92:Math.pow((s+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))}e.relativeLuminance=function(e){return t(e>>16&255,e>>8&255,255&e)},e.relativeLuminance2=t}(c||(t.rgb=c={})),function(e){function t(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l<i&&(o>0||a>0||h>0);)o-=Math.max(0,Math.ceil(.1*o)),a-=Math.max(0,Math.ceil(.1*a)),h-=Math.max(0,Math.ceil(.1*h)),l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}function a(e,t,i){const s=e>>24&255,r=e>>16&255,n=e>>8&255;let o=t>>24&255,a=t>>16&255,h=t>>8&255,l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));for(;l<i&&(o<255||a<255||h<255);)o=Math.min(255,o+Math.ceil(.1*(255-o))),a=Math.min(255,a+Math.ceil(.1*(255-a))),h=Math.min(255,h+Math.ceil(.1*(255-h))),l=_(c.relativeLuminance2(o,a,h),c.relativeLuminance2(s,r,n));return(o<<24|a<<16|h<<8|255)>>>0}e.blend=function(e,t){if(n=(255&t)/255,1===n)return t;const a=t>>24&255,h=t>>16&255,c=t>>8&255,l=e>>24&255,d=e>>16&255,_=e>>8&255;return i=l+Math.round((a-l)*n),s=d+Math.round((h-d)*n),r=_+Math.round((c-_)*n),o.toRgba(i,s,r)},e.ensureContrastRatio=function(e,i,s){const r=c.relativeLuminance(e>>8),n=c.relativeLuminance(i>>8);if(_(r,n)<s){if(n<r){const n=t(e,i,s),o=_(r,c.relativeLuminance(n>>8));if(o<s){const t=a(e,i,s);return o>_(r,c.relativeLuminance(t>>8))?n:t}return n}const o=a(e,i,s),h=_(r,c.relativeLuminance(o>>8));if(h<s){const n=t(e,i,s);return h>_(r,c.relativeLuminance(n>>8))?o:n}return o}},e.reduceLuminance=t,e.increaseLuminance=a,e.toChannels=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]}}(l||(t.rgba=l={})),t.toPaddedHex=d,t.contrastRatio=_},8969:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreTerminal=void 0;const s=i(844),r=i(2585),n=i(4348),o=i(7866),a=i(744),h=i(7302),c=i(6975),l=i(8460),d=i(1753),_=i(1480),u=i(7994),f=i(9282),v=i(5435),p=i(5981),g=i(2660);let m=!1;class S extends s.Disposable{get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new l.EventEmitter),this._onScroll.event((e=>{this._onScrollApi?.fire(e.position)}))),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(const t in e)this.optionsService.options[t]=e[t]}constructor(e){super(),this._windowsWrappingHeuristics=this.register(new s.MutableDisposable),this._onBinary=this.register(new l.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new l.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new l.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new l.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new l.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new l.EventEmitter),this._instantiationService=new n.InstantiationService,this.optionsService=this.register(new h.OptionsService(e)),this._instantiationService.setService(r.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(a.BufferService)),this._instantiationService.setService(r.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(o.LogService)),this._instantiationService.setService(r.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(c.CoreService)),this._instantiationService.setService(r.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(d.CoreMouseService)),this._instantiationService.setService(r.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(_.UnicodeService)),this._instantiationService.setService(r.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(u.CharsetService),this._instantiationService.setService(r.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(g.OscLinkService),this._instantiationService.setService(r.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new v.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,l.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,l.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,l.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,l.forwardEvent)(this.coreService.onBinary,this._onBinary)),this.register(this.coreService.onRequestScrollToBottom((()=>this.scrollToBottom()))),this.register(this.coreService.onUserInput((()=>this._writeBuffer.handleUserInput()))),this.register(this.optionsService.onMultipleOptionChange([\"windowsMode\",\"windowsPty\"],(()=>this._handleWindowsPtyOptionChange()))),this.register(this._bufferService.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this.register(this._inputHandler.onScroll((e=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp,source:0}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)}))),this._writeBuffer=this.register(new p.WriteBuffer(((e,t)=>this._inputHandler.parse(e,t)))),this.register((0,l.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed))}write(e,t){this._writeBuffer.write(e,t)}writeSync(e,t){this._logService.logLevel<=r.LogLevelEnum.WARN&&!m&&(this._logService.warn(\"writeSync is unreliable and will be removed soon.\"),m=!0),this._writeBuffer.writeSync(e,t)}input(e,t=!0){this.coreService.triggerDataEvent(e,t)}resize(e,t){isNaN(e)||isNaN(t)||(e=Math.max(e,a.MINIMUM_COLS),t=Math.max(t,a.MINIMUM_ROWS),this._bufferService.resize(e,t))}scroll(e,t=!1){this._bufferService.scroll(e,t)}scrollLines(e,t,i){this._bufferService.scrollLines(e,t,i)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){const t=e-this._bufferService.buffer.ydisp;0!==t&&this.scrollLines(t)}registerEscHandler(e,t){return this._inputHandler.registerEscHandler(e,t)}registerDcsHandler(e,t){return this._inputHandler.registerDcsHandler(e,t)}registerCsiHandler(e,t){return this._inputHandler.registerCsiHandler(e,t)}registerOscHandler(e,t){return this._inputHandler.registerOscHandler(e,t)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let e=!1;const t=this.optionsService.rawOptions.windowsPty;t&&void 0!==t.buildNumber&&void 0!==t.buildNumber?e=!!(\"conpty\"===t.backend&&t.buildNumber<21376):this.optionsService.rawOptions.windowsMode&&(e=!0),e?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){const e=[];e.push(this.onLineFeed(f.updateWindowsModeWrappedState.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:\"H\"},(()=>((0,f.updateWindowsModeWrappedState)(this._bufferService),!1)))),this._windowsWrappingHeuristics.value=(0,s.toDisposable)((()=>{for(const t of e)t.dispose()}))}}}t.CoreTerminal=S},8460:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.runAndSubscribe=t.forwardEvent=t.EventEmitter=void 0,t.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=e=>(this._listeners.push(e),{dispose:()=>{if(!this._disposed)for(let t=0;t<this._listeners.length;t++)if(this._listeners[t]===e)return void this._listeners.splice(t,1)}})),this._event}fire(e,t){const i=[];for(let e=0;e<this._listeners.length;e++)i.push(this._listeners[e]);for(let s=0;s<i.length;s++)i[s].call(void 0,e,t)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}},t.forwardEvent=function(e,t){return e((e=>t.fire(e)))},t.runAndSubscribe=function(e,t){return t(void 0),e((e=>t(e)))}},5435:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.InputHandler=t.WindowsOptionsReportType=void 0;const n=i(2584),o=i(7116),a=i(2015),h=i(844),c=i(482),l=i(8437),d=i(8460),_=i(643),u=i(511),f=i(3734),v=i(2585),p=i(1480),g=i(6242),m=i(6351),S=i(5941),C={\"(\":0,\")\":1,\"*\":2,\"+\":3,\"-\":1,\".\":2},b=131072;function w(e,t){if(e>24)return t.setWinLines||!1;switch(e){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var y;!function(e){e[e.GET_WIN_SIZE_PIXELS=0]=\"GET_WIN_SIZE_PIXELS\",e[e.GET_CELL_SIZE_PIXELS=1]=\"GET_CELL_SIZE_PIXELS\"}(y||(t.WindowsOptionsReportType=y={}));let E=0;class k extends h.Disposable{getAttrData(){return this._curAttrData}constructor(e,t,i,s,r,h,_,f,v=new a.EscapeSequenceParser){super(),this._bufferService=e,this._charsetService=t,this._coreService=i,this._logService=s,this._optionsService=r,this._oscLinkService=h,this._coreMouseService=_,this._unicodeService=f,this._parser=v,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new c.StringToUtf32,this._utf8Decoder=new c.Utf8ToUtf32,this._workCell=new u.CellData,this._windowTitle=\"\",this._iconName=\"\",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone(),this._onRequestBell=this.register(new d.EventEmitter),this.onRequestBell=this._onRequestBell.event,this._onRequestRefreshRows=this.register(new d.EventEmitter),this.onRequestRefreshRows=this._onRequestRefreshRows.event,this._onRequestReset=this.register(new d.EventEmitter),this.onRequestReset=this._onRequestReset.event,this._onRequestSendFocus=this.register(new d.EventEmitter),this.onRequestSendFocus=this._onRequestSendFocus.event,this._onRequestSyncScrollBar=this.register(new d.EventEmitter),this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event,this._onRequestWindowsOptionsReport=this.register(new d.EventEmitter),this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event,this._onA11yChar=this.register(new d.EventEmitter),this.onA11yChar=this._onA11yChar.event,this._onA11yTab=this.register(new d.EventEmitter),this.onA11yTab=this._onA11yTab.event,this._onCursorMove=this.register(new d.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onLineFeed=this.register(new d.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onScroll=this.register(new d.EventEmitter),this.onScroll=this._onScroll.event,this._onTitleChange=this.register(new d.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onColor=this.register(new d.EventEmitter),this.onColor=this._onColor.event,this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0},this._specialColors=[256,257,258],this.register(this._parser),this._dirtyRowTracker=new L(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate((e=>this._activeBuffer=e.activeBuffer))),this._parser.setCsiHandlerFallback(((e,t)=>{this._logService.debug(\"Unknown CSI code: \",{identifier:this._parser.identToString(e),params:t.toArray()})})),this._parser.setEscHandlerFallback((e=>{this._logService.debug(\"Unknown ESC code: \",{identifier:this._parser.identToString(e)})})),this._parser.setExecuteHandlerFallback((e=>{this._logService.debug(\"Unknown EXECUTE code: \",{code:e})})),this._parser.setOscHandlerFallback(((e,t,i)=>{this._logService.debug(\"Unknown OSC code: \",{identifier:e,action:t,data:i})})),this._parser.setDcsHandlerFallback(((e,t,i)=>{\"HOOK\"===t&&(i=i.toArray()),this._logService.debug(\"Unknown DCS code: \",{identifier:this._parser.identToString(e),action:t,payload:i})})),this._parser.setPrintHandler(((e,t,i)=>this.print(e,t,i))),this._parser.registerCsiHandler({final:\"@\"},(e=>this.insertChars(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"@\"},(e=>this.scrollLeft(e))),this._parser.registerCsiHandler({final:\"A\"},(e=>this.cursorUp(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"A\"},(e=>this.scrollRight(e))),this._parser.registerCsiHandler({final:\"B\"},(e=>this.cursorDown(e))),this._parser.registerCsiHandler({final:\"C\"},(e=>this.cursorForward(e))),this._parser.registerCsiHandler({final:\"D\"},(e=>this.cursorBackward(e))),this._parser.registerCsiHandler({final:\"E\"},(e=>this.cursorNextLine(e))),this._parser.registerCsiHandler({final:\"F\"},(e=>this.cursorPrecedingLine(e))),this._parser.registerCsiHandler({final:\"G\"},(e=>this.cursorCharAbsolute(e))),this._parser.registerCsiHandler({final:\"H\"},(e=>this.cursorPosition(e))),this._parser.registerCsiHandler({final:\"I\"},(e=>this.cursorForwardTab(e))),this._parser.registerCsiHandler({final:\"J\"},(e=>this.eraseInDisplay(e,!1))),this._parser.registerCsiHandler({prefix:\"?\",final:\"J\"},(e=>this.eraseInDisplay(e,!0))),this._parser.registerCsiHandler({final:\"K\"},(e=>this.eraseInLine(e,!1))),this._parser.registerCsiHandler({prefix:\"?\",final:\"K\"},(e=>this.eraseInLine(e,!0))),this._parser.registerCsiHandler({final:\"L\"},(e=>this.insertLines(e))),this._parser.registerCsiHandler({final:\"M\"},(e=>this.deleteLines(e))),this._parser.registerCsiHandler({final:\"P\"},(e=>this.deleteChars(e))),this._parser.registerCsiHandler({final:\"S\"},(e=>this.scrollUp(e))),this._parser.registerCsiHandler({final:\"T\"},(e=>this.scrollDown(e))),this._parser.registerCsiHandler({final:\"X\"},(e=>this.eraseChars(e))),this._parser.registerCsiHandler({final:\"Z\"},(e=>this.cursorBackwardTab(e))),this._parser.registerCsiHandler({final:\"`\"},(e=>this.charPosAbsolute(e))),this._parser.registerCsiHandler({final:\"a\"},(e=>this.hPositionRelative(e))),this._parser.registerCsiHandler({final:\"b\"},(e=>this.repeatPrecedingCharacter(e))),this._parser.registerCsiHandler({final:\"c\"},(e=>this.sendDeviceAttributesPrimary(e))),this._parser.registerCsiHandler({prefix:\">\",final:\"c\"},(e=>this.sendDeviceAttributesSecondary(e))),this._parser.registerCsiHandler({final:\"d\"},(e=>this.linePosAbsolute(e))),this._parser.registerCsiHandler({final:\"e\"},(e=>this.vPositionRelative(e))),this._parser.registerCsiHandler({final:\"f\"},(e=>this.hVPosition(e))),this._parser.registerCsiHandler({final:\"g\"},(e=>this.tabClear(e))),this._parser.registerCsiHandler({final:\"h\"},(e=>this.setMode(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"h\"},(e=>this.setModePrivate(e))),this._parser.registerCsiHandler({final:\"l\"},(e=>this.resetMode(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"l\"},(e=>this.resetModePrivate(e))),this._parser.registerCsiHandler({final:\"m\"},(e=>this.charAttributes(e))),this._parser.registerCsiHandler({final:\"n\"},(e=>this.deviceStatus(e))),this._parser.registerCsiHandler({prefix:\"?\",final:\"n\"},(e=>this.deviceStatusPrivate(e))),this._parser.registerCsiHandler({intermediates:\"!\",final:\"p\"},(e=>this.softReset(e))),this._parser.registerCsiHandler({intermediates:\" \",final:\"q\"},(e=>this.setCursorStyle(e))),this._parser.registerCsiHandler({final:\"r\"},(e=>this.setScrollRegion(e))),this._parser.registerCsiHandler({final:\"s\"},(e=>this.saveCursor(e))),this._parser.registerCsiHandler({final:\"t\"},(e=>this.windowOptions(e))),this._parser.registerCsiHandler({final:\"u\"},(e=>this.restoreCursor(e))),this._parser.registerCsiHandler({intermediates:\"'\",final:\"}\"},(e=>this.insertColumns(e))),this._parser.registerCsiHandler({intermediates:\"'\",final:\"~\"},(e=>this.deleteColumns(e))),this._parser.registerCsiHandler({intermediates:'\"',final:\"q\"},(e=>this.selectProtected(e))),this._parser.registerCsiHandler({intermediates:\"$\",final:\"p\"},(e=>this.requestMode(e,!0))),this._parser.registerCsiHandler({prefix:\"?\",intermediates:\"$\",final:\"p\"},(e=>this.requestMode(e,!1))),this._parser.setExecuteHandler(n.C0.BEL,(()=>this.bell())),this._parser.setExecuteHandler(n.C0.LF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.VT,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.FF,(()=>this.lineFeed())),this._parser.setExecuteHandler(n.C0.CR,(()=>this.carriageReturn())),this._parser.setExecuteHandler(n.C0.BS,(()=>this.backspace())),this._parser.setExecuteHandler(n.C0.HT,(()=>this.tab())),this._parser.setExecuteHandler(n.C0.SO,(()=>this.shiftOut())),this._parser.setExecuteHandler(n.C0.SI,(()=>this.shiftIn())),this._parser.setExecuteHandler(n.C1.IND,(()=>this.index())),this._parser.setExecuteHandler(n.C1.NEL,(()=>this.nextLine())),this._parser.setExecuteHandler(n.C1.HTS,(()=>this.tabSet())),this._parser.registerOscHandler(0,new g.OscHandler((e=>(this.setTitle(e),this.setIconName(e),!0)))),this._parser.registerOscHandler(1,new g.OscHandler((e=>this.setIconName(e)))),this._parser.registerOscHandler(2,new g.OscHandler((e=>this.setTitle(e)))),this._parser.registerOscHandler(4,new g.OscHandler((e=>this.setOrReportIndexedColor(e)))),this._parser.registerOscHandler(8,new g.OscHandler((e=>this.setHyperlink(e)))),this._parser.registerOscHandler(10,new g.OscHandler((e=>this.setOrReportFgColor(e)))),this._parser.registerOscHandler(11,new g.OscHandler((e=>this.setOrReportBgColor(e)))),this._parser.registerOscHandler(12,new g.OscHandler((e=>this.setOrReportCursorColor(e)))),this._parser.registerOscHandler(104,new g.OscHandler((e=>this.restoreIndexedColor(e)))),this._parser.registerOscHandler(110,new g.OscHandler((e=>this.restoreFgColor(e)))),this._parser.registerOscHandler(111,new g.OscHandler((e=>this.restoreBgColor(e)))),this._parser.registerOscHandler(112,new g.OscHandler((e=>this.restoreCursorColor(e)))),this._parser.registerEscHandler({final:\"7\"},(()=>this.saveCursor())),this._parser.registerEscHandler({final:\"8\"},(()=>this.restoreCursor())),this._parser.registerEscHandler({final:\"D\"},(()=>this.index())),this._parser.registerEscHandler({final:\"E\"},(()=>this.nextLine())),this._parser.registerEscHandler({final:\"H\"},(()=>this.tabSet())),this._parser.registerEscHandler({final:\"M\"},(()=>this.reverseIndex())),this._parser.registerEscHandler({final:\"=\"},(()=>this.keypadApplicationMode())),this._parser.registerEscHandler({final:\">\"},(()=>this.keypadNumericMode())),this._parser.registerEscHandler({final:\"c\"},(()=>this.fullReset())),this._parser.registerEscHandler({final:\"n\"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:\"o\"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:\"|\"},(()=>this.setgLevel(3))),this._parser.registerEscHandler({final:\"}\"},(()=>this.setgLevel(2))),this._parser.registerEscHandler({final:\"~\"},(()=>this.setgLevel(1))),this._parser.registerEscHandler({intermediates:\"%\",final:\"@\"},(()=>this.selectDefaultCharset())),this._parser.registerEscHandler({intermediates:\"%\",final:\"G\"},(()=>this.selectDefaultCharset()));for(const e in o.CHARSETS)this._parser.registerEscHandler({intermediates:\"(\",final:e},(()=>this.selectCharset(\"(\"+e))),this._parser.registerEscHandler({intermediates:\")\",final:e},(()=>this.selectCharset(\")\"+e))),this._parser.registerEscHandler({intermediates:\"*\",final:e},(()=>this.selectCharset(\"*\"+e))),this._parser.registerEscHandler({intermediates:\"+\",final:e},(()=>this.selectCharset(\"+\"+e))),this._parser.registerEscHandler({intermediates:\"-\",final:e},(()=>this.selectCharset(\"-\"+e))),this._parser.registerEscHandler({intermediates:\".\",final:e},(()=>this.selectCharset(\".\"+e))),this._parser.registerEscHandler({intermediates:\"/\",final:e},(()=>this.selectCharset(\"/\"+e)));this._parser.registerEscHandler({intermediates:\"#\",final:\"8\"},(()=>this.screenAlignmentPattern())),this._parser.setErrorHandler((e=>(this._logService.error(\"Parsing error: \",e),e))),this._parser.registerDcsHandler({intermediates:\"$\",final:\"q\"},new m.DcsHandler(((e,t)=>this.requestStatusString(e,t))))}_preserveStack(e,t,i,s){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=t,this._parseStack.decodedLength=i,this._parseStack.position=s}_logSlowResolvingAsync(e){this._logService.logLevel<=v.LogLevelEnum.WARN&&Promise.race([e,new Promise(((e,t)=>setTimeout((()=>t(\"#SLOW_TIMEOUT\")),5e3)))]).catch((e=>{if(\"#SLOW_TIMEOUT\"!==e)throw e;console.warn(\"async parser handler taking longer than 5000 ms\")}))}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,t){let i,s=this._activeBuffer.x,r=this._activeBuffer.y,n=0;const o=this._parseStack.paused;if(o){if(i=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,t))return this._logSlowResolvingAsync(i),i;s=this._parseStack.cursorStartX,r=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>b&&(n=this._parseStack.position+b)}if(this._logService.logLevel<=v.LogLevelEnum.DEBUG&&this._logService.debug(\"parsing data\"+(\"string\"==typeof e?` \"${e}\"`:` \"${Array.prototype.map.call(e,(e=>String.fromCharCode(e))).join(\"\")}\"`),\"string\"==typeof e?e.split(\"\").map((e=>e.charCodeAt(0))):e),this._parseBuffer.length<e.length&&this._parseBuffer.length<b&&(this._parseBuffer=new Uint32Array(Math.min(e.length,b))),o||this._dirtyRowTracker.clearRange(),e.length>b)for(let t=n;t<e.length;t+=b){const n=t+b<e.length?t+b:e.length,o=\"string\"==typeof e?this._stringDecoder.decode(e.substring(t,n),this._parseBuffer):this._utf8Decoder.decode(e.subarray(t,n),this._parseBuffer);if(i=this._parser.parse(this._parseBuffer,o))return this._preserveStack(s,r,o,t),this._logSlowResolvingAsync(i),i}else if(!o){const t=\"string\"==typeof e?this._stringDecoder.decode(e,this._parseBuffer):this._utf8Decoder.decode(e,this._parseBuffer);if(i=this._parser.parse(this._parseBuffer,t))return this._preserveStack(s,r,t,0),this._logSlowResolvingAsync(i),i}this._activeBuffer.x===s&&this._activeBuffer.y===r||this._onCursorMove.fire();const a=this._dirtyRowTracker.end+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp),h=this._dirtyRowTracker.start+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp);h<this._bufferService.rows&&this._onRequestRefreshRows.fire(Math.min(h,this._bufferService.rows-1),Math.min(a,this._bufferService.rows-1))}print(e,t,i){let s,r;const n=this._charsetService.charset,o=this._optionsService.rawOptions.screenReaderMode,a=this._bufferService.cols,h=this._coreService.decPrivateModes.wraparound,d=this._coreService.modes.insertMode,u=this._curAttrData;let f=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&i-t>0&&2===f.getWidth(this._activeBuffer.x-1)&&f.setCellFromCodepoint(this._activeBuffer.x-1,0,1,u);let v=this._parser.precedingJoinState;for(let g=t;g<i;++g){if(s=e[g],s<127&&n){const e=n[String.fromCharCode(s)];e&&(s=e.charCodeAt(0))}const t=this._unicodeService.charProperties(s,v);r=p.UnicodeService.extractWidth(t);const i=p.UnicodeService.extractShouldJoin(t),m=i?p.UnicodeService.extractWidth(v):0;if(v=t,o&&this._onA11yChar.fire((0,c.stringFromCodePoint)(s)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),this._activeBuffer.x+r-m>a)if(h){const e=f;let t=this._activeBuffer.x-m;for(this._activeBuffer.x=m,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),f=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),m>0&&f instanceof l.BufferLine&&f.copyCellsFrom(e,t,0,m,!1);t<a;)e.setCellFromCodepoint(t++,0,1,u)}else if(this._activeBuffer.x=a-1,2===r)continue;if(i&&this._activeBuffer.x){const e=f.getWidth(this._activeBuffer.x-1)?1:2;f.addCodepointToCell(this._activeBuffer.x-e,s,r);for(let e=r-m;--e>=0;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}else if(d&&(f.insertCells(this._activeBuffer.x,r-m,this._activeBuffer.getNullCell(u)),2===f.getWidth(a-1)&&f.setCellFromCodepoint(a-1,_.NULL_CELL_CODE,_.NULL_CELL_WIDTH,u)),f.setCellFromCodepoint(this._activeBuffer.x++,s,r,u),r>0)for(;--r;)f.setCellFromCodepoint(this._activeBuffer.x++,0,0,u)}this._parser.precedingJoinState=v,this._activeBuffer.x<a&&i-t>0&&0===f.getWidth(this._activeBuffer.x)&&!f.hasContent(this._activeBuffer.x)&&f.setCellFromCodepoint(this._activeBuffer.x,0,1,u),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,t){return\"t\"!==e.final||e.prefix||e.intermediates?this._parser.registerCsiHandler(e,t):this._parser.registerCsiHandler(e,(e=>!w(e.params[0],this._optionsService.rawOptions.windowOptions)||t(e)))}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new m.DcsHandler(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new g.OscHandler(t))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(0===this._activeBuffer.x&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;const e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;const e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,t){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+t):(this._activeBuffer.x=e,this._activeBuffer.y=t),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,t){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+t)}cursorUp(e){const t=this._activeBuffer.y-this._activeBuffer.scrollTop;return t>=0?this._moveCursor(0,-Math.min(t,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){const t=this._activeBuffer.scrollBottom-this._activeBuffer.y;return t>=0?this._moveCursor(0,Math.min(t,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){const t=e.params[0];return 0===t?delete this._activeBuffer.tabs[this._activeBuffer.x]:3===t&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let t=e.params[0]||1;for(;t--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){const t=e.params[0];return 1===t&&(this._curAttrData.bg|=536870912),2!==t&&0!==t||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,t,i,s=!1,r=!1){const n=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);n.replaceCells(t,i,this._activeBuffer.getNullCell(this._eraseAttrData()),r),s&&(n.isWrapped=!1)}_resetBufferLine(e,t=!1){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i&&(i.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),t),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),i.isWrapped=!1)}eraseInDisplay(e,t=!1){let i;switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:for(i=this._activeBuffer.y,this._dirtyRowTracker.markDirty(i),this._eraseInBufferLine(i++,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);i<this._bufferService.rows;i++)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(i);break;case 1:for(i=this._activeBuffer.y,this._dirtyRowTracker.markDirty(i),this._eraseInBufferLine(i,0,this._activeBuffer.x+1,!0,t),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(i+1).isWrapped=!1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 2:for(i=this._bufferService.rows,this._dirtyRowTracker.markDirty(i-1);i--;)this._resetBufferLine(i,t);this._dirtyRowTracker.markDirty(0);break;case 3:const e=this._activeBuffer.lines.length-this._bufferService.rows;e>0&&(this._activeBuffer.lines.trimStart(e),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-e,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-e,0),this._onScroll.fire(0))}return!0}eraseInLine(e,t=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,0===this._activeBuffer.x,t);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,t);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,t)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const i=this._activeBuffer.ybase+this._activeBuffer.y,s=this._bufferService.rows-1-this._activeBuffer.scrollBottom,r=this._bufferService.rows-1+this._activeBuffer.ybase-s+1;for(;t--;)this._activeBuffer.lines.splice(r-1,1),this._activeBuffer.lines.splice(i,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}deleteLines(e){this._restrictCursor();let t=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const i=this._activeBuffer.ybase+this._activeBuffer.y;let s;for(s=this._bufferService.rows-1-this._activeBuffer.scrollBottom,s=this._bufferService.rows-1+this._activeBuffer.ybase-s;t--;)this._activeBuffer.lines.splice(i,1),this._activeBuffer.lines.splice(s,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}insertChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.insertCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}deleteChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.deleteCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollDown(e){let t=e.params[0]||1;for(;t--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,0,this._activeBuffer.getBlankLine(l.DEFAULT_ATTR_DATA));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollLeft(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.deleteCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollRight(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.insertCells(0,t,this._activeBuffer.getNullCell(this._eraseAttrData())),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}insertColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.insertCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}deleteColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const t=e.params[0]||1;for(let e=this._activeBuffer.scrollTop;e<=this._activeBuffer.scrollBottom;++e){const i=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);i.deleteCells(this._activeBuffer.x,t,this._activeBuffer.getNullCell(this._eraseAttrData())),i.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(e){this._restrictCursor();const t=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return t&&(t.replaceCells(this._activeBuffer.x,this._activeBuffer.x+(e.params[0]||1),this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}repeatPrecedingCharacter(e){const t=this._parser.precedingJoinState;if(!t)return!0;const i=e.params[0]||1,s=p.UnicodeService.extractWidth(t),r=this._activeBuffer.x-s,n=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).getString(r),o=new Uint32Array(n.length*i);let a=0;for(let e=0;e<n.length;){const t=n.codePointAt(e)||0;o[a++]=t,e+=t>65535?2:1}let h=a;for(let e=1;e<i;++e)o.copyWithin(h,0,a),h+=a;return this.print(o,0,h),!0}sendDeviceAttributesPrimary(e){return e.params[0]>0||(this._is(\"xterm\")||this._is(\"rxvt-unicode\")||this._is(\"screen\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[?1;2c\"):this._is(\"linux\")&&this._coreService.triggerDataEvent(n.C0.ESC+\"[?6c\")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is(\"xterm\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[>0;276;0c\"):this._is(\"rxvt-unicode\")?this._coreService.triggerDataEvent(n.C0.ESC+\"[>85;95;0c\"):this._is(\"linux\")?this._coreService.triggerDataEvent(e.params[0]+\"c\"):this._is(\"screen\")&&this._coreService.triggerDataEvent(n.C0.ESC+\"[>83;40003;0c\")),!0}_is(e){return 0===(this._optionsService.rawOptions.termName+\"\").indexOf(e)}setMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0}return!0}setModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,o.DEFAULT_CHARSET),this._charsetService.setgCharset(1,o.DEFAULT_CHARSET),this._charsetService.setgCharset(2,o.DEFAULT_CHARSET),this._charsetService.setgCharset(3,o.DEFAULT_CHARSET);break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(132,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!0,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!0;break;case 12:this._optionsService.options.cursorBlink=!0;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!0;break;case 66:this._logService.debug(\"Serial port requested application keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire();break;case 9:this._coreMouseService.activeProtocol=\"X10\";break;case 1e3:this._coreMouseService.activeProtocol=\"VT200\";break;case 1002:this._coreMouseService.activeProtocol=\"DRAG\";break;case 1003:this._coreMouseService.activeProtocol=\"ANY\";break;case 1004:this._coreService.decPrivateModes.sendFocus=!0,this._onRequestSendFocus.fire();break;case 1005:this._logService.debug(\"DECSET 1005 not supported (see #2507)\");break;case 1006:this._coreMouseService.activeEncoding=\"SGR\";break;case 1015:this._logService.debug(\"DECSET 1015 not supported (see #2507)\");break;case 1016:this._coreMouseService.activeEncoding=\"SGR_PIXELS\";break;case 25:this._coreService.isCursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._eraseAttrData()),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!0}return!0}resetMode(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1}return!0}resetModePrivate(e){for(let t=0;t<e.length;t++)switch(e.params[t]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(80,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!1,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!1;break;case 12:this._optionsService.options.cursorBlink=!1;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!1;break;case 66:this._logService.debug(\"Switching back to normal keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol=\"NONE\";break;case 1004:this._coreService.decPrivateModes.sendFocus=!1;break;case 1005:this._logService.debug(\"DECRST 1005 not supported (see #2507)\");break;case 1006:case 1016:this._coreMouseService.activeEncoding=\"DEFAULT\";break;case 1015:this._logService.debug(\"DECRST 1015 not supported (see #2507)\");break;case 25:this._coreService.isCursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),1049===e.params[t]&&this.restoreCursor(),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(0,this._bufferService.rows-1),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!1}return!0}requestMode(e,t){const i=this._coreService.decPrivateModes,{activeProtocol:s,activeEncoding:r}=this._coreMouseService,o=this._coreService,{buffers:a,cols:h}=this._bufferService,{active:c,alt:l}=a,d=this._optionsService.rawOptions,_=e=>e?1:2,u=e.params[0];return f=u,v=t?2===u?4:4===u?_(o.modes.insertMode):12===u?3:20===u?_(d.convertEol):0:1===u?_(i.applicationCursorKeys):3===u?d.windowOptions.setWinLines?80===h?2:132===h?1:0:0:6===u?_(i.origin):7===u?_(i.wraparound):8===u?3:9===u?_(\"X10\"===s):12===u?_(d.cursorBlink):25===u?_(!o.isCursorHidden):45===u?_(i.reverseWraparound):66===u?_(i.applicationKeypad):67===u?4:1e3===u?_(\"VT200\"===s):1002===u?_(\"DRAG\"===s):1003===u?_(\"ANY\"===s):1004===u?_(i.sendFocus):1005===u?4:1006===u?_(\"SGR\"===r):1015===u?4:1016===u?_(\"SGR_PIXELS\"===r):1048===u?1:47===u||1047===u||1049===u?_(c===l):2004===u?_(i.bracketedPasteMode):0,o.triggerDataEvent(`${n.C0.ESC}[${t?\"\":\"?\"}${f};${v}$y`),!0;var f,v}_updateAttrColor(e,t,i,s,r){return 2===t?(e|=50331648,e&=-16777216,e|=f.AttributeData.fromColorRGB([i,s,r])):5===t&&(e&=-50331904,e|=33554432|255&i),e}_extractColor(e,t,i){const s=[0,0,-1,0,0,0];let r=0,n=0;do{if(s[n+r]=e.params[t+n],e.hasSubParams(t+n)){const i=e.getSubParams(t+n);let o=0;do{5===s[1]&&(r=1),s[n+o+1+r]=i[o]}while(++o<i.length&&o+n+1+r<s.length);break}if(5===s[1]&&n+r>=2||2===s[1]&&n+r>=5)break;s[1]&&(r=1)}while(++n+t<e.length&&n+r<s.length);for(let e=2;e<s.length;++e)-1===s[e]&&(s[e]=0);switch(s[0]){case 38:i.fg=this._updateAttrColor(i.fg,s[1],s[3],s[4],s[5]);break;case 48:i.bg=this._updateAttrColor(i.bg,s[1],s[3],s[4],s[5]);break;case 58:i.extended=i.extended.clone(),i.extended.underlineColor=this._updateAttrColor(i.extended.underlineColor,s[1],s[3],s[4],s[5])}return n}_processUnderline(e,t){t.extended=t.extended.clone(),(!~e||e>5)&&(e=1),t.extended.underlineStyle=e,t.fg|=268435456,0===e&&(t.fg&=-268435457),t.updateExtended()}_processSGR0(e){e.fg=l.DEFAULT_ATTR_DATA.fg,e.bg=l.DEFAULT_ATTR_DATA.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(1===e.length&&0===e.params[0])return this._processSGR0(this._curAttrData),!0;const t=e.length;let i;const s=this._curAttrData;for(let r=0;r<t;r++)i=e.params[r],i>=30&&i<=37?(s.fg&=-50331904,s.fg|=16777216|i-30):i>=40&&i<=47?(s.bg&=-50331904,s.bg|=16777216|i-40):i>=90&&i<=97?(s.fg&=-50331904,s.fg|=16777224|i-90):i>=100&&i<=107?(s.bg&=-50331904,s.bg|=16777224|i-100):0===i?this._processSGR0(s):1===i?s.fg|=134217728:3===i?s.bg|=67108864:4===i?(s.fg|=268435456,this._processUnderline(e.hasSubParams(r)?e.getSubParams(r)[0]:1,s)):5===i?s.fg|=536870912:7===i?s.fg|=67108864:8===i?s.fg|=1073741824:9===i?s.fg|=2147483648:2===i?s.bg|=134217728:21===i?this._processUnderline(2,s):22===i?(s.fg&=-134217729,s.bg&=-134217729):23===i?s.bg&=-67108865:24===i?(s.fg&=-268435457,this._processUnderline(0,s)):25===i?s.fg&=-536870913:27===i?s.fg&=-67108865:28===i?s.fg&=-1073741825:29===i?s.fg&=2147483647:39===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg):49===i?(s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):38===i||48===i||58===i?r+=this._extractColor(e,r,s):53===i?s.bg|=1073741824:55===i?s.bg&=-1073741825:59===i?(s.extended=s.extended.clone(),s.extended.underlineColor=-1,s.updateExtended()):100===i?(s.fg&=-67108864,s.fg|=16777215&l.DEFAULT_ATTR_DATA.fg,s.bg&=-67108864,s.bg|=16777215&l.DEFAULT_ATTR_DATA.bg):this._logService.debug(\"Unknown SGR attribute: %d.\",i);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${n.C0.ESC}[0n`);break;case 6:const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[${e};${t}R`)}return!0}deviceStatusPrivate(e){if(6===e.params[0]){const e=this._activeBuffer.y+1,t=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${n.C0.ESC}[?${e};${t}R`)}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){const t=e.params[0]||1;switch(t){case 1:case 2:this._optionsService.options.cursorStyle=\"block\";break;case 3:case 4:this._optionsService.options.cursorStyle=\"underline\";break;case 5:case 6:this._optionsService.options.cursorStyle=\"bar\"}const i=t%2==1;return this._optionsService.options.cursorBlink=i,!0}setScrollRegion(e){const t=e.params[0]||1;let i;return(e.length<2||(i=e.params[1])>this._bufferService.rows||0===i)&&(i=this._bufferService.rows),i>t&&(this._activeBuffer.scrollTop=t-1,this._activeBuffer.scrollBottom=i-1,this._setCursor(0,0)),!0}windowOptions(e){if(!w(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;const t=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:2!==t&&this._onRequestWindowsOptionsReport.fire(y.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(y.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${n.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:0!==t&&2!==t||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),0!==t&&1!==t||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:0!==t&&2!==t||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),0!==t&&1!==t||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){const t=[],i=e.split(\";\");for(;i.length>1;){const e=i.shift(),s=i.shift();if(/^\\d+$/.exec(e)){const i=parseInt(e);if(D(i))if(\"?\"===s)t.push({type:0,index:i});else{const e=(0,S.parseColor)(s);e&&t.push({type:1,index:i,color:e})}}}return t.length&&this._onColor.fire(t),!0}setHyperlink(e){const t=e.split(\";\");return!(t.length<2)&&(t[1]?this._createHyperlink(t[0],t[1]):!t[0]&&this._finishHyperlink())}_createHyperlink(e,t){this._getCurrentLinkId()&&this._finishHyperlink();const i=e.split(\":\");let s;const r=i.findIndex((e=>e.startsWith(\"id=\")));return-1!==r&&(s=i[r].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:s,uri:t}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,t){const i=e.split(\";\");for(let e=0;e<i.length&&!(t>=this._specialColors.length);++e,++t)if(\"?\"===i[e])this._onColor.fire([{type:0,index:this._specialColors[t]}]);else{const s=(0,S.parseColor)(i[e]);s&&this._onColor.fire([{type:1,index:this._specialColors[t],color:s}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;const t=[],i=e.split(\";\");for(let e=0;e<i.length;++e)if(/^\\d+$/.exec(i[e])){const s=parseInt(i[e]);D(s)&&t.push({type:2,index:s})}return t.length&&this._onColor.fire(t),!0}restoreFgColor(e){return this._onColor.fire([{type:2,index:256}]),!0}restoreBgColor(e){return this._onColor.fire([{type:2,index:257}]),!0}restoreCursorColor(e){return this._onColor.fire([{type:2,index:258}]),!0}nextLine(){return this._activeBuffer.x=0,this.index(),!0}keypadApplicationMode(){return this._logService.debug(\"Serial port requested application keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire(),!0}keypadNumericMode(){return this._logService.debug(\"Switching back to normal keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire(),!0}selectDefaultCharset(){return this._charsetService.setgLevel(0),this._charsetService.setgCharset(0,o.DEFAULT_CHARSET),!0}selectCharset(e){return 2!==e.length?(this.selectDefaultCharset(),!0):(\"/\"===e[0]||this._charsetService.setgCharset(C[e[0]],o.CHARSETS[e[1]]||o.DEFAULT_CHARSET),!0)}index(){return this._restrictCursor(),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){const e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=l.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=l.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){const e=new u.CellData;e.content=1<<22|\"E\".charCodeAt(0),e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let t=0;t<this._bufferService.rows;++t){const i=this._activeBuffer.ybase+this._activeBuffer.y+t,s=this._activeBuffer.lines.get(i);s&&(s.fill(e),s.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(e,t){const i=this._bufferService.buffer,s=this._optionsService.rawOptions;return(e=>(this._coreService.triggerDataEvent(`${n.C0.ESC}${e}${n.C0.ESC}\\\\`),!0))('\"q'===e?`P1$r${this._curAttrData.isProtected()?1:0}\"q`:'\"p'===e?'P1$r61;1\"p':\"r\"===e?`P1$r${i.scrollTop+1};${i.scrollBottom+1}r`:\"m\"===e?\"P1$r0m\":\" q\"===e?`P1$r${{block:2,underline:4,bar:6}[s.cursorStyle]-(s.cursorBlink?1:0)} q`:\"P0$r\")}markRangeDirty(e,t){this._dirtyRowTracker.markRangeDirty(e,t)}}t.InputHandler=k;let L=class{constructor(e){this._bufferService=e,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(e){e<this.start?this.start=e:e>this.end&&(this.end=e)}markRangeDirty(e,t){e>t&&(E=e,e=t,t=E),e<this.start&&(this.start=e),t>this.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function D(e){return 0<=e&&e<256}L=s([r(0,v.IBufferService)],L)},844:(e,t)=>{function i(e){for(const t of e)t.dispose();e.length=0}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getDisposeArrayDisposable=t.disposeArray=t.toDisposable=t.MutableDisposable=t.Disposable=void 0,t.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const e of this._disposables)e.dispose();this._disposables.length=0}register(e){return this._disposables.push(e),e}unregister(e){const t=this._disposables.indexOf(e);-1!==t&&this._disposables.splice(t,1)}},t.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,this._value?.dispose(),this._value=void 0}},t.toDisposable=function(e){return{dispose:e}},t.disposeArray=i,t.getDisposeArrayDisposable=function(e){return{dispose:()=>i(e)}}},1505:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.FourKeyMap=t.TwoKeyMap=void 0;class i{constructor(){this._data={}}set(e,t,i){this._data[e]||(this._data[e]={}),this._data[e][t]=i}get(e,t){return this._data[e]?this._data[e][t]:void 0}clear(){this._data={}}}t.TwoKeyMap=i,t.FourKeyMap=class{constructor(){this._data=new i}set(e,t,s,r,n){this._data.get(e,t)||this._data.set(e,t,new i),this._data.get(e,t).set(s,r,n)}get(e,t,i,s){return this._data.get(e,t)?.get(i,s)}clear(){this._data.clear()}}},6114:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.isChromeOS=t.isLinux=t.isWindows=t.isIphone=t.isIpad=t.isMac=t.getSafariVersion=t.isSafari=t.isLegacyEdge=t.isFirefox=t.isNode=void 0,t.isNode=\"undefined\"!=typeof process&&\"title\"in process;const i=t.isNode?\"node\":navigator.userAgent,s=t.isNode?\"node\":navigator.platform;t.isFirefox=i.includes(\"Firefox\"),t.isLegacyEdge=i.includes(\"Edge\"),t.isSafari=/^((?!chrome|android).)*safari/i.test(i),t.getSafariVersion=function(){if(!t.isSafari)return 0;const e=i.match(/Version\\/(\\d+)/);return null===e||e.length<2?0:parseInt(e[1])},t.isMac=[\"Macintosh\",\"MacIntel\",\"MacPPC\",\"Mac68K\"].includes(s),t.isIpad=\"iPad\"===s,t.isIphone=\"iPhone\"===s,t.isWindows=[\"Windows\",\"Win16\",\"Win32\",\"WinCE\"].includes(s),t.isLinux=s.indexOf(\"Linux\")>=0,t.isChromeOS=/\\bCrOS\\b/.test(i)},6106:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.SortedList=void 0;let i=0;t.SortedList=class{constructor(e){this._getKey=e,this._array=[]}clear(){this._array.length=0}insert(e){0!==this._array.length?(i=this._search(this._getKey(e)),this._array.splice(i,0,e)):this._array.push(e)}delete(e){if(0===this._array.length)return!1;const t=this._getKey(e);if(void 0===t)return!1;if(i=this._search(t),-1===i)return!1;if(this._getKey(this._array[i])!==t)return!1;do{if(this._array[i]===e)return this._array.splice(i,1),!0}while(++i<this._array.length&&this._getKey(this._array[i])===t);return!1}*getKeyIterator(e){if(0!==this._array.length&&(i=this._search(e),!(i<0||i>=this._array.length)&&this._getKey(this._array[i])===e))do{yield this._array[i]}while(++i<this._array.length&&this._getKey(this._array[i])===e)}forEachByKey(e,t){if(0!==this._array.length&&(i=this._search(e),!(i<0||i>=this._array.length)&&this._getKey(this._array[i])===e))do{t(this._array[i])}while(++i<this._array.length&&this._getKey(this._array[i])===e)}values(){return[...this._array].values()}_search(e){let t=0,i=this._array.length-1;for(;i>=t;){let s=t+i>>1;const r=this._getKey(this._array[s]);if(r>e)i=s-1;else{if(!(r<e)){for(;s>0&&this._getKey(this._array[s-1])===e;)s--;return s}t=s+1}}return t}}},7226:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DebouncedIdleTask=t.IdleTaskQueue=t.PriorityTaskQueue=void 0;const s=i(6114);class r{constructor(){this._tasks=[],this._i=0}enqueue(e){this._tasks.push(e),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(e){this._idleCallback=void 0;let t=0,i=0,s=e.timeRemaining(),r=0;for(;this._i<this._tasks.length;){if(t=Date.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,Date.now()-t),i=Math.max(t,i),r=e.timeRemaining(),1.5*i>r)return s-t<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(s-t))}ms`),void this._start();s=r}this.clear()}}class n extends r{_requestCallback(e){return setTimeout((()=>e(this._createDeadline(16))))}_cancelCallback(e){clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}t.PriorityTaskQueue=n,t.IdleTaskQueue=!s.isNode&&\"requestIdleCallback\"in window?class extends r{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}}:n,t.DebouncedIdleTask=class{constructor(){this._queue=new t.IdleTaskQueue}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}}},9282:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.updateWindowsModeWrappedState=void 0;const s=i(643);t.updateWindowsModeWrappedState=function(e){const t=e.buffer.lines.get(e.buffer.ybase+e.buffer.y-1),i=t?.get(e.cols-1),r=e.buffer.lines.get(e.buffer.ybase+e.buffer.y);r&&i&&(r.isWrapped=i[s.CHAR_DATA_CODE_INDEX]!==s.NULL_CELL_CODE&&i[s.CHAR_DATA_CODE_INDEX]!==s.WHITESPACE_CELL_CODE)}},3734:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ExtendedAttrs=t.AttributeData=void 0;class i{constructor(){this.fg=0,this.bg=0,this.extended=new s}static toColorRGB(e){return[e>>>16&255,e>>>8&255,255&e]}static fromColorRGB(e){return(255&e[0])<<16|(255&e[1])<<8|255&e[2]}clone(){const e=new i;return e.fg=this.fg,e.bg=this.bg,e.extended=this.extended.clone(),e}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&0!==this.extended.underlineStyle?1:268435456&this.fg}isBlink(){return 536870912&this.fg}isInvisible(){return 1073741824&this.fg}isItalic(){return 67108864&this.bg}isDim(){return 134217728&this.bg}isStrikethrough(){return 2147483648&this.fg}isProtected(){return 536870912&this.bg}isOverline(){return 1073741824&this.bg}getFgColorMode(){return 50331648&this.fg}getBgColorMode(){return 50331648&this.bg}isFgRGB(){return 50331648==(50331648&this.fg)}isBgRGB(){return 50331648==(50331648&this.bg)}isFgPalette(){return 16777216==(50331648&this.fg)||33554432==(50331648&this.fg)}isBgPalette(){return 16777216==(50331648&this.bg)||33554432==(50331648&this.bg)}isFgDefault(){return 0==(50331648&this.fg)}isBgDefault(){return 0==(50331648&this.bg)}isAttributeDefault(){return 0===this.fg&&0===this.bg}getFgColor(){switch(50331648&this.fg){case 16777216:case 33554432:return 255&this.fg;case 50331648:return 16777215&this.fg;default:return-1}}getBgColor(){switch(50331648&this.bg){case 16777216:case 33554432:return 255&this.bg;case 50331648:return 16777215&this.bg;default:return-1}}hasExtendedAttrs(){return 268435456&this.bg}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(268435456&this.bg&&~this.extended.underlineColor)switch(50331648&this.extended.underlineColor){case 16777216:case 33554432:return 255&this.extended.underlineColor;case 50331648:return 16777215&this.extended.underlineColor;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return 268435456&this.bg&&~this.extended.underlineColor?50331648&this.extended.underlineColor:this.getFgColorMode()}isUnderlineColorRGB(){return 268435456&this.bg&&~this.extended.underlineColor?50331648==(50331648&this.extended.underlineColor):this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?16777216==(50331648&this.extended.underlineColor)||33554432==(50331648&this.extended.underlineColor):this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?0==(50331648&this.extended.underlineColor):this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}}t.AttributeData=i;class s{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(e){this._ext&=-67108864,this._ext|=67108863&e}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){const e=(3758096384&this._ext)>>29;return e<0?4294967288^e:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}clone(){return new s(this._ext,this._urlId)}isEmpty(){return 0===this.underlineStyle&&0===this._urlId}}t.ExtendedAttrs=s},9092:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Buffer=t.MAX_BUFFER_SIZE=void 0;const s=i(6349),r=i(7226),n=i(3734),o=i(8437),a=i(4634),h=i(511),c=i(643),l=i(4863),d=i(7116);t.MAX_BUFFER_SIZE=4294967295,t.Buffer=class{constructor(e,t,i){this._hasScrollback=e,this._optionsService=t,this._bufferService=i,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=o.DEFAULT_ATTR_DATA.clone(),this.savedCharset=d.DEFAULT_CHARSET,this.markers=[],this._nullCell=h.CellData.fromCharData([0,c.NULL_CELL_CHAR,c.NULL_CELL_WIDTH,c.NULL_CELL_CODE]),this._whitespaceCell=h.CellData.fromCharData([0,c.WHITESPACE_CELL_CHAR,c.WHITESPACE_CELL_WIDTH,c.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new r.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(e){return e?(this._nullCell.fg=e.fg,this._nullCell.bg=e.bg,this._nullCell.extended=e.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new n.ExtendedAttrs),this._nullCell}getWhitespaceCell(e){return e?(this._whitespaceCell.fg=e.fg,this._whitespaceCell.bg=e.bg,this._whitespaceCell.extended=e.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new n.ExtendedAttrs),this._whitespaceCell}getBlankLine(e,t){return new o.BufferLine(this._bufferService.cols,this.getNullCell(e),t)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){const e=this.ybase+this.y-this.ydisp;return e>=0&&e<this._rows}_getCorrectBufferLength(e){if(!this._hasScrollback)return e;const i=e+this._optionsService.rawOptions.scrollback;return i>t.MAX_BUFFER_SIZE?t.MAX_BUFFER_SIZE:i}fillViewportRows(e){if(0===this.lines.length){void 0===e&&(e=o.DEFAULT_ATTR_DATA);let t=this._rows;for(;t--;)this.lines.push(this.getBlankLine(e))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new s.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(e,t){const i=this.getNullCell(o.DEFAULT_ATTR_DATA);let s=0;const r=this._getCorrectBufferLength(t);if(r>this.lines.maxLength&&(this.lines.maxLength=r),this.lines.length>0){if(this._cols<e)for(let t=0;t<this.lines.length;t++)s+=+this.lines.get(t).resize(e,i);let n=0;if(this._rows<t)for(let s=this._rows;s<t;s++)this.lines.length<t+this.ybase&&(this._optionsService.rawOptions.windowsMode||void 0!==this._optionsService.rawOptions.windowsPty.backend||void 0!==this._optionsService.rawOptions.windowsPty.buildNumber?this.lines.push(new o.BufferLine(e,i)):this.ybase>0&&this.lines.length<=this.ybase+this.y+n+1?(this.ybase--,n++,this.ydisp>0&&this.ydisp--):this.lines.push(new o.BufferLine(e,i)));else for(let e=this._rows;e>t;e--)this.lines.length>t+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(r<this.lines.maxLength){const e=this.lines.length-r;e>0&&(this.lines.trimStart(e),this.ybase=Math.max(this.ybase-e,0),this.ydisp=Math.max(this.ydisp-e,0),this.savedY=Math.max(this.savedY-e,0)),this.lines.maxLength=r}this.x=Math.min(this.x,e-1),this.y=Math.min(this.y,t-1),n&&(this.y+=n),this.savedX=Math.min(this.savedX,e-1),this.scrollTop=0}if(this.scrollBottom=t-1,this._isReflowEnabled&&(this._reflow(e,t),this._cols>e))for(let t=0;t<this.lines.length;t++)s+=+this.lines.get(t).resize(e,i);this._cols=e,this._rows=t,this._memoryCleanupQueue.clear(),s>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue((()=>this._batchedMemoryCleanup())))}_batchedMemoryCleanup(){let e=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,e=!1);let t=0;for(;this._memoryCleanupPosition<this.lines.length;)if(t+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory(),t>100)return!0;return e}get _isReflowEnabled(){const e=this._optionsService.rawOptions.windowsPty;return e&&e.buildNumber?this._hasScrollback&&\"conpty\"===e.backend&&e.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(e,t){this._cols!==e&&(e>this._cols?this._reflowLarger(e,t):this._reflowSmaller(e,t))}_reflowLarger(e,t){const i=(0,a.reflowLargerGetLinesToRemove)(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(o.DEFAULT_ATTR_DATA));if(i.length>0){const s=(0,a.reflowLargerCreateNewLayout)(this.lines,i);(0,a.reflowLargerApplyNewLayout)(this.lines,s.layout),this._reflowLargerAdjustViewport(e,t,s.countRemoved)}}_reflowLargerAdjustViewport(e,t,i){const s=this.getNullCell(o.DEFAULT_ATTR_DATA);let r=i;for(;r-- >0;)0===this.ybase?(this.y>0&&this.y--,this.lines.length<t&&this.lines.push(new o.BufferLine(e,s))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-i,0)}_reflowSmaller(e,t){const i=this.getNullCell(o.DEFAULT_ATTR_DATA),s=[];let r=0;for(let n=this.lines.length-1;n>=0;n--){let h=this.lines.get(n);if(!h||!h.isWrapped&&h.getTrimmedLength()<=e)continue;const c=[h];for(;h.isWrapped&&n>0;)h=this.lines.get(--n),c.unshift(h);const l=this.ybase+this.y;if(l>=n&&l<n+c.length)continue;const d=c[c.length-1].getTrimmedLength(),_=(0,a.reflowSmallerGetNewLineLengths)(c,this._cols,e),u=_.length-c.length;let f;f=0===this.ybase&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+u):Math.max(0,this.lines.length-this.lines.maxLength+u);const v=[];for(let e=0;e<u;e++){const e=this.getBlankLine(o.DEFAULT_ATTR_DATA,!0);v.push(e)}v.length>0&&(s.push({start:n+c.length+r,newLines:v}),r+=v.length),c.push(...v);let p=_.length-1,g=_[p];0===g&&(p--,g=_[p]);let m=c.length-u-1,S=d;for(;m>=0;){const e=Math.min(S,g);if(void 0===c[p])break;if(c[p].copyCellsFrom(c[m],S-e,g-e,e,!0),g-=e,0===g&&(p--,g=_[p]),S-=e,0===S){m--;const e=Math.max(m,0);S=(0,a.getWrappedLineTrimmedLength)(c,e,this._cols)}}for(let t=0;t<c.length;t++)_[t]<e&&c[t].setCell(_[t],i);let C=u-f;for(;C-- >0;)0===this.ybase?this.y<t-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+r)-t&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+u,this.ybase+t-1)}if(s.length>0){const e=[],t=[];for(let e=0;e<this.lines.length;e++)t.push(this.lines.get(e));const i=this.lines.length;let n=i-1,o=0,a=s[o];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+r);let h=0;for(let c=Math.min(this.lines.maxLength-1,i+r-1);c>=0;c--)if(a&&a.start>n+h){for(let e=a.newLines.length-1;e>=0;e--)this.lines.set(c--,a.newLines[e]);c++,e.push({index:n+1,amount:a.newLines.length}),h+=a.newLines.length,a=s[++o]}else this.lines.set(c,t[n--]);let c=0;for(let t=e.length-1;t>=0;t--)e[t].index+=c,this.lines.onInsertEmitter.fire(e[t]),c+=e[t].amount;const l=Math.max(0,i+r-this.lines.maxLength);l>0&&this.lines.onTrimEmitter.fire(l)}}translateBufferLineToString(e,t,i=0,s){const r=this.lines.get(e);return r?r.translateToString(t,i,s):\"\"}getWrappedRangeForLine(e){let t=e,i=e;for(;t>0&&this.lines.get(t).isWrapped;)t--;for(;i+1<this.lines.length&&this.lines.get(i+1).isWrapped;)i++;return{first:t,last:i}}setupTabStops(e){for(null!=e?this.tabs[e]||(e=this.prevStop(e)):(this.tabs={},e=0);e<this._cols;e+=this._optionsService.rawOptions.tabStopWidth)this.tabs[e]=!0}prevStop(e){for(null==e&&(e=this.x);!this.tabs[--e]&&e>0;);return e>=this._cols?this._cols-1:e<0?0:e}nextStop(e){for(null==e&&(e=this.x);!this.tabs[++e]&&e<this._cols;);return e>=this._cols?this._cols-1:e<0?0:e}clearMarkers(e){this._isClearing=!0;for(let t=0;t<this.markers.length;t++)this.markers[t].line===e&&(this.markers[t].dispose(),this.markers.splice(t--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let e=0;e<this.markers.length;e++)this.markers[e].dispose(),this.markers.splice(e--,1);this._isClearing=!1}addMarker(e){const t=new l.Marker(e);return this.markers.push(t),t.register(this.lines.onTrim((e=>{t.line-=e,t.line<0&&t.dispose()}))),t.register(this.lines.onInsert((e=>{t.line>=e.index&&(t.line+=e.amount)}))),t.register(this.lines.onDelete((e=>{t.line>=e.index&&t.line<e.index+e.amount&&t.dispose(),t.line>e.index&&(t.line-=e.amount)}))),t.register(t.onDispose((()=>this._removeMarker(t)))),t}_removeMarker(e){this._isClearing||this.markers.splice(this.markers.indexOf(e),1)}}},8437:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferLine=t.DEFAULT_ATTR_DATA=void 0;const s=i(3734),r=i(511),n=i(643),o=i(482);t.DEFAULT_ATTR_DATA=Object.freeze(new s.AttributeData);let a=0;class h{constructor(e,t,i=!1){this.isWrapped=i,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*e);const s=t||r.CellData.fromCharData([0,n.NULL_CELL_CHAR,n.NULL_CELL_WIDTH,n.NULL_CELL_CODE]);for(let t=0;t<e;++t)this.setCell(t,s);this.length=e}get(e){const t=this._data[3*e+0],i=2097151&t;return[this._data[3*e+1],2097152&t?this._combined[e]:i?(0,o.stringFromCodePoint)(i):\"\",t>>22,2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):i]}set(e,t){this._data[3*e+1]=t[n.CHAR_DATA_ATTR_INDEX],t[n.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[e]=t[1],this._data[3*e+0]=2097152|e|t[n.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*e+0]=t[n.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|t[n.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(e){return this._data[3*e+0]>>22}hasWidth(e){return 12582912&this._data[3*e+0]}getFg(e){return this._data[3*e+1]}getBg(e){return this._data[3*e+2]}hasContent(e){return 4194303&this._data[3*e+0]}getCodePoint(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e].charCodeAt(this._combined[e].length-1):2097151&t}isCombined(e){return 2097152&this._data[3*e+0]}getString(e){const t=this._data[3*e+0];return 2097152&t?this._combined[e]:2097151&t?(0,o.stringFromCodePoint)(2097151&t):\"\"}isProtected(e){return 536870912&this._data[3*e+2]}loadCell(e,t){return a=3*e,t.content=this._data[a+0],t.fg=this._data[a+1],t.bg=this._data[a+2],2097152&t.content&&(t.combinedData=this._combined[e]),268435456&t.bg&&(t.extended=this._extendedAttrs[e]),t}setCell(e,t){2097152&t.content&&(this._combined[e]=t.combinedData),268435456&t.bg&&(this._extendedAttrs[e]=t.extended),this._data[3*e+0]=t.content,this._data[3*e+1]=t.fg,this._data[3*e+2]=t.bg}setCellFromCodepoint(e,t,i,s){268435456&s.bg&&(this._extendedAttrs[e]=s.extended),this._data[3*e+0]=t|i<<22,this._data[3*e+1]=s.fg,this._data[3*e+2]=s.bg}addCodepointToCell(e,t,i){let s=this._data[3*e+0];2097152&s?this._combined[e]+=(0,o.stringFromCodePoint)(t):2097151&s?(this._combined[e]=(0,o.stringFromCodePoint)(2097151&s)+(0,o.stringFromCodePoint)(t),s&=-2097152,s|=2097152):s=t|1<<22,i&&(s&=-12582913,s|=i<<22),this._data[3*e+0]=s}insertCells(e,t,i){if((e%=this.length)&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,i),t<this.length-e){const s=new r.CellData;for(let i=this.length-e-t-1;i>=0;--i)this.setCell(e+t+i,this.loadCell(e+i,s));for(let s=0;s<t;++s)this.setCell(e+s,i)}else for(let t=e;t<this.length;++t)this.setCell(t,i);2===this.getWidth(this.length-1)&&this.setCellFromCodepoint(this.length-1,0,1,i)}deleteCells(e,t,i){if(e%=this.length,t<this.length-e){const s=new r.CellData;for(let i=0;i<this.length-e-t;++i)this.setCell(e+i,this.loadCell(e+t+i,s));for(let e=this.length-t;e<this.length;++e)this.setCell(e,i)}else for(let t=e;t<this.length;++t)this.setCell(t,i);e&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,i),0!==this.getWidth(e)||this.hasContent(e)||this.setCellFromCodepoint(e,0,1,i)}replaceCells(e,t,i,s=!1){if(s)for(e&&2===this.getWidth(e-1)&&!this.isProtected(e-1)&&this.setCellFromCodepoint(e-1,0,1,i),t<this.length&&2===this.getWidth(t-1)&&!this.isProtected(t)&&this.setCellFromCodepoint(t,0,1,i);e<t&&e<this.length;)this.isProtected(e)||this.setCell(e,i),e++;else for(e&&2===this.getWidth(e-1)&&this.setCellFromCodepoint(e-1,0,1,i),t<this.length&&2===this.getWidth(t-1)&&this.setCellFromCodepoint(t,0,1,i);e<t&&e<this.length;)this.setCell(e++,i)}resize(e,t){if(e===this.length)return 4*this._data.length*2<this._data.buffer.byteLength;const i=3*e;if(e>this.length){if(this._data.buffer.byteLength>=4*i)this._data=new Uint32Array(this._data.buffer,0,i);else{const e=new Uint32Array(i);e.set(this._data),this._data=e}for(let i=this.length;i<e;++i)this.setCell(i,t)}else{this._data=this._data.subarray(0,i);const t=Object.keys(this._combined);for(let i=0;i<t.length;i++){const s=parseInt(t[i],10);s>=e&&delete this._combined[s]}const s=Object.keys(this._extendedAttrs);for(let t=0;t<s.length;t++){const i=parseInt(s[t],10);i>=e&&delete this._extendedAttrs[i]}}return this.length=e,4*i*2<this._data.buffer.byteLength}cleanupMemory(){if(4*this._data.length*2<this._data.buffer.byteLength){const e=new Uint32Array(this._data.length);return e.set(this._data),this._data=e,1}return 0}fill(e,t=!1){if(t)for(let t=0;t<this.length;++t)this.isProtected(t)||this.setCell(t,e);else{this._combined={},this._extendedAttrs={};for(let t=0;t<this.length;++t)this.setCell(t,e)}}copyFrom(e){this.length!==e.length?this._data=new Uint32Array(e._data):this._data.set(e._data),this.length=e.length,this._combined={};for(const t in e._combined)this._combined[t]=e._combined[t];this._extendedAttrs={};for(const t in e._extendedAttrs)this._extendedAttrs[t]=e._extendedAttrs[t];this.isWrapped=e.isWrapped}clone(){const e=new h(0);e._data=new Uint32Array(this._data),e.length=this.length;for(const t in this._combined)e._combined[t]=this._combined[t];for(const t in this._extendedAttrs)e._extendedAttrs[t]=this._extendedAttrs[t];return e.isWrapped=this.isWrapped,e}getTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0])return e+(this._data[3*e+0]>>22);return 0}getNoBgTrimmedLength(){for(let e=this.length-1;e>=0;--e)if(4194303&this._data[3*e+0]||50331648&this._data[3*e+2])return e+(this._data[3*e+0]>>22);return 0}copyCellsFrom(e,t,i,s,r){const n=e._data;if(r)for(let r=s-1;r>=0;r--){for(let e=0;e<3;e++)this._data[3*(i+r)+e]=n[3*(t+r)+e];268435456&n[3*(t+r)+2]&&(this._extendedAttrs[i+r]=e._extendedAttrs[t+r])}else for(let r=0;r<s;r++){for(let e=0;e<3;e++)this._data[3*(i+r)+e]=n[3*(t+r)+e];268435456&n[3*(t+r)+2]&&(this._extendedAttrs[i+r]=e._extendedAttrs[t+r])}const o=Object.keys(e._combined);for(let s=0;s<o.length;s++){const r=parseInt(o[s],10);r>=t&&(this._combined[r-t+i]=e._combined[r])}}translateToString(e,t,i,s){t=t??0,i=i??this.length,e&&(i=Math.min(i,this.getTrimmedLength())),s&&(s.length=0);let r=\"\";for(;t<i;){const e=this._data[3*t+0],i=2097151&e,a=2097152&e?this._combined[t]:i?(0,o.stringFromCodePoint)(i):n.WHITESPACE_CELL_CHAR;if(r+=a,s)for(let e=0;e<a.length;++e)s.push(t);t+=e>>22||1}return s&&s.push(t),r}}t.BufferLine=h},4841:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.getRangeLength=void 0,t.getRangeLength=function(e,t){if(e.start.y>e.end.y)throw new Error(`Buffer range end (${e.end.x}, ${e.end.y}) cannot be before start (${e.start.x}, ${e.start.y})`);return t*(e.end.y-e.start.y)+(e.end.x-e.start.x+1)}},4634:(e,t)=>{function i(e,t,i){if(t===e.length-1)return e[t].getTrimmedLength();const s=!e[t].hasContent(i-1)&&1===e[t].getWidth(i-1),r=2===e[t+1].getWidth(0);return s&&r?i-1:i}Object.defineProperty(t,\"__esModule\",{value:!0}),t.getWrappedLineTrimmedLength=t.reflowSmallerGetNewLineLengths=t.reflowLargerApplyNewLayout=t.reflowLargerCreateNewLayout=t.reflowLargerGetLinesToRemove=void 0,t.reflowLargerGetLinesToRemove=function(e,t,s,r,n){const o=[];for(let a=0;a<e.length-1;a++){let h=a,c=e.get(++h);if(!c.isWrapped)continue;const l=[e.get(a)];for(;h<e.length&&c.isWrapped;)l.push(c),c=e.get(++h);if(r>=a&&r<h){a+=l.length-1;continue}let d=0,_=i(l,d,t),u=1,f=0;for(;u<l.length;){const e=i(l,u,t),r=e-f,o=s-_,a=Math.min(r,o);l[d].copyCellsFrom(l[u],f,_,a,!1),_+=a,_===s&&(d++,_=0),f+=a,f===e&&(u++,f=0),0===_&&0!==d&&2===l[d-1].getWidth(s-1)&&(l[d].copyCellsFrom(l[d-1],s-1,_++,1,!1),l[d-1].setCell(s-1,n))}l[d].replaceCells(_,s,n);let v=0;for(let e=l.length-1;e>0&&(e>d||0===l[e].getTrimmedLength());e--)v++;v>0&&(o.push(a+l.length-v),o.push(v)),a+=l.length-1}return o},t.reflowLargerCreateNewLayout=function(e,t){const i=[];let s=0,r=t[s],n=0;for(let o=0;o<e.length;o++)if(r===o){const i=t[++s];e.onDeleteEmitter.fire({index:o-n,amount:i}),o+=i-1,n+=i,r=t[++s]}else i.push(o);return{layout:i,countRemoved:n}},t.reflowLargerApplyNewLayout=function(e,t){const i=[];for(let s=0;s<t.length;s++)i.push(e.get(t[s]));for(let t=0;t<i.length;t++)e.set(t,i[t]);e.length=t.length},t.reflowSmallerGetNewLineLengths=function(e,t,s){const r=[],n=e.map(((s,r)=>i(e,r,t))).reduce(((e,t)=>e+t));let o=0,a=0,h=0;for(;h<n;){if(n-h<s){r.push(n-h);break}o+=s;const c=i(e,a,t);o>c&&(o-=c,a++);const l=2===e[a].getWidth(o-1);l&&o--;const d=l?s-1:s;r.push(d),h+=d}return r},t.getWrappedLineTrimmedLength=i},5295:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferSet=void 0;const s=i(8460),r=i(844),n=i(9092);class o extends r.Disposable{constructor(e,t){super(),this._optionsService=e,this._bufferService=t,this._onBufferActivate=this.register(new s.EventEmitter),this.onBufferActivate=this._onBufferActivate.event,this.reset(),this.register(this._optionsService.onSpecificOptionChange(\"scrollback\",(()=>this.resize(this._bufferService.cols,this._bufferService.rows)))),this.register(this._optionsService.onSpecificOptionChange(\"tabStopWidth\",(()=>this.setupTabStops())))}reset(){this._normal=new n.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new n.Buffer(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,t){this._normal.resize(e,t),this._alt.resize(e,t),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}}t.BufferSet=o},511:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CellData=void 0;const s=i(482),r=i(643),n=i(3734);class o extends n.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new n.ExtendedAttrs,this.combinedData=\"\"}static fromCharData(e){const t=new o;return t.setFromCharData(e),t}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,s.stringFromCodePoint)(2097151&this.content):\"\"}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(e){this.fg=e[r.CHAR_DATA_ATTR_INDEX],this.bg=0;let t=!1;if(e[r.CHAR_DATA_CHAR_INDEX].length>2)t=!0;else if(2===e[r.CHAR_DATA_CHAR_INDEX].length){const i=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=i&&i<=56319){const s=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=s&&s<=57343?this.content=1024*(i-55296)+s-56320+65536|e[r.CHAR_DATA_WIDTH_INDEX]<<22:t=!0}else t=!0}else this.content=e[r.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|e[r.CHAR_DATA_WIDTH_INDEX]<<22;t&&(this.combinedData=e[r.CHAR_DATA_CHAR_INDEX],this.content=2097152|e[r.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}t.CellData=o},643:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WHITESPACE_CELL_CODE=t.WHITESPACE_CELL_WIDTH=t.WHITESPACE_CELL_CHAR=t.NULL_CELL_CODE=t.NULL_CELL_WIDTH=t.NULL_CELL_CHAR=t.CHAR_DATA_CODE_INDEX=t.CHAR_DATA_WIDTH_INDEX=t.CHAR_DATA_CHAR_INDEX=t.CHAR_DATA_ATTR_INDEX=t.DEFAULT_EXT=t.DEFAULT_ATTR=t.DEFAULT_COLOR=void 0,t.DEFAULT_COLOR=0,t.DEFAULT_ATTR=256|t.DEFAULT_COLOR<<9,t.DEFAULT_EXT=0,t.CHAR_DATA_ATTR_INDEX=0,t.CHAR_DATA_CHAR_INDEX=1,t.CHAR_DATA_WIDTH_INDEX=2,t.CHAR_DATA_CODE_INDEX=3,t.NULL_CELL_CHAR=\"\",t.NULL_CELL_WIDTH=1,t.NULL_CELL_CODE=0,t.WHITESPACE_CELL_CHAR=\" \",t.WHITESPACE_CELL_WIDTH=1,t.WHITESPACE_CELL_CODE=32},4863:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Marker=void 0;const s=i(8460),r=i(844);class n{get id(){return this._id}constructor(e){this.line=e,this.isDisposed=!1,this._disposables=[],this._id=n._nextId++,this._onDispose=this.register(new s.EventEmitter),this.onDispose=this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,r.disposeArray)(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}}t.Marker=n,n._nextId=1},7116:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DEFAULT_CHARSET=t.CHARSETS=void 0,t.CHARSETS={},t.DEFAULT_CHARSET=t.CHARSETS.B,t.CHARSETS[0]={\"`\":\"◆\",a:\"▒\",b:\"␉\",c:\"␌\",d:\"␍\",e:\"␊\",f:\"°\",g:\"±\",h:\"␤\",i:\"␋\",j:\"┘\",k:\"┐\",l:\"┌\",m:\"└\",n:\"┼\",o:\"⎺\",p:\"⎻\",q:\"─\",r:\"⎼\",s:\"⎽\",t:\"├\",u:\"┤\",v:\"┴\",w:\"┬\",x:\"│\",y:\"≤\",z:\"≥\",\"{\":\"π\",\"|\":\"≠\",\"}\":\"£\",\"~\":\"·\"},t.CHARSETS.A={\"#\":\"£\"},t.CHARSETS.B=void 0,t.CHARSETS[4]={\"#\":\"£\",\"@\":\"¾\",\"[\":\"ij\",\"\\\\\":\"½\",\"]\":\"|\",\"{\":\"¨\",\"|\":\"f\",\"}\":\"¼\",\"~\":\"´\"},t.CHARSETS.C=t.CHARSETS[5]={\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"é\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS.R={\"#\":\"£\",\"@\":\"à\",\"[\":\"°\",\"\\\\\":\"ç\",\"]\":\"§\",\"{\":\"é\",\"|\":\"ù\",\"}\":\"è\",\"~\":\"¨\"},t.CHARSETS.Q={\"@\":\"à\",\"[\":\"â\",\"\\\\\":\"ç\",\"]\":\"ê\",\"^\":\"î\",\"`\":\"ô\",\"{\":\"é\",\"|\":\"ù\",\"}\":\"è\",\"~\":\"û\"},t.CHARSETS.K={\"@\":\"§\",\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Ü\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"ü\",\"~\":\"ß\"},t.CHARSETS.Y={\"#\":\"£\",\"@\":\"§\",\"[\":\"°\",\"\\\\\":\"ç\",\"]\":\"é\",\"`\":\"ù\",\"{\":\"à\",\"|\":\"ò\",\"}\":\"è\",\"~\":\"ì\"},t.CHARSETS.E=t.CHARSETS[6]={\"@\":\"Ä\",\"[\":\"Æ\",\"\\\\\":\"Ø\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"ä\",\"{\":\"æ\",\"|\":\"ø\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS.Z={\"#\":\"£\",\"@\":\"§\",\"[\":\"¡\",\"\\\\\":\"Ñ\",\"]\":\"¿\",\"{\":\"°\",\"|\":\"ñ\",\"}\":\"ç\"},t.CHARSETS.H=t.CHARSETS[7]={\"@\":\"É\",\"[\":\"Ä\",\"\\\\\":\"Ö\",\"]\":\"Å\",\"^\":\"Ü\",\"`\":\"é\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"å\",\"~\":\"ü\"},t.CHARSETS[\"=\"]={\"#\":\"ù\",\"@\":\"à\",\"[\":\"é\",\"\\\\\":\"ç\",\"]\":\"ê\",\"^\":\"î\",_:\"è\",\"`\":\"ô\",\"{\":\"ä\",\"|\":\"ö\",\"}\":\"ü\",\"~\":\"û\"}},2584:(e,t)=>{var i,s,r;Object.defineProperty(t,\"__esModule\",{value:!0}),t.C1_ESCAPED=t.C1=t.C0=void 0,function(e){e.NUL=\"\\0\",e.SOH=\"\u0001\",e.STX=\"\u0002\",e.ETX=\"\u0003\",e.EOT=\"\u0004\",e.ENQ=\"\u0005\",e.ACK=\"\u0006\",e.BEL=\"\u0007\",e.BS=\"\\b\",e.HT=\"\\t\",e.LF=\"\\n\",e.VT=\"\\v\",e.FF=\"\\f\",e.CR=\"\\r\",e.SO=\"\u000e\",e.SI=\"\u000f\",e.DLE=\"\u0010\",e.DC1=\"\u0011\",e.DC2=\"\u0012\",e.DC3=\"\u0013\",e.DC4=\"\u0014\",e.NAK=\"\u0015\",e.SYN=\"\u0016\",e.ETB=\"\u0017\",e.CAN=\"\u0018\",e.EM=\"\u0019\",e.SUB=\"\u001a\",e.ESC=\"\u001b\",e.FS=\"\u001c\",e.GS=\"\u001d\",e.RS=\"\u001e\",e.US=\"\u001f\",e.SP=\" \",e.DEL=\"\"}(i||(t.C0=i={})),function(e){e.PAD=\"€\",e.HOP=\"\",e.BPH=\"‚\",e.NBH=\"ƒ\",e.IND=\"„\",e.NEL=\"…\",e.SSA=\"†\",e.ESA=\"‡\",e.HTS=\"ˆ\",e.HTJ=\"‰\",e.VTS=\"Š\",e.PLD=\"‹\",e.PLU=\"Œ\",e.RI=\"\",e.SS2=\"Ž\",e.SS3=\"\",e.DCS=\"\",e.PU1=\"‘\",e.PU2=\"’\",e.STS=\"“\",e.CCH=\"”\",e.MW=\"•\",e.SPA=\"–\",e.EPA=\"—\",e.SOS=\"˜\",e.SGCI=\"™\",e.SCI=\"š\",e.CSI=\"›\",e.ST=\"œ\",e.OSC=\"\",e.PM=\"ž\",e.APC=\"Ÿ\"}(s||(t.C1=s={})),function(e){e.ST=`${i.ESC}\\\\`}(r||(t.C1_ESCAPED=r={}))},7399:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.evaluateKeyboardEvent=void 0;const s=i(2584),r={48:[\"0\",\")\"],49:[\"1\",\"!\"],50:[\"2\",\"@\"],51:[\"3\",\"#\"],52:[\"4\",\"$\"],53:[\"5\",\"%\"],54:[\"6\",\"^\"],55:[\"7\",\"&\"],56:[\"8\",\"*\"],57:[\"9\",\"(\"],186:[\";\",\":\"],187:[\"=\",\"+\"],188:[\",\",\"<\"],189:[\"-\",\"_\"],190:[\".\",\">\"],191:[\"/\",\"?\"],192:[\"`\",\"~\"],219:[\"[\",\"{\"],220:[\"\\\\\",\"|\"],221:[\"]\",\"}\"],222:[\"'\",'\"']};t.evaluateKeyboardEvent=function(e,t,i,n){const o={type:0,cancel:!1,key:void 0},a=(e.shiftKey?1:0)|(e.altKey?2:0)|(e.ctrlKey?4:0)|(e.metaKey?8:0);switch(e.keyCode){case 0:\"UIKeyInputUpArrow\"===e.key?o.key=t?s.C0.ESC+\"OA\":s.C0.ESC+\"[A\":\"UIKeyInputLeftArrow\"===e.key?o.key=t?s.C0.ESC+\"OD\":s.C0.ESC+\"[D\":\"UIKeyInputRightArrow\"===e.key?o.key=t?s.C0.ESC+\"OC\":s.C0.ESC+\"[C\":\"UIKeyInputDownArrow\"===e.key&&(o.key=t?s.C0.ESC+\"OB\":s.C0.ESC+\"[B\");break;case 8:o.key=e.ctrlKey?\"\\b\":s.C0.DEL,e.altKey&&(o.key=s.C0.ESC+o.key);break;case 9:if(e.shiftKey){o.key=s.C0.ESC+\"[Z\";break}o.key=s.C0.HT,o.cancel=!0;break;case 13:o.key=e.altKey?s.C0.ESC+s.C0.CR:s.C0.CR,o.cancel=!0;break;case 27:o.key=s.C0.ESC,e.altKey&&(o.key=s.C0.ESC+s.C0.ESC),o.cancel=!0;break;case 37:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"D\",o.key===s.C0.ESC+\"[1;3D\"&&(o.key=s.C0.ESC+(i?\"b\":\"[1;5D\"))):o.key=t?s.C0.ESC+\"OD\":s.C0.ESC+\"[D\";break;case 39:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"C\",o.key===s.C0.ESC+\"[1;3C\"&&(o.key=s.C0.ESC+(i?\"f\":\"[1;5C\"))):o.key=t?s.C0.ESC+\"OC\":s.C0.ESC+\"[C\";break;case 38:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"A\",i||o.key!==s.C0.ESC+\"[1;3A\"||(o.key=s.C0.ESC+\"[1;5A\")):o.key=t?s.C0.ESC+\"OA\":s.C0.ESC+\"[A\";break;case 40:if(e.metaKey)break;a?(o.key=s.C0.ESC+\"[1;\"+(a+1)+\"B\",i||o.key!==s.C0.ESC+\"[1;3B\"||(o.key=s.C0.ESC+\"[1;5B\")):o.key=t?s.C0.ESC+\"OB\":s.C0.ESC+\"[B\";break;case 45:e.shiftKey||e.ctrlKey||(o.key=s.C0.ESC+\"[2~\");break;case 46:o.key=a?s.C0.ESC+\"[3;\"+(a+1)+\"~\":s.C0.ESC+\"[3~\";break;case 36:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"H\":t?s.C0.ESC+\"OH\":s.C0.ESC+\"[H\";break;case 35:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"F\":t?s.C0.ESC+\"OF\":s.C0.ESC+\"[F\";break;case 33:e.shiftKey?o.type=2:e.ctrlKey?o.key=s.C0.ESC+\"[5;\"+(a+1)+\"~\":o.key=s.C0.ESC+\"[5~\";break;case 34:e.shiftKey?o.type=3:e.ctrlKey?o.key=s.C0.ESC+\"[6;\"+(a+1)+\"~\":o.key=s.C0.ESC+\"[6~\";break;case 112:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"P\":s.C0.ESC+\"OP\";break;case 113:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"Q\":s.C0.ESC+\"OQ\";break;case 114:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"R\":s.C0.ESC+\"OR\";break;case 115:o.key=a?s.C0.ESC+\"[1;\"+(a+1)+\"S\":s.C0.ESC+\"OS\";break;case 116:o.key=a?s.C0.ESC+\"[15;\"+(a+1)+\"~\":s.C0.ESC+\"[15~\";break;case 117:o.key=a?s.C0.ESC+\"[17;\"+(a+1)+\"~\":s.C0.ESC+\"[17~\";break;case 118:o.key=a?s.C0.ESC+\"[18;\"+(a+1)+\"~\":s.C0.ESC+\"[18~\";break;case 119:o.key=a?s.C0.ESC+\"[19;\"+(a+1)+\"~\":s.C0.ESC+\"[19~\";break;case 120:o.key=a?s.C0.ESC+\"[20;\"+(a+1)+\"~\":s.C0.ESC+\"[20~\";break;case 121:o.key=a?s.C0.ESC+\"[21;\"+(a+1)+\"~\":s.C0.ESC+\"[21~\";break;case 122:o.key=a?s.C0.ESC+\"[23;\"+(a+1)+\"~\":s.C0.ESC+\"[23~\";break;case 123:o.key=a?s.C0.ESC+\"[24;\"+(a+1)+\"~\":s.C0.ESC+\"[24~\";break;default:if(!e.ctrlKey||e.shiftKey||e.altKey||e.metaKey)if(i&&!n||!e.altKey||e.metaKey)!i||e.altKey||e.ctrlKey||e.shiftKey||!e.metaKey?e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.keyCode>=48&&1===e.key.length?o.key=e.key:e.key&&e.ctrlKey&&(\"_\"===e.key&&(o.key=s.C0.US),\"@\"===e.key&&(o.key=s.C0.NUL)):65===e.keyCode&&(o.type=1);else{const t=r[e.keyCode],i=t?.[e.shiftKey?1:0];if(i)o.key=s.C0.ESC+i;else if(e.keyCode>=65&&e.keyCode<=90){const t=e.ctrlKey?e.keyCode-64:e.keyCode+32;let i=String.fromCharCode(t);e.shiftKey&&(i=i.toUpperCase()),o.key=s.C0.ESC+i}else if(32===e.keyCode)o.key=s.C0.ESC+(e.ctrlKey?s.C0.NUL:\" \");else if(\"Dead\"===e.key&&e.code.startsWith(\"Key\")){let t=e.code.slice(3,4);e.shiftKey||(t=t.toLowerCase()),o.key=s.C0.ESC+t,o.cancel=!0}}else e.keyCode>=65&&e.keyCode<=90?o.key=String.fromCharCode(e.keyCode-64):32===e.keyCode?o.key=s.C0.NUL:e.keyCode>=51&&e.keyCode<=55?o.key=String.fromCharCode(e.keyCode-51+27):56===e.keyCode?o.key=s.C0.DEL:219===e.keyCode?o.key=s.C0.ESC:220===e.keyCode?o.key=s.C0.FS:221===e.keyCode&&(o.key=s.C0.GS)}return o}},482:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Utf8ToUtf32=t.StringToUtf32=t.utf32ToString=t.stringFromCodePoint=void 0,t.stringFromCodePoint=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10))+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)},t.utf32ToString=function(e,t=0,i=e.length){let s=\"\";for(let r=t;r<i;++r){let t=e[r];t>65535?(t-=65536,s+=String.fromCharCode(55296+(t>>10))+String.fromCharCode(t%1024+56320)):s+=String.fromCharCode(t)}return s},t.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){const i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){const i=e.charCodeAt(r++);56320<=i&&i<=57343?t[s++]=1024*(this._interim-55296)+i-56320+65536:(t[s++]=this._interim,t[s++]=i),this._interim=0}for(let n=r;n<i;++n){const r=e.charCodeAt(n);if(55296<=r&&r<=56319){if(++n>=i)return this._interim=r,s;const o=e.charCodeAt(n);56320<=o&&o<=57343?t[s++]=1024*(r-55296)+o-56320+65536:(t[s++]=r,t[s++]=o)}else 65279!==r&&(t[s++]=r)}return s}},t.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){const i=e.length;if(!i)return 0;let s,r,n,o,a=0,h=0,c=0;if(this.interim[0]){let s=!1,r=this.interim[0];r&=192==(224&r)?31:224==(240&r)?15:7;let n,o=0;for(;(n=63&this.interim[++o])&&o<4;)r<<=6,r|=n;const h=192==(224&this.interim[0])?2:224==(240&this.interim[0])?3:4,l=h-o;for(;c<l;){if(c>=i)return 0;if(n=e[c++],128!=(192&n)){c--,s=!0;break}this.interim[o++]=n,r<<=6,r|=63&n}s||(2===h?r<128?c--:t[a++]=r:3===h?r<2048||r>=55296&&r<=57343||65279===r||(t[a++]=r):r<65536||r>1114111||(t[a++]=r)),this.interim.fill(0)}const l=i-4;let d=c;for(;d<i;){for(;!(!(d<l)||128&(s=e[d])||128&(r=e[d+1])||128&(n=e[d+2])||128&(o=e[d+3]));)t[a++]=s,t[a++]=r,t[a++]=n,t[a++]=o,d+=4;if(s=e[d++],s<128)t[a++]=s;else if(192==(224&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(h=(31&s)<<6|63&r,h<128){d--;continue}t[a++]=h}else if(224==(240&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(h=(15&s)<<12|(63&r)<<6|63&n,h<2048||h>=55296&&h<=57343||65279===h)continue;t[a++]=h}else if(240==(248&s)){if(d>=i)return this.interim[0]=s,a;if(r=e[d++],128!=(192&r)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,a;if(n=e[d++],128!=(192&n)){d--;continue}if(d>=i)return this.interim[0]=s,this.interim[1]=r,this.interim[2]=n,a;if(o=e[d++],128!=(192&o)){d--;continue}if(h=(7&s)<<18|(63&r)<<12|(63&n)<<6|63&o,h<65536||h>1114111)continue;t[a++]=h}}return a}}},225:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeV6=void 0;const s=i(1480),r=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],n=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]];let o;t.UnicodeV6=class{constructor(){if(this.version=\"6\",!o){o=new Uint8Array(65536),o.fill(1),o[0]=0,o.fill(0,1,32),o.fill(0,127,160),o.fill(2,4352,4448),o[9001]=2,o[9002]=2,o.fill(2,11904,42192),o[12351]=1,o.fill(2,44032,55204),o.fill(2,63744,64256),o.fill(2,65040,65050),o.fill(2,65072,65136),o.fill(2,65280,65377),o.fill(2,65504,65511);for(let e=0;e<r.length;++e)o.fill(0,r[e][0],r[e][1]+1)}}wcwidth(e){return e<32?0:e<127?1:e<65536?o[e]:function(e,t){let i,s=0,r=t.length-1;if(e<t[0][0]||e>t[r][1])return!1;for(;r>=s;)if(i=s+r>>1,e>t[i][1])s=i+1;else{if(!(e<t[i][0]))return!0;r=i-1}return!1}(e,n)?0:e>=131072&&e<=196605||e>=196608&&e<=262141?2:1}charProperties(e,t){let i=this.wcwidth(e),r=0===i&&0!==t;if(r){const e=s.UnicodeService.extractWidth(t);0===e?r=!1:e>i&&(i=e)}return s.UnicodeService.createPropertyValue(0,i,r)}}},5981:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.WriteBuffer=void 0;const s=i(8460),r=i(844);class n extends r.Disposable{constructor(e){super(),this._action=e,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new s.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,t){if(void 0!==t&&this._syncCalls>t)return void(this._syncCalls=0);if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let i;for(this._isSyncWriting=!0;i=this._writeBuffer.shift();){this._action(i);const e=this._callbacks.shift();e&&e()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,t){if(this._pendingData>5e7)throw new Error(\"write data discarded, use flow control to avoid losing data\");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput)return this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t),void this._innerWrite();setTimeout((()=>this._innerWrite()))}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(t)}_innerWrite(e=0,t=!0){const i=e||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){const e=this._writeBuffer[this._bufferOffset],s=this._action(e,t);if(s){const e=e=>Date.now()-i>=12?setTimeout((()=>this._innerWrite(0,e))):this._innerWrite(i,e);return void s.catch((e=>(queueMicrotask((()=>{throw e})),Promise.resolve(!1)))).then(e)}const r=this._callbacks[this._bufferOffset];if(r&&r(),this._bufferOffset++,this._pendingData-=e.length,Date.now()-i>=12)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>50&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout((()=>this._innerWrite()))):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}}t.WriteBuffer=n},5941:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.toRgbString=t.parseColor=void 0;const i=/^([\\da-f])\\/([\\da-f])\\/([\\da-f])$|^([\\da-f]{2})\\/([\\da-f]{2})\\/([\\da-f]{2})$|^([\\da-f]{3})\\/([\\da-f]{3})\\/([\\da-f]{3})$|^([\\da-f]{4})\\/([\\da-f]{4})\\/([\\da-f]{4})$/,s=/^[\\da-f]+$/;function r(e,t){const i=e.toString(16),s=i.length<2?\"0\"+i:i;switch(t){case 4:return i[0];case 8:return s;case 12:return(s+s).slice(0,3);default:return s+s}}t.parseColor=function(e){if(!e)return;let t=e.toLowerCase();if(0===t.indexOf(\"rgb:\")){t=t.slice(4);const e=i.exec(t);if(e){const t=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/t*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/t*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/t*255)]}}else if(0===t.indexOf(\"#\")&&(t=t.slice(1),s.exec(t)&&[3,6,9,12].includes(t.length))){const e=t.length/3,i=[0,0,0];for(let s=0;s<3;++s){const r=parseInt(t.slice(e*s,e*s+e),16);i[s]=1===e?r<<4:2===e?r:3===e?r>>4:r>>8}return i}},t.toRgbString=function(e,t=16){const[i,s,n]=e;return`rgb:${r(i,t)}/${r(s,t)}/${r(n,t)}`}},5770:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.PAYLOAD_LIMIT=void 0,t.PAYLOAD_LIMIT=1e7},6351:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DcsHandler=t.DcsParser=void 0;const s=i(482),r=i(8742),n=i(5770),o=[];t.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=o,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=o}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}reset(){if(this._active.length)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].unhook(!1);this._stack.paused=!1,this._active=o,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||o,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].hook(t);else this._handlerFb(this._ident,\"HOOK\",t)}put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._ident,\"PUT\",(0,s.utf32ToString)(e,t,i))}unhook(e,t=!0){if(this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].unhook(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].unhook(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._ident,\"UNHOOK\",e);this._active=o,this._ident=0}};const a=new r.Params;a.addParam(0),t.DcsHandler=class{constructor(e){this._handler=e,this._data=\"\",this._params=a,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():a,this._data=\"\",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,s.utf32ToString)(e,t,i),this._data.length>n.PAYLOAD_LIMIT&&(this._data=\"\",this._hitLimit=!0))}unhook(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data,this._params),t instanceof Promise))return t.then((e=>(this._params=a,this._data=\"\",this._hitLimit=!1,e)));return this._params=a,this._data=\"\",this._hitLimit=!1,t}}},2015:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.EscapeSequenceParser=t.VT500_TRANSITION_TABLE=t.TransitionTable=void 0;const s=i(844),r=i(8742),n=i(6242),o=i(6351);class a{constructor(e){this.table=new Uint8Array(e)}setDefault(e,t){this.table.fill(e<<4|t)}add(e,t,i,s){this.table[t<<8|e]=i<<4|s}addMany(e,t,i,s){for(let r=0;r<e.length;r++)this.table[t<<8|e[r]]=i<<4|s}}t.TransitionTable=a;const h=160;t.VT500_TRANSITION_TABLE=function(){const e=new a(4095),t=Array.apply(null,Array(256)).map(((e,t)=>t)),i=(e,i)=>t.slice(e,i),s=i(32,127),r=i(0,24);r.push(25),r.push.apply(r,i(28,32));const n=i(0,14);let o;for(o in e.setDefault(1,0),e.addMany(s,0,2,0),n)e.addMany([24,26,153,154],o,3,0),e.addMany(i(128,144),o,3,0),e.addMany(i(144,152),o,3,0),e.add(156,o,0,0),e.add(27,o,11,1),e.add(157,o,4,8),e.addMany([152,158,159],o,0,7),e.add(155,o,11,3),e.add(144,o,11,9);return e.addMany(r,0,3,0),e.addMany(r,1,3,1),e.add(127,1,0,1),e.addMany(r,8,0,8),e.addMany(r,3,3,3),e.add(127,3,0,3),e.addMany(r,4,3,4),e.add(127,4,0,4),e.addMany(r,6,3,6),e.addMany(r,5,3,5),e.add(127,5,0,5),e.addMany(r,2,3,2),e.add(127,2,0,2),e.add(93,1,4,8),e.addMany(s,8,5,8),e.add(127,8,5,8),e.addMany([156,27,24,26,7],8,6,0),e.addMany(i(28,32),8,0,8),e.addMany([88,94,95],1,0,7),e.addMany(s,7,0,7),e.addMany(r,7,0,7),e.add(156,7,0,0),e.add(127,7,0,7),e.add(91,1,11,3),e.addMany(i(64,127),3,7,0),e.addMany(i(48,60),3,8,4),e.addMany([60,61,62,63],3,9,4),e.addMany(i(48,60),4,8,4),e.addMany(i(64,127),4,7,0),e.addMany([60,61,62,63],4,0,6),e.addMany(i(32,64),6,0,6),e.add(127,6,0,6),e.addMany(i(64,127),6,0,0),e.addMany(i(32,48),3,9,5),e.addMany(i(32,48),5,9,5),e.addMany(i(48,64),5,0,6),e.addMany(i(64,127),5,7,0),e.addMany(i(32,48),4,9,5),e.addMany(i(32,48),1,9,2),e.addMany(i(32,48),2,9,2),e.addMany(i(48,127),2,10,0),e.addMany(i(48,80),1,10,0),e.addMany(i(81,88),1,10,0),e.addMany([89,90,92],1,10,0),e.addMany(i(96,127),1,10,0),e.add(80,1,11,9),e.addMany(r,9,0,9),e.add(127,9,0,9),e.addMany(i(28,32),9,0,9),e.addMany(i(32,48),9,9,12),e.addMany(i(48,60),9,8,10),e.addMany([60,61,62,63],9,9,10),e.addMany(r,11,0,11),e.addMany(i(32,128),11,0,11),e.addMany(i(28,32),11,0,11),e.addMany(r,10,0,10),e.add(127,10,0,10),e.addMany(i(28,32),10,0,10),e.addMany(i(48,60),10,8,10),e.addMany([60,61,62,63],10,0,11),e.addMany(i(32,48),10,9,12),e.addMany(r,12,0,12),e.add(127,12,0,12),e.addMany(i(28,32),12,0,12),e.addMany(i(32,48),12,9,12),e.addMany(i(48,64),12,0,11),e.addMany(i(64,127),12,12,13),e.addMany(i(64,127),10,12,13),e.addMany(i(64,127),9,12,13),e.addMany(r,13,13,13),e.addMany(s,13,13,13),e.add(127,13,0,13),e.addMany([27,156,24,26],13,14,0),e.add(h,0,2,0),e.add(h,8,5,8),e.add(h,6,0,6),e.add(h,11,0,11),e.add(h,13,13,13),e}();class c extends s.Disposable{constructor(e=t.VT500_TRANSITION_TABLE){super(),this._transitions=e,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new r.Params,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(e,t,i)=>{},this._executeHandlerFb=e=>{},this._csiHandlerFb=(e,t)=>{},this._escHandlerFb=e=>{},this._errorHandlerFb=e=>e,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,s.toDisposable)((()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)}))),this._oscParser=this.register(new n.OscParser),this._dcsParser=this.register(new o.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:\"\\\\\"},(()=>!0))}_identifier(e,t=[64,126]){let i=0;if(e.prefix){if(e.prefix.length>1)throw new Error(\"only one byte as prefix supported\");if(i=e.prefix.charCodeAt(0),i&&60>i||i>63)throw new Error(\"prefix must be in range 0x3c .. 0x3f\")}if(e.intermediates){if(e.intermediates.length>2)throw new Error(\"only two bytes as intermediates are supported\");for(let t=0;t<e.intermediates.length;++t){const s=e.intermediates.charCodeAt(t);if(32>s||s>47)throw new Error(\"intermediate must be in range 0x20 .. 0x2f\");i<<=8,i|=s}}if(1!==e.final.length)throw new Error(\"final must be a single byte\");const s=e.final.charCodeAt(0);if(t[0]>s||s>t[1])throw new Error(`final must be in range ${t[0]} .. ${t[1]}`);return i<<=8,i|=s,i}identToString(e){const t=[];for(;e;)t.push(String.fromCharCode(255&e)),e>>=8;return t.reverse().join(\"\")}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,t){const i=this._identifier(e,[48,126]);void 0===this._escHandlers[i]&&(this._escHandlers[i]=[]);const s=this._escHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,t){this._executeHandlers[e.charCodeAt(0)]=t}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,t){const i=this._identifier(e);void 0===this._csiHandlers[i]&&(this._csiHandlers[i]=[]);const s=this._csiHandlers[i];return s.push(t),{dispose:()=>{const e=s.indexOf(t);-1!==e&&s.splice(e,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,t){return this._dcsParser.registerHandler(this._identifier(e),t)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,t){return this._oscParser.registerHandler(e,t)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,0!==this._parseStack.state&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,t,i,s,r){this._parseStack.state=e,this._parseStack.handlers=t,this._parseStack.handlerPos=i,this._parseStack.transition=s,this._parseStack.chunkPos=r}parse(e,t,i){let s,r=0,n=0,o=0;if(this._parseStack.state)if(2===this._parseStack.state)this._parseStack.state=0,o=this._parseStack.chunkPos+1;else{if(void 0===i||1===this._parseStack.state)throw this._parseStack.state=1,new Error(\"improper continuation due to previous async handler, giving up parsing\");const t=this._parseStack.handlers;let n=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](this._params),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 4:if(!1===i&&n>-1)for(;n>=0&&(s=t[n](),!0!==s);n--)if(s instanceof Promise)return this._parseStack.handlerPos=n,s;this._parseStack.handlers=[];break;case 6:if(r=e[this._parseStack.chunkPos],s=this._dcsParser.unhook(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(r=e[this._parseStack.chunkPos],s=this._oscParser.end(24!==r&&26!==r,i),s)return s;27===r&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,o=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=15&this._parseStack.transition}for(let i=o;i<t;++i){switch(r=e[i],n=this._transitions.table[this.currentState<<8|(r<160?r:h)],n>>4){case 2:for(let s=i+1;;++s){if(s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}if(++s>=t||(r=e[s])<32||r>126&&r<h){this._printHandler(e,i,s),i=s-1;break}}break;case 3:this._executeHandlers[r]?this._executeHandlers[r]():this._executeHandlerFb(r),this.precedingJoinState=0;break;case 0:break;case 1:if(this._errorHandler({position:i,code:r,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:const o=this._csiHandlers[this._collect<<8|r];let a=o?o.length-1:-1;for(;a>=0&&(s=o[a](this._params),!0!==s);a--)if(s instanceof Promise)return this._preserveStack(3,o,a,n,i),s;a<0&&this._csiHandlerFb(this._collect<<8|r,this._params),this.precedingJoinState=0;break;case 8:do{switch(r){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(r-48)}}while(++i<t&&(r=e[i])>47&&r<60);i--;break;case 9:this._collect<<=8,this._collect|=r;break;case 10:const c=this._escHandlers[this._collect<<8|r];let l=c?c.length-1:-1;for(;l>=0&&(s=c[l](),!0!==s);l--)if(s instanceof Promise)return this._preserveStack(4,c,l,n,i),s;l<0&&this._escHandlerFb(this._collect<<8|r),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|r,this._params);break;case 13:for(let s=i+1;;++s)if(s>=t||24===(r=e[s])||26===r||27===r||r>127&&r<h){this._dcsParser.put(e,i,s),i=s-1;break}break;case 14:if(s=this._dcsParser.unhook(24!==r&&26!==r),s)return this._preserveStack(6,[],0,n,i),s;27===r&&(n|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break;case 4:this._oscParser.start();break;case 5:for(let s=i+1;;s++)if(s>=t||(r=e[s])<32||r>127&&r<h){this._oscParser.put(e,i,s),i=s-1;break}break;case 6:if(s=this._oscParser.end(24!==r&&26!==r),s)return this._preserveStack(5,[],0,n,i),s;27===r&&(n|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0}this.currentState=15&n}}}t.EscapeSequenceParser=c},6242:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscHandler=t.OscParser=void 0;const s=i(5770),r=i(482),n=[];t.OscParser=class{constructor(){this._state=0,this._active=n,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(e,t){void 0===this._handlers[e]&&(this._handlers[e]=[]);const i=this._handlers[e];return i.push(t),{dispose:()=>{const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}}clearHandler(e){this._handlers[e]&&delete this._handlers[e]}setHandlerFallback(e){this._handlerFb=e}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=n}reset(){if(2===this._state)for(let e=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;e>=0;--e)this._active[e].end(!1);this._stack.paused=!1,this._active=n,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||n,this._active.length)for(let e=this._active.length-1;e>=0;e--)this._active[e].start();else this._handlerFb(this._id,\"START\")}_put(e,t,i){if(this._active.length)for(let s=this._active.length-1;s>=0;s--)this._active[s].put(e,t,i);else this._handlerFb(this._id,\"PUT\",(0,r.utf32ToString)(e,t,i))}start(){this.reset(),this._state=1}put(e,t,i){if(3!==this._state){if(1===this._state)for(;t<i;){const i=e[t++];if(59===i){this._state=2,this._start();break}if(i<48||57<i)return void(this._state=3);-1===this._id&&(this._id=0),this._id=10*this._id+i-48}2===this._state&&i-t>0&&this._put(e,t,i)}}end(e,t=!0){if(0!==this._state){if(3!==this._state)if(1===this._state&&this._start(),this._active.length){let i=!1,s=this._active.length-1,r=!1;if(this._stack.paused&&(s=this._stack.loopPosition-1,i=t,r=this._stack.fallThrough,this._stack.paused=!1),!r&&!1===i){for(;s>=0&&(i=this._active[s].end(e),!0!==i);s--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!1,i;s--}for(;s>=0;s--)if(i=this._active[s].end(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=s,this._stack.fallThrough=!0,i}else this._handlerFb(this._id,\"END\",e);this._active=n,this._id=-1,this._state=0}}},t.OscHandler=class{constructor(e){this._handler=e,this._data=\"\",this._hitLimit=!1}start(){this._data=\"\",this._hitLimit=!1}put(e,t,i){this._hitLimit||(this._data+=(0,r.utf32ToString)(e,t,i),this._data.length>s.PAYLOAD_LIMIT&&(this._data=\"\",this._hitLimit=!0))}end(e){let t=!1;if(this._hitLimit)t=!1;else if(e&&(t=this._handler(this._data),t instanceof Promise))return t.then((e=>(this._data=\"\",this._hitLimit=!1,e)));return this._data=\"\",this._hitLimit=!1,t}}},8742:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.Params=void 0;const i=2147483647;class s{static fromArray(e){const t=new s;if(!e.length)return t;for(let i=Array.isArray(e[0])?1:0;i<e.length;++i){const s=e[i];if(Array.isArray(s))for(let e=0;e<s.length;++e)t.addSubParam(s[e]);else t.addParam(s)}return t}constructor(e=32,t=32){if(this.maxLength=e,this.maxSubParamsLength=t,t>256)throw new Error(\"maxSubParamsLength must not be greater than 256\");this.params=new Int32Array(e),this.length=0,this._subParams=new Int32Array(t),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(e),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}clone(){const e=new s(this.maxLength,this.maxSubParamsLength);return e.params.set(this.params),e.length=this.length,e._subParams.set(this._subParams),e._subParamsLength=this._subParamsLength,e._subParamsIdx.set(this._subParamsIdx),e._rejectDigits=this._rejectDigits,e._rejectSubDigits=this._rejectSubDigits,e._digitIsSub=this._digitIsSub,e}toArray(){const e=[];for(let t=0;t<this.length;++t){e.push(this.params[t]);const i=this._subParamsIdx[t]>>8,s=255&this._subParamsIdx[t];s-i>0&&e.push(Array.prototype.slice.call(this._subParams,i,s))}return e}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(e){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(e<-1)throw new Error(\"values lesser than -1 are not allowed\");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=e>i?i:e}}addSubParam(e){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(e<-1)throw new Error(\"values lesser than -1 are not allowed\");this._subParams[this._subParamsLength++]=e>i?i:e,this._subParamsIdx[this.length-1]++}}hasSubParams(e){return(255&this._subParamsIdx[e])-(this._subParamsIdx[e]>>8)>0}getSubParams(e){const t=this._subParamsIdx[e]>>8,i=255&this._subParamsIdx[e];return i-t>0?this._subParams.subarray(t,i):null}getSubParamsAll(){const e={};for(let t=0;t<this.length;++t){const i=this._subParamsIdx[t]>>8,s=255&this._subParamsIdx[t];s-i>0&&(e[t]=this._subParams.slice(i,s))}return e}addDigit(e){let t;if(this._rejectDigits||!(t=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;const s=this._digitIsSub?this._subParams:this.params,r=s[t-1];s[t-1]=~r?Math.min(10*r+e,i):e}}t.Params=s},5741:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.AddonManager=void 0,t.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let e=this._addons.length-1;e>=0;e--)this._addons[e].instance.dispose()}loadAddon(e,t){const i={instance:t,dispose:t.dispose,isDisposed:!1};this._addons.push(i),t.dispose=()=>this._wrappedAddonDispose(i),t.activate(e)}_wrappedAddonDispose(e){if(e.isDisposed)return;let t=-1;for(let i=0;i<this._addons.length;i++)if(this._addons[i]===e){t=i;break}if(-1===t)throw new Error(\"Could not dispose an addon that has not been loaded\");e.isDisposed=!0,e.dispose.apply(e.instance),this._addons.splice(t,1)}}},8771:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferApiView=void 0;const s=i(3785),r=i(511);t.BufferApiView=class{constructor(e,t){this._buffer=e,this.type=t}init(e){return this._buffer=e,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(e){const t=this._buffer.lines.get(e);if(t)return new s.BufferLineApiView(t)}getNullCell(){return new r.CellData}}},3785:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferLineApiView=void 0;const s=i(511);t.BufferLineApiView=class{constructor(e){this._line=e}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(e,t){if(!(e<0||e>=this._line.length))return t?(this._line.loadCell(e,t),t):this._line.loadCell(e,new s.CellData)}translateToString(e,t,i){return this._line.translateToString(e,t,i)}}},8285:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferNamespaceApi=void 0;const s=i(8771),r=i(8460),n=i(844);class o extends n.Disposable{constructor(e){super(),this._core=e,this._onBufferChange=this.register(new r.EventEmitter),this.onBufferChange=this._onBufferChange.event,this._normal=new s.BufferApiView(this._core.buffers.normal,\"normal\"),this._alternate=new s.BufferApiView(this._core.buffers.alt,\"alternate\"),this._core.buffers.onBufferActivate((()=>this._onBufferChange.fire(this.active)))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error(\"Active buffer is neither normal nor alternate\")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}}t.BufferNamespaceApi=o},7975:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.ParserApi=void 0,t.ParserApi=class{constructor(e){this._core=e}registerCsiHandler(e,t){return this._core.registerCsiHandler(e,(e=>t(e.toArray())))}addCsiHandler(e,t){return this.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._core.registerDcsHandler(e,((e,i)=>t(e,i.toArray())))}addDcsHandler(e,t){return this.registerDcsHandler(e,t)}registerEscHandler(e,t){return this._core.registerEscHandler(e,t)}addEscHandler(e,t){return this.registerEscHandler(e,t)}registerOscHandler(e,t){return this._core.registerOscHandler(e,t)}addOscHandler(e,t){return this.registerOscHandler(e,t)}}},7090:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeApi=void 0,t.UnicodeApi=class{constructor(e){this._core=e}register(e){this._core.unicodeService.register(e)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(e){this._core.unicodeService.activeVersion=e}}},744:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.BufferService=t.MINIMUM_ROWS=t.MINIMUM_COLS=void 0;const n=i(8460),o=i(844),a=i(5295),h=i(2585);t.MINIMUM_COLS=2,t.MINIMUM_ROWS=1;let c=t.BufferService=class extends o.Disposable{get buffer(){return this.buffers.active}constructor(e){super(),this.isUserScrolling=!1,this._onResize=this.register(new n.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new n.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(e.rawOptions.cols||0,t.MINIMUM_COLS),this.rows=Math.max(e.rawOptions.rows||0,t.MINIMUM_ROWS),this.buffers=this.register(new a.BufferSet(e,this))}resize(e,t){this.cols=e,this.rows=t,this.buffers.resize(e,t),this._onResize.fire({cols:e,rows:t})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,t=!1){const i=this.buffer;let s;s=this._cachedBlankLine,s&&s.length===this.cols&&s.getFg(0)===e.fg&&s.getBg(0)===e.bg||(s=i.getBlankLine(e,t),this._cachedBlankLine=s),s.isWrapped=t;const r=i.ybase+i.scrollTop,n=i.ybase+i.scrollBottom;if(0===i.scrollTop){const e=i.lines.isFull;n===i.lines.length-1?e?i.lines.recycle().copyFrom(s):i.lines.push(s.clone()):i.lines.splice(n+1,0,s.clone()),e?this.isUserScrolling&&(i.ydisp=Math.max(i.ydisp-1,0)):(i.ybase++,this.isUserScrolling||i.ydisp++)}else{const e=n-r+1;i.lines.shiftElements(r+1,e-1,-1),i.lines.set(n,s.clone())}this.isUserScrolling||(i.ydisp=i.ybase),this._onScroll.fire(i.ydisp)}scrollLines(e,t,i){const s=this.buffer;if(e<0){if(0===s.ydisp)return;this.isUserScrolling=!0}else e+s.ydisp>=s.ybase&&(this.isUserScrolling=!1);const r=s.ydisp;s.ydisp=Math.max(Math.min(s.ydisp+e,s.ybase),0),r!==s.ydisp&&(t||this._onScroll.fire(s.ydisp))}};t.BufferService=c=s([r(0,h.IOptionsService)],c)},7994:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.CharsetService=void 0,t.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(e){this.glevel=e,this.charset=this._charsets[e]}setgCharset(e,t){this._charsets[e]=t,this.glevel===e&&(this.charset=t)}}},1753:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreMouseService=void 0;const n=i(2585),o=i(8460),a=i(844),h={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:e=>4!==e.button&&1===e.action&&(e.ctrl=!1,e.alt=!1,e.shift=!1,!0)},VT200:{events:19,restrict:e=>32!==e.action},DRAG:{events:23,restrict:e=>32!==e.action||3!==e.button},ANY:{events:31,restrict:e=>!0}};function c(e,t){let i=(e.ctrl?16:0)|(e.shift?4:0)|(e.alt?8:0);return 4===e.button?(i|=64,i|=e.action):(i|=3&e.button,4&e.button&&(i|=64),8&e.button&&(i|=128),32===e.action?i|=32:0!==e.action||t||(i|=3)),i}const l=String.fromCharCode,d={DEFAULT:e=>{const t=[c(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?\"\":`\u001b[M${l(t[0])}${l(t[1])}${l(t[2])}`},SGR:e=>{const t=0===e.action&&4!==e.button?\"m\":\"M\";return`\u001b[<${c(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{const t=0===e.action&&4!==e.button?\"m\":\"M\";return`\u001b[<${c(e,!0)};${e.x};${e.y}${t}`}};let _=t.CoreMouseService=class extends a.Disposable{constructor(e,t){super(),this._bufferService=e,this._coreService=t,this._protocols={},this._encodings={},this._activeProtocol=\"\",this._activeEncoding=\"\",this._lastEvent=null,this._onProtocolChange=this.register(new o.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(const e of Object.keys(h))this.addProtocol(e,h[e]);for(const e of Object.keys(d))this.addEncoding(e,d[e]);this.reset()}addProtocol(e,t){this._protocols[e]=t}addEncoding(e,t){this._encodings[e]=t}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return 0!==this._protocols[this._activeProtocol].events}set activeProtocol(e){if(!this._protocols[e])throw new Error(`unknown protocol \"${e}\"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw new Error(`unknown encoding \"${e}\"`);this._activeEncoding=e}reset(){this.activeProtocol=\"NONE\",this.activeEncoding=\"DEFAULT\",this._lastEvent=null}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows)return!1;if(4===e.button&&32===e.action)return!1;if(3===e.button&&32!==e.action)return!1;if(4!==e.button&&(2===e.action||3===e.action))return!1;if(e.col++,e.row++,32===e.action&&this._lastEvent&&this._equalEvents(this._lastEvent,e,\"SGR_PIXELS\"===this._activeEncoding))return!1;if(!this._protocols[this._activeProtocol].restrict(e))return!1;const t=this._encodings[this._activeEncoding](e);return t&&(\"DEFAULT\"===this._activeEncoding?this._coreService.triggerBinaryEvent(t):this._coreService.triggerDataEvent(t,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(1&e),up:!!(2&e),drag:!!(4&e),move:!!(8&e),wheel:!!(16&e)}}_equalEvents(e,t,i){if(i){if(e.x!==t.x)return!1;if(e.y!==t.y)return!1}else{if(e.col!==t.col)return!1;if(e.row!==t.row)return!1}return e.button===t.button&&e.action===t.action&&e.ctrl===t.ctrl&&e.alt===t.alt&&e.shift===t.shift}};t.CoreMouseService=_=s([r(0,n.IBufferService),r(1,n.ICoreService)],_)},6975:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.CoreService=void 0;const n=i(1439),o=i(8460),a=i(844),h=i(2585),c=Object.freeze({insertMode:!1}),l=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0});let d=t.CoreService=class extends a.Disposable{constructor(e,t,i){super(),this._bufferService=e,this._logService=t,this._optionsService=i,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new o.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new o.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new o.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new o.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,n.clone)(c),this.decPrivateModes=(0,n.clone)(l)}reset(){this.modes=(0,n.clone)(c),this.decPrivateModes=(0,n.clone)(l)}triggerDataEvent(e,t=!1){if(this._optionsService.rawOptions.disableStdin)return;const i=this._bufferService.buffer;t&&this._optionsService.rawOptions.scrollOnUserInput&&i.ybase!==i.ydisp&&this._onRequestScrollToBottom.fire(),t&&this._onUserInput.fire(),this._logService.debug(`sending data \"${e}\"`,(()=>e.split(\"\").map((e=>e.charCodeAt(0))))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary \"${e}\"`,(()=>e.split(\"\").map((e=>e.charCodeAt(0))))),this._onBinary.fire(e))}};t.CoreService=d=s([r(0,h.IBufferService),r(1,h.ILogService),r(2,h.IOptionsService)],d)},9074:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.DecorationService=void 0;const s=i(8055),r=i(8460),n=i(844),o=i(6106);let a=0,h=0;class c extends n.Disposable{get decorations(){return this._decorations.values()}constructor(){super(),this._decorations=new o.SortedList((e=>e?.marker.line)),this._onDecorationRegistered=this.register(new r.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new r.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,n.toDisposable)((()=>this.reset())))}registerDecoration(e){if(e.marker.isDisposed)return;const t=new l(e);if(t){const e=t.marker.onDispose((()=>t.dispose()));t.onDispose((()=>{t&&(this._decorations.delete(t)&&this._onDecorationRemoved.fire(t),e.dispose())})),this._decorations.insert(t),this._onDecorationRegistered.fire(t)}return t}reset(){for(const e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,t,i){let s=0,r=0;for(const n of this._decorations.getKeyIterator(t))s=n.options.x??0,r=s+(n.options.width??1),e>=s&&e<r&&(!i||(n.options.layer??\"bottom\")===i)&&(yield n)}forEachDecorationAtCell(e,t,i,s){this._decorations.forEachByKey(t,(t=>{a=t.options.x??0,h=a+(t.options.width??1),e>=a&&e<h&&(!i||(t.options.layer??\"bottom\")===i)&&s(t)}))}}t.DecorationService=c;class l extends n.Disposable{get isDisposed(){return this._isDisposed}get backgroundColorRGB(){return null===this._cachedBg&&(this.options.backgroundColor?this._cachedBg=s.css.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return null===this._cachedFg&&(this.options.foregroundColor?this._cachedFg=s.css.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}constructor(e){super(),this.options=e,this.onRenderEmitter=this.register(new r.EventEmitter),this.onRender=this.onRenderEmitter.event,this._onDispose=this.register(new r.EventEmitter),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=e.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position=\"full\")}dispose(){this._onDispose.fire(),super.dispose()}}},4348:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.InstantiationService=t.ServiceCollection=void 0;const s=i(2585),r=i(8343);class n{constructor(...e){this._entries=new Map;for(const[t,i]of e)this.set(t,i)}set(e,t){const i=this._entries.get(e);return this._entries.set(e,t),i}forEach(e){for(const[t,i]of this._entries.entries())e(t,i)}has(e){return this._entries.has(e)}get(e){return this._entries.get(e)}}t.ServiceCollection=n,t.InstantiationService=class{constructor(){this._services=new n,this._services.set(s.IInstantiationService,this)}setService(e,t){this._services.set(e,t)}getService(e){return this._services.get(e)}createInstance(e,...t){const i=(0,r.getServiceDependencies)(e).sort(((e,t)=>e.index-t.index)),s=[];for(const t of i){const i=this._services.get(t.id);if(!i)throw new Error(`[createInstance] ${e.name} depends on UNKNOWN service ${t.id}.`);s.push(i)}const n=i.length>0?i[0].index:t.length;if(t.length!==n)throw new Error(`[createInstance] First service dependency of ${e.name} at position ${n+1} conflicts with ${t.length} static arguments`);return new e(...[...t,...s])}}},7866:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.traceCall=t.setTraceLogger=t.LogService=void 0;const n=i(844),o=i(2585),a={trace:o.LogLevelEnum.TRACE,debug:o.LogLevelEnum.DEBUG,info:o.LogLevelEnum.INFO,warn:o.LogLevelEnum.WARN,error:o.LogLevelEnum.ERROR,off:o.LogLevelEnum.OFF};let h,c=t.LogService=class extends n.Disposable{get logLevel(){return this._logLevel}constructor(e){super(),this._optionsService=e,this._logLevel=o.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange(\"logLevel\",(()=>this._updateLogLevel()))),h=this}_updateLogLevel(){this._logLevel=a[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let t=0;t<e.length;t++)\"function\"==typeof e[t]&&(e[t]=e[t]())}_log(e,t,i){this._evalLazyOptionalParams(i),e.call(console,(this._optionsService.options.logger?\"\":\"xterm.js: \")+t,...i)}trace(e,...t){this._logLevel<=o.LogLevelEnum.TRACE&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,e,t)}debug(e,...t){this._logLevel<=o.LogLevelEnum.DEBUG&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,e,t)}info(e,...t){this._logLevel<=o.LogLevelEnum.INFO&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,e,t)}warn(e,...t){this._logLevel<=o.LogLevelEnum.WARN&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,e,t)}error(e,...t){this._logLevel<=o.LogLevelEnum.ERROR&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,e,t)}};t.LogService=c=s([r(0,o.IOptionsService)],c),t.setTraceLogger=function(e){h=e},t.traceCall=function(e,t,i){if(\"function\"!=typeof i.value)throw new Error(\"not supported\");const s=i.value;i.value=function(...e){if(h.logLevel!==o.LogLevelEnum.TRACE)return s.apply(this,e);h.trace(`GlyphRenderer#${s.name}(${e.map((e=>JSON.stringify(e))).join(\", \")})`);const t=s.apply(this,e);return h.trace(`GlyphRenderer#${s.name} return`,t),t}}},7302:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.OptionsService=t.DEFAULT_OPTIONS=void 0;const s=i(8460),r=i(844),n=i(6114);t.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:\"block\",cursorWidth:1,cursorInactiveStyle:\"outline\",customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:\"alt\",fastScrollSensitivity:5,fontFamily:\"courier-new, courier, monospace\",fontSize:15,fontWeight:\"normal\",fontWeightBold:\"bold\",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:\"info\",logger:null,scrollback:1e3,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},rescaleOverlappingGlyphs:!1,rightClickSelectsWord:n.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:\" ()[]{}',\\\"`\",altClickMovesCursor:!0,convertEol:!1,termName:\"xterm\",cancelEvents:!1,overviewRulerWidth:0};const o=[\"normal\",\"bold\",\"100\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"];class a extends r.Disposable{constructor(e){super(),this._onOptionChange=this.register(new s.EventEmitter),this.onOptionChange=this._onOptionChange.event;const i={...t.DEFAULT_OPTIONS};for(const t in e)if(t in i)try{const s=e[t];i[t]=this._sanitizeAndValidateOption(t,s)}catch(e){console.error(e)}this.rawOptions=i,this.options={...i},this._setupOptions(),this.register((0,r.toDisposable)((()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null})))}onSpecificOptionChange(e,t){return this.onOptionChange((i=>{i===e&&t(this.rawOptions[e])}))}onMultipleOptionChange(e,t){return this.onOptionChange((i=>{-1!==e.indexOf(i)&&t()}))}_setupOptions(){const e=e=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key \"${e}\"`);return this.rawOptions[e]},i=(e,i)=>{if(!(e in t.DEFAULT_OPTIONS))throw new Error(`No option with key \"${e}\"`);i=this._sanitizeAndValidateOption(e,i),this.rawOptions[e]!==i&&(this.rawOptions[e]=i,this._onOptionChange.fire(e))};for(const t in this.rawOptions){const s={get:e.bind(this,t),set:i.bind(this,t)};Object.defineProperty(this.options,t,s)}}_sanitizeAndValidateOption(e,i){switch(e){case\"cursorStyle\":if(i||(i=t.DEFAULT_OPTIONS[e]),!function(e){return\"block\"===e||\"underline\"===e||\"bar\"===e}(i))throw new Error(`\"${i}\" is not a valid value for ${e}`);break;case\"wordSeparator\":i||(i=t.DEFAULT_OPTIONS[e]);break;case\"fontWeight\":case\"fontWeightBold\":if(\"number\"==typeof i&&1<=i&&i<=1e3)break;i=o.includes(i)?i:t.DEFAULT_OPTIONS[e];break;case\"cursorWidth\":i=Math.floor(i);case\"lineHeight\":case\"tabStopWidth\":if(i<1)throw new Error(`${e} cannot be less than 1, value: ${i}`);break;case\"minimumContrastRatio\":i=Math.max(1,Math.min(21,Math.round(10*i)/10));break;case\"scrollback\":if((i=Math.min(i,4294967295))<0)throw new Error(`${e} cannot be less than 0, value: ${i}`);break;case\"fastScrollSensitivity\":case\"scrollSensitivity\":if(i<=0)throw new Error(`${e} cannot be less than or equal to 0, value: ${i}`);break;case\"rows\":case\"cols\":if(!i&&0!==i)throw new Error(`${e} must be numeric, value: ${i}`);break;case\"windowsPty\":i=i??{}}return i}}t.OptionsService=a},2660:function(e,t,i){var s=this&&this.__decorate||function(e,t,i,s){var r,n=arguments.length,o=n<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,i):s;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)o=Reflect.decorate(e,t,i,s);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(o=(n<3?r(o):n>3?r(t,i,o):r(t,i))||o);return n>3&&o&&Object.defineProperty(t,i,o),o},r=this&&this.__param||function(e,t){return function(i,s){t(i,s,e)}};Object.defineProperty(t,\"__esModule\",{value:!0}),t.OscLinkService=void 0;const n=i(2585);let o=t.OscLinkService=class{constructor(e){this._bufferService=e,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(e){const t=this._bufferService.buffer;if(void 0===e.id){const i=t.addMarker(t.ybase+t.y),s={data:e,id:this._nextId++,lines:[i]};return i.onDispose((()=>this._removeMarkerFromLink(s,i))),this._dataByLinkId.set(s.id,s),s.id}const i=e,s=this._getEntryIdKey(i),r=this._entriesWithId.get(s);if(r)return this.addLineToLink(r.id,t.ybase+t.y),r.id;const n=t.addMarker(t.ybase+t.y),o={id:this._nextId++,key:this._getEntryIdKey(i),data:i,lines:[n]};return n.onDispose((()=>this._removeMarkerFromLink(o,n))),this._entriesWithId.set(o.key,o),this._dataByLinkId.set(o.id,o),o.id}addLineToLink(e,t){const i=this._dataByLinkId.get(e);if(i&&i.lines.every((e=>e.line!==t))){const e=this._bufferService.buffer.addMarker(t);i.lines.push(e),e.onDispose((()=>this._removeMarkerFromLink(i,e)))}}getLinkData(e){return this._dataByLinkId.get(e)?.data}_getEntryIdKey(e){return`${e.id};;${e.uri}`}_removeMarkerFromLink(e,t){const i=e.lines.indexOf(t);-1!==i&&(e.lines.splice(i,1),0===e.lines.length&&(void 0!==e.data.id&&this._entriesWithId.delete(e.key),this._dataByLinkId.delete(e.id)))}};t.OscLinkService=o=s([r(0,n.IBufferService)],o)},8343:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.createDecorator=t.getServiceDependencies=t.serviceRegistry=void 0;const i=\"di$target\",s=\"di$dependencies\";t.serviceRegistry=new Map,t.getServiceDependencies=function(e){return e[s]||[]},t.createDecorator=function(e){if(t.serviceRegistry.has(e))return t.serviceRegistry.get(e);const r=function(e,t,n){if(3!==arguments.length)throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");!function(e,t,r){t[i]===t?t[s].push({id:e,index:r}):(t[s]=[{id:e,index:r}],t[i]=t)}(r,e,n)};return r.toString=()=>e,t.serviceRegistry.set(e,r),r}},2585:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.IDecorationService=t.IUnicodeService=t.IOscLinkService=t.IOptionsService=t.ILogService=t.LogLevelEnum=t.IInstantiationService=t.ICharsetService=t.ICoreService=t.ICoreMouseService=t.IBufferService=void 0;const s=i(8343);var r;t.IBufferService=(0,s.createDecorator)(\"BufferService\"),t.ICoreMouseService=(0,s.createDecorator)(\"CoreMouseService\"),t.ICoreService=(0,s.createDecorator)(\"CoreService\"),t.ICharsetService=(0,s.createDecorator)(\"CharsetService\"),t.IInstantiationService=(0,s.createDecorator)(\"InstantiationService\"),function(e){e[e.TRACE=0]=\"TRACE\",e[e.DEBUG=1]=\"DEBUG\",e[e.INFO=2]=\"INFO\",e[e.WARN=3]=\"WARN\",e[e.ERROR=4]=\"ERROR\",e[e.OFF=5]=\"OFF\"}(r||(t.LogLevelEnum=r={})),t.ILogService=(0,s.createDecorator)(\"LogService\"),t.IOptionsService=(0,s.createDecorator)(\"OptionsService\"),t.IOscLinkService=(0,s.createDecorator)(\"OscLinkService\"),t.IUnicodeService=(0,s.createDecorator)(\"UnicodeService\"),t.IDecorationService=(0,s.createDecorator)(\"DecorationService\")},1480:(e,t,i)=>{Object.defineProperty(t,\"__esModule\",{value:!0}),t.UnicodeService=void 0;const s=i(8460),r=i(225);class n{static extractShouldJoin(e){return 0!=(1&e)}static extractWidth(e){return e>>1&3}static extractCharKind(e){return e>>3}static createPropertyValue(e,t,i=!1){return(16777215&e)<<3|(3&t)<<1|(i?1:0)}constructor(){this._providers=Object.create(null),this._active=\"\",this._onChange=new s.EventEmitter,this.onChange=this._onChange.event;const e=new r.UnicodeV6;this.register(e),this._active=e.version,this._activeProvider=e}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(e){if(!this._providers[e])throw new Error(`unknown Unicode version \"${e}\"`);this._active=e,this._activeProvider=this._providers[e],this._onChange.fire(e)}register(e){this._providers[e.version]=e}wcwidth(e){return this._activeProvider.wcwidth(e)}getStringCellWidth(e){let t=0,i=0;const s=e.length;for(let r=0;r<s;++r){let o=e.charCodeAt(r);if(55296<=o&&o<=56319){if(++r>=s)return t+this.wcwidth(o);const i=e.charCodeAt(r);56320<=i&&i<=57343?o=1024*(o-55296)+i-56320+65536:t+=this.wcwidth(i)}const a=this.charProperties(o,i);let h=n.extractWidth(a);n.extractShouldJoin(a)&&(h-=n.extractWidth(i)),t+=h,i=a}return t}charProperties(e,t){return this._activeProvider.charProperties(e,t)}}t.UnicodeService=n}},t={};function i(s){var r=t[s];if(void 0!==r)return r.exports;var n=t[s]={exports:{}};return e[s].call(n.exports,n,n.exports,i),n.exports}var s={};return(()=>{var e=s;Object.defineProperty(e,\"__esModule\",{value:!0}),e.Terminal=void 0;const t=i(9042),r=i(3236),n=i(844),o=i(5741),a=i(8285),h=i(7975),c=i(7090),l=[\"cols\",\"rows\"];class d extends n.Disposable{constructor(e){super(),this._core=this.register(new r.Terminal(e)),this._addonManager=this.register(new o.AddonManager),this._publicOptions={...this._core.options};const t=e=>this._core.options[e],i=(e,t)=>{this._checkReadonlyOptions(e),this._core.options[e]=t};for(const e in this._core.options){const s={get:t.bind(this,e),set:i.bind(this,e)};Object.defineProperty(this._publicOptions,e,s)}}_checkReadonlyOptions(e){if(l.includes(e))throw new Error(`Option \"${e}\" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error(\"You must set the allowProposedApi option to true to use proposed API\")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new h.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new c.UnicodeApi(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=this.register(new a.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){const e=this._core.coreService.decPrivateModes;let t=\"none\";switch(this._core.coreMouseService.activeProtocol){case\"X10\":t=\"x10\";break;case\"VT200\":t=\"vt200\";break;case\"DRAG\":t=\"drag\";break;case\"ANY\":t=\"any\"}return{applicationCursorKeysMode:e.applicationCursorKeys,applicationKeypadMode:e.applicationKeypad,bracketedPasteMode:e.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:t,originMode:e.origin,reverseWraparoundMode:e.reverseWraparound,sendFocusMode:e.sendFocus,wraparoundMode:e.wraparound}}get options(){return this._publicOptions}set options(e){for(const t in e)this._publicOptions[t]=e[t]}blur(){this._core.blur()}focus(){this._core.focus()}input(e,t=!0){this._core.input(e,t)}resize(e,t){this._verifyIntegers(e,t),this._core.resize(e,t)}open(e){this._core.open(e)}attachCustomKeyEventHandler(e){this._core.attachCustomKeyEventHandler(e)}attachCustomWheelEventHandler(e){this._core.attachCustomWheelEventHandler(e)}registerLinkProvider(e){return this._core.registerLinkProvider(e)}registerCharacterJoiner(e){return this._checkProposedApi(),this._core.registerCharacterJoiner(e)}deregisterCharacterJoiner(e){this._checkProposedApi(),this._core.deregisterCharacterJoiner(e)}registerMarker(e=0){return this._verifyIntegers(e),this._core.registerMarker(e)}registerDecoration(e){return this._checkProposedApi(),this._verifyPositiveIntegers(e.x??0,e.width??0,e.height??0),this._core.registerDecoration(e)}hasSelection(){return this._core.hasSelection()}select(e,t,i){this._verifyIntegers(e,t,i),this._core.select(e,t,i)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(e,t){this._verifyIntegers(e,t),this._core.selectLines(e,t)}dispose(){super.dispose()}scrollLines(e){this._verifyIntegers(e),this._core.scrollLines(e)}scrollPages(e){this._verifyIntegers(e),this._core.scrollPages(e)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(e){this._verifyIntegers(e),this._core.scrollToLine(e)}clear(){this._core.clear()}write(e,t){this._core.write(e,t)}writeln(e,t){this._core.write(e),this._core.write(\"\\r\\n\",t)}paste(e){this._core.paste(e)}refresh(e,t){this._verifyIntegers(e,t),this._core.refresh(e,t)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(e){this._addonManager.loadAddon(this,e)}static get strings(){return t}_verifyIntegers(...e){for(const t of e)if(t===1/0||isNaN(t)||t%1!=0)throw new Error(\"This API only accepts integers\")}_verifyPositiveIntegers(...e){for(const t of e)if(t&&(t===1/0||isNaN(t)||t%1!=0||t<0))throw new Error(\"This API only accepts positive integers\")}}e.Terminal=d})(),s})()));\n//# sourceMappingURL=xterm.js.map","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*\n* React Tooltip\n* {@link https://github.com/ReactTooltip/react-tooltip}\n* @copyright ReactTooltip Team\n* @license MIT\n*/\nimport e,{useLayoutEffect as t,useEffect as o,createContext as r,useState as l,useCallback as n,useMemo as i,useContext as c,useRef as s,useImperativeHandle as a}from\"react\";import{arrow as u,computePosition as d,offset as p,flip as v,shift as m,autoUpdate as f}from\"@floating-ui/dom\";import y from\"classnames\";const h=\"react-tooltip-core-styles\",w=\"react-tooltip-base-styles\",b={core:!1,base:!1};function S({css:e,id:t=w,type:o=\"base\",ref:r}){var l,n;if(!e||\"undefined\"==typeof document||b[o])return;if(\"core\"===o&&\"undefined\"!=typeof process&&(null===(l=null===process||void 0===process?void 0:process.env)||void 0===l?void 0:l.REACT_TOOLTIP_DISABLE_CORE_STYLES))return;if(\"base\"!==o&&\"undefined\"!=typeof process&&(null===(n=null===process||void 0===process?void 0:process.env)||void 0===n?void 0:n.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;\"core\"===o&&(t=h),r||(r={});const{insertAt:i}=r;if(document.getElementById(t))return;const c=document.head||document.getElementsByTagName(\"head\")[0],s=document.createElement(\"style\");s.id=t,s.type=\"text/css\",\"top\"===i&&c.firstChild?c.insertBefore(s,c.firstChild):c.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e)),b[o]=!0}function g({type:e=\"base\",id:t=w}={}){if(!b[e])return;\"core\"===e&&(t=h);const o=document.getElementById(t);\"style\"===(null==o?void 0:o.tagName)?null==o||o.remove():console.warn(`[react-tooltip] Failed to remove 'style' element with id '${t}'. Call \\`injectStyle()\\` first`),b[e]=!1}const E=async({elementReference:e=null,tooltipReference:t=null,tooltipArrowReference:o=null,place:r=\"top\",offset:l=10,strategy:n=\"absolute\",middlewares:i=[p(Number(l)),v({fallbackAxisSideDirection:\"start\"}),m({padding:5})],border:c,arrowSize:s=8})=>{if(!e)return{tooltipStyles:{},tooltipArrowStyles:{},place:r};if(null===t)return{tooltipStyles:{},tooltipArrowStyles:{},place:r};const a=i;return o?(a.push(u({element:o,padding:5})),d(e,t,{placement:r,strategy:n,middleware:a}).then((({x:e,y:t,placement:o,middlewareData:r})=>{var l,n;const i={left:`${e}px`,top:`${t}px`,border:c},{x:a,y:u}=null!==(l=r.arrow)&&void 0!==l?l:{x:0,y:0},d=null!==(n={top:\"bottom\",right:\"left\",bottom:\"top\",left:\"right\"}[o.split(\"-\")[0]])&&void 0!==n?n:\"bottom\",p=c&&{borderBottom:c,borderRight:c};let v=0;if(c){const e=`${c}`.match(/(\\d+)px/);v=(null==e?void 0:e[1])?Number(e[1]):1}return{tooltipStyles:i,tooltipArrowStyles:{left:null!=a?`${a}px`:\"\",top:null!=u?`${u}px`:\"\",right:\"\",bottom:\"\",...p,[d]:`-${s/2+v}px`},place:o}}))):d(e,t,{placement:\"bottom\",strategy:n,middleware:a}).then((({x:e,y:t,placement:o})=>({tooltipStyles:{left:`${e}px`,top:`${t}px`},tooltipArrowStyles:{},place:o})))},A=(e,t)=>!(\"CSS\"in window&&\"supports\"in window.CSS)||window.CSS.supports(e,t),_=(e,t,o)=>{let r=null;const l=function(...l){const n=()=>{r=null,o||e.apply(this,l)};o&&!r&&(e.apply(this,l),r=setTimeout(n,t)),o||(r&&clearTimeout(r),r=setTimeout(n,t))};return l.cancel=()=>{r&&(clearTimeout(r),r=null)},l},O=e=>null!==e&&!Array.isArray(e)&&\"object\"==typeof e,k=(e,t)=>{if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every(((e,o)=>k(e,t[o])));if(Array.isArray(e)!==Array.isArray(t))return!1;if(!O(e)||!O(t))return e===t;const o=Object.keys(e),r=Object.keys(t);return o.length===r.length&&o.every((o=>k(e[o],t[o])))},T=e=>{if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;const t=getComputedStyle(e);return[\"overflow\",\"overflow-x\",\"overflow-y\"].some((e=>{const o=t.getPropertyValue(e);return\"auto\"===o||\"scroll\"===o}))},L=e=>{if(!e)return null;let t=e.parentElement;for(;t;){if(T(t))return t;t=t.parentElement}return document.scrollingElement||document.documentElement},C=\"undefined\"!=typeof window?t:o,R=e=>{e.current&&(clearTimeout(e.current),e.current=null)},x=\"DEFAULT_TOOLTIP_ID\",N={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},$=r({getTooltipData:()=>N}),j=({children:t})=>{const[o,r]=l({[x]:new Set}),[c,s]=l({[x]:{current:null}}),a=(e,...t)=>{r((o=>{var r;const l=null!==(r=o[e])&&void 0!==r?r:new Set;return t.forEach((e=>l.add(e))),{...o,[e]:new Set(l)}}))},u=(e,...t)=>{r((o=>{const r=o[e];return r?(t.forEach((e=>r.delete(e))),{...o}):o}))},d=n(((e=x)=>{var t,r;return{anchorRefs:null!==(t=o[e])&&void 0!==t?t:new Set,activeAnchor:null!==(r=c[e])&&void 0!==r?r:{current:null},attach:(...t)=>a(e,...t),detach:(...t)=>u(e,...t),setActiveAnchor:t=>((e,t)=>{s((o=>{var r;return(null===(r=o[e])||void 0===r?void 0:r.current)===t.current?o:{...o,[e]:t}}))})(e,t)}}),[o,c,a,u]),p=i((()=>({getTooltipData:d})),[d]);return e.createElement($.Provider,{value:p},t)};function I(e=x){return c($).getTooltipData(e)}const z=({tooltipId:t,children:r,className:l,place:n,content:i,html:c,variant:a,offset:u,wrapper:d,events:p,positionStrategy:v,delayShow:m,delayHide:f})=>{const{attach:h,detach:w}=I(t),b=s(null);return o((()=>(h(b),()=>{w(b)})),[]),e.createElement(\"span\",{ref:b,className:y(\"react-tooltip-wrapper\",l),\"data-tooltip-place\":n,\"data-tooltip-content\":i,\"data-tooltip-html\":c,\"data-tooltip-variant\":a,\"data-tooltip-offset\":u,\"data-tooltip-wrapper\":d,\"data-tooltip-events\":p,\"data-tooltip-position-strategy\":v,\"data-tooltip-delay-show\":m,\"data-tooltip-delay-hide\":f},r)};var B={tooltip:\"core-styles-module_tooltip__3vRRp\",fixed:\"core-styles-module_fixed__pcSol\",arrow:\"core-styles-module_arrow__cvMwQ\",noArrow:\"core-styles-module_noArrow__xock6\",clickable:\"core-styles-module_clickable__ZuTTB\",show:\"core-styles-module_show__Nt9eE\",closing:\"core-styles-module_closing__sGnxF\"},D={tooltip:\"styles-module_tooltip__mnnfp\",arrow:\"styles-module_arrow__K0L3T\",dark:\"styles-module_dark__xNqje\",light:\"styles-module_light__Z6W-X\",success:\"styles-module_success__A2AKt\",warning:\"styles-module_warning__SCK0X\",error:\"styles-module_error__JvumD\",info:\"styles-module_info__BWdHW\"};const q=({forwardRef:t,id:r,className:i,classNameArrow:c,variant:u=\"dark\",anchorId:d,anchorSelect:p,place:v=\"top\",offset:m=10,events:h=[\"hover\"],openOnClick:w=!1,positionStrategy:b=\"absolute\",middlewares:S,wrapper:g,delayShow:A=0,delayHide:O=0,float:T=!1,hidden:x=!1,noArrow:N=!1,clickable:$=!1,closeOnEsc:j=!1,closeOnScroll:z=!1,closeOnResize:q=!1,openEvents:H,closeEvents:M,globalCloseEvents:W,imperativeModeOnly:P,style:V,position:F,afterShow:K,afterHide:U,disableTooltip:X,content:Y,contentWrapperRef:G,isOpen:Z,defaultIsOpen:J=!1,setIsOpen:Q,previousActiveAnchor:ee,activeAnchor:te,setActiveAnchor:oe,border:re,opacity:le,arrowColor:ne,arrowSize:ie=8,role:ce=\"tooltip\"})=>{var se;const ae=s(null),ue=s(null),de=s(null),pe=s(null),ve=s(null),[me,fe]=l({tooltipStyles:{},tooltipArrowStyles:{},place:v}),[ye,he]=l(!1),[we,be]=l(!1),[Se,ge]=l(null),Ee=s(!1),Ae=s(null),{anchorRefs:_e,setActiveAnchor:Oe}=I(r),ke=s(!1),[Te,Le]=l([]),Ce=s(!1),Re=w||h.includes(\"click\"),xe=Re||(null==H?void 0:H.click)||(null==H?void 0:H.dblclick)||(null==H?void 0:H.mousedown),Ne=H?{...H}:{mouseover:!0,focus:!0,mouseenter:!1,click:!1,dblclick:!1,mousedown:!1};!H&&Re&&Object.assign(Ne,{mouseenter:!1,focus:!1,mouseover:!1,click:!0});const $e=M?{...M}:{mouseout:!0,blur:!0,mouseleave:!1,click:!1,dblclick:!1,mouseup:!1};!M&&Re&&Object.assign($e,{mouseleave:!1,blur:!1,mouseout:!1});const je=W?{...W}:{escape:j||!1,scroll:z||!1,resize:q||!1,clickOutsideAnchor:xe||!1};P&&(Object.assign(Ne,{mouseover:!1,focus:!1,mouseenter:!1,click:!1,dblclick:!1,mousedown:!1}),Object.assign($e,{mouseout:!1,blur:!1,mouseleave:!1,click:!1,dblclick:!1,mouseup:!1}),Object.assign(je,{escape:!1,scroll:!1,resize:!1,clickOutsideAnchor:!1})),C((()=>(Ce.current=!0,()=>{Ce.current=!1})),[]);const Ie=e=>{Ce.current&&(e&&be(!0),setTimeout((()=>{Ce.current&&(null==Q||Q(e),void 0===Z&&he(e))}),10))};o((()=>{if(r){if(ye){t(ee);const o=e(te),l=[...new Set([...o,r])].filter(Boolean).join(\" \");null==te||te.setAttribute(\"aria-describedby\",l)}else t(te);return()=>{t(te),t(ee)}}function e(e){var t;return(null===(t=null==e?void 0:e.getAttribute(\"aria-describedby\"))||void 0===t?void 0:t.split(\" \"))||[]}function t(t){const o=e(t).filter((e=>e!==r));o.length?null==t||t.setAttribute(\"aria-describedby\",o.join(\" \")):null==t||t.removeAttribute(\"aria-describedby\")}}),[te,ye,r,ee]),o((()=>{if(void 0===Z)return()=>null;Z&&be(!0);const e=setTimeout((()=>{he(Z)}),10);return()=>{clearTimeout(e)}}),[Z]),o((()=>{if(ye!==Ee.current)if(R(ve),Ee.current=ye,ye)null==K||K();else{const e=(e=>{const t=e.match(/^([\\d.]+)(ms|s)$/);if(!t)return 0;const[,o,r]=t;return Number(o)*(\"ms\"===r?1:1e3)})(getComputedStyle(document.body).getPropertyValue(\"--rt-transition-show-delay\"));ve.current=setTimeout((()=>{be(!1),ge(null),null==U||U()}),e+25)}}),[ye]);const ze=e=>{fe((t=>k(t,e)?t:e))},Be=(e=A)=>{R(de),we?Ie(!0):de.current=setTimeout((()=>{Ie(!0)}),e)},De=(e=O)=>{R(pe),pe.current=setTimeout((()=>{ke.current||Ie(!1)}),e)},qe=e=>{var t;if(!e)return;const o=null!==(t=e.currentTarget)&&void 0!==t?t:e.target;if(!(null==o?void 0:o.isConnected))return oe(null),void Oe({current:null});A?Be():Ie(!0),oe(o),Oe({current:o}),R(pe)},He=()=>{$?De(O||100):O?De():Ie(!1),R(de)},Me=({x:e,y:t})=>{var o;const r={getBoundingClientRect:()=>({x:e,y:t,width:0,height:0,top:t,left:e,right:e,bottom:t})};E({place:null!==(o=null==Se?void 0:Se.place)&&void 0!==o?o:v,offset:m,elementReference:r,tooltipReference:ae.current,tooltipArrowReference:ue.current,strategy:b,middlewares:S,border:re,arrowSize:ie}).then((e=>{ze(e)}))},We=e=>{if(!e)return;const t=e,o={x:t.clientX,y:t.clientY};Me(o),Ae.current=o},Pe=e=>{var t;if(!ye)return;const o=e.target;if(!o.isConnected)return;if(null===(t=ae.current)||void 0===t?void 0:t.contains(o))return;[document.querySelector(`[id='${d}']`),...Te].some((e=>null==e?void 0:e.contains(o)))||(Ie(!1),R(de))},Ve=_(qe,50,!0),Fe=_(He,50,!0),Ke=e=>{Fe.cancel(),Ve(e)},Ue=()=>{Ve.cancel(),Fe()},Xe=n((()=>{var e,t;const o=null!==(e=null==Se?void 0:Se.position)&&void 0!==e?e:F;o?Me(o):T?Ae.current&&Me(Ae.current):(null==te?void 0:te.isConnected)&&E({place:null!==(t=null==Se?void 0:Se.place)&&void 0!==t?t:v,offset:m,elementReference:te,tooltipReference:ae.current,tooltipArrowReference:ue.current,strategy:b,middlewares:S,border:re,arrowSize:ie}).then((e=>{Ce.current&&ze(e)}))}),[ye,te,Y,V,v,null==Se?void 0:Se.place,m,b,F,null==Se?void 0:Se.position,T,ie]);o((()=>{var e,t;const o=new Set(_e);Te.forEach((e=>{(null==X?void 0:X(e))||o.add({current:e})}));const r=document.querySelector(`[id='${d}']`);r&&!(null==X?void 0:X(r))&&o.add({current:r});const l=()=>{Ie(!1)},n=L(te),i=L(ae.current);je.scroll&&(window.addEventListener(\"scroll\",l),null==n||n.addEventListener(\"scroll\",l),null==i||i.addEventListener(\"scroll\",l));let c=null;je.resize?window.addEventListener(\"resize\",l):te&&ae.current&&(c=f(te,ae.current,Xe,{ancestorResize:!0,elementResize:!0,layoutShift:!0}));const s=e=>{\"Escape\"===e.key&&Ie(!1)};je.escape&&window.addEventListener(\"keydown\",s),je.clickOutsideAnchor&&window.addEventListener(\"click\",Pe);const a=[],u=e=>Boolean((null==e?void 0:e.target)&&(null==te?void 0:te.contains(e.target))),p=e=>{ye&&u(e)||qe(e)},v=e=>{ye&&u(e)&&He()},m=[\"mouseover\",\"mouseout\",\"mouseenter\",\"mouseleave\",\"focus\",\"blur\"],y=[\"click\",\"dblclick\",\"mousedown\",\"mouseup\"];Object.entries(Ne).forEach((([e,t])=>{t&&(m.includes(e)?a.push({event:e,listener:Ke}):y.includes(e)&&a.push({event:e,listener:p}))})),Object.entries($e).forEach((([e,t])=>{t&&(m.includes(e)?a.push({event:e,listener:Ue}):y.includes(e)&&a.push({event:e,listener:v}))})),T&&a.push({event:\"pointermove\",listener:We});const h=()=>{ke.current=!0},w=()=>{ke.current=!1,He()},b=$&&($e.mouseout||$e.mouseleave);return b&&(null===(e=ae.current)||void 0===e||e.addEventListener(\"mouseover\",h),null===(t=ae.current)||void 0===t||t.addEventListener(\"mouseout\",w)),a.forEach((({event:e,listener:t})=>{o.forEach((o=>{var r;null===(r=o.current)||void 0===r||r.addEventListener(e,t)}))})),()=>{var e,t;je.scroll&&(window.removeEventListener(\"scroll\",l),null==n||n.removeEventListener(\"scroll\",l),null==i||i.removeEventListener(\"scroll\",l)),je.resize?window.removeEventListener(\"resize\",l):null==c||c(),je.clickOutsideAnchor&&window.removeEventListener(\"click\",Pe),je.escape&&window.removeEventListener(\"keydown\",s),b&&(null===(e=ae.current)||void 0===e||e.removeEventListener(\"mouseover\",h),null===(t=ae.current)||void 0===t||t.removeEventListener(\"mouseout\",w)),a.forEach((({event:e,listener:t})=>{o.forEach((o=>{var r;null===(r=o.current)||void 0===r||r.removeEventListener(e,t)}))}))}}),[te,Xe,we,_e,Te,H,M,W,Re,A,O]),o((()=>{var e,t;let o=null!==(t=null!==(e=null==Se?void 0:Se.anchorSelect)&&void 0!==e?e:p)&&void 0!==t?t:\"\";!o&&r&&(o=`[data-tooltip-id='${r.replace(/'/g,\"\\\\'\")}']`);const l=new MutationObserver((e=>{const t=[],l=[];e.forEach((e=>{if(\"attributes\"===e.type&&\"data-tooltip-id\"===e.attributeName){e.target.getAttribute(\"data-tooltip-id\")===r?t.push(e.target):e.oldValue===r&&l.push(e.target)}if(\"childList\"===e.type){if(te){const t=[...e.removedNodes].filter((e=>1===e.nodeType));if(o)try{l.push(...t.filter((e=>e.matches(o)))),l.push(...t.flatMap((e=>[...e.querySelectorAll(o)])))}catch(e){}t.some((e=>{var t;return!!(null===(t=null==e?void 0:e.contains)||void 0===t?void 0:t.call(e,te))&&(be(!1),Ie(!1),oe(null),R(de),R(pe),!0)}))}if(o)try{const r=[...e.addedNodes].filter((e=>1===e.nodeType));t.push(...r.filter((e=>e.matches(o)))),t.push(...r.flatMap((e=>[...e.querySelectorAll(o)])))}catch(e){}}})),(t.length||l.length)&&Le((e=>[...e.filter((e=>!l.includes(e))),...t]))}));return l.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[\"data-tooltip-id\"],attributeOldValue:!0}),()=>{l.disconnect()}}),[r,p,null==Se?void 0:Se.anchorSelect,te]),o((()=>{Xe()}),[Xe]),o((()=>{if(!(null==G?void 0:G.current))return()=>null;const e=new ResizeObserver((()=>{setTimeout((()=>Xe()))}));return e.observe(G.current),()=>{e.disconnect()}}),[Y,null==G?void 0:G.current]),o((()=>{var e;const t=document.querySelector(`[id='${d}']`),o=[...Te,t];te&&o.includes(te)||oe(null!==(e=Te[0])&&void 0!==e?e:t)}),[d,Te,te]),o((()=>(J&&Ie(!0),()=>{R(de),R(pe)})),[]),o((()=>{var e;let t=null!==(e=null==Se?void 0:Se.anchorSelect)&&void 0!==e?e:p;if(!t&&r&&(t=`[data-tooltip-id='${r.replace(/'/g,\"\\\\'\")}']`),t)try{const e=Array.from(document.querySelectorAll(t));Le(e)}catch(e){Le([])}}),[r,p,null==Se?void 0:Se.anchorSelect]),o((()=>{de.current&&(R(de),Be(A))}),[A]);const Ye=null!==(se=null==Se?void 0:Se.content)&&void 0!==se?se:Y,Ge=ye&&Object.keys(me.tooltipStyles).length>0;return a(t,(()=>({open:e=>{if(null==e?void 0:e.anchorSelect)try{document.querySelector(e.anchorSelect)}catch(t){return void console.warn(`[react-tooltip] \"${e.anchorSelect}\" is not a valid CSS selector`)}ge(null!=e?e:null),(null==e?void 0:e.delay)?Be(e.delay):Ie(!0)},close:e=>{(null==e?void 0:e.delay)?De(e.delay):Ie(!1)},activeAnchor:te,place:me.place,isOpen:Boolean(we&&!x&&Ye&&Ge)}))),we&&!x&&Ye?e.createElement(g,{id:r,role:ce,className:y(\"react-tooltip\",B.tooltip,D.tooltip,D[u],i,`react-tooltip__place-${me.place}`,B[Ge?\"show\":\"closing\"],Ge?\"react-tooltip__show\":\"react-tooltip__closing\",\"fixed\"===b&&B.fixed,$&&B.clickable),onTransitionEnd:e=>{R(ve),ye||\"opacity\"!==e.propertyName||(be(!1),ge(null),null==U||U())},style:{...V,...me.tooltipStyles,opacity:void 0!==le&&Ge?le:void 0},ref:ae},Ye,e.createElement(g,{className:y(\"react-tooltip-arrow\",B.arrow,D.arrow,c,N&&B.noArrow),style:{...me.tooltipArrowStyles,background:ne?`linear-gradient(to right bottom, transparent 50%, ${ne} 50%)`:void 0,\"--rt-arrow-size\":`${ie}px`},ref:ue})):null},H=({content:t})=>e.createElement(\"span\",{dangerouslySetInnerHTML:{__html:t}}),M=e.forwardRef((({id:t,anchorId:r,anchorSelect:n,content:i,html:c,render:a,className:u,classNameArrow:d,variant:p=\"dark\",place:v=\"top\",offset:m=10,wrapper:f=\"div\",children:h=null,events:w=[\"hover\"],openOnClick:b=!1,positionStrategy:S=\"absolute\",middlewares:g,delayShow:E=0,delayHide:_=0,float:O=!1,hidden:k=!1,noArrow:T=!1,clickable:L=!1,closeOnEsc:C=!1,closeOnScroll:R=!1,closeOnResize:x=!1,openEvents:N,closeEvents:$,globalCloseEvents:j,imperativeModeOnly:z=!1,style:B,position:D,isOpen:M,defaultIsOpen:W=!1,disableStyleInjection:P=!1,border:V,opacity:F,arrowColor:K,arrowSize:U,setIsOpen:X,afterShow:Y,afterHide:G,disableTooltip:Z,role:J=\"tooltip\"},Q)=>{const[ee,te]=l(i),[oe,re]=l(c),[le,ne]=l(v),[ie,ce]=l(p),[se,ae]=l(m),[ue,de]=l(E),[pe,ve]=l(_),[me,fe]=l(O),[ye,he]=l(k),[we,be]=l(f),[Se,ge]=l(w),[Ee,Ae]=l(S),[_e,Oe]=l(null),[ke,Te]=l(null),Le=s(null),Ce=s(P),{anchorRefs:Re,activeAnchor:xe}=I(t),Ne=e=>null==e?void 0:e.getAttributeNames().reduce(((t,o)=>{var r;if(o.startsWith(\"data-tooltip-\")){t[o.replace(/^data-tooltip-/,\"\")]=null!==(r=null==e?void 0:e.getAttribute(o))&&void 0!==r?r:null}return t}),{}),$e=e=>{const t={place:e=>{var t;ne(null!==(t=e)&&void 0!==t?t:v)},content:e=>{te(null!=e?e:i)},html:e=>{re(null!=e?e:c)},variant:e=>{var t;ce(null!==(t=e)&&void 0!==t?t:p)},offset:e=>{ae(null===e?m:Number(e))},wrapper:e=>{var t;be(null!==(t=e)&&void 0!==t?t:f)},events:e=>{const t=null==e?void 0:e.split(\" \");ge(null!=t?t:w)},\"position-strategy\":e=>{var t;Ae(null!==(t=e)&&void 0!==t?t:S)},\"delay-show\":e=>{de(null===e?E:Number(e))},\"delay-hide\":e=>{ve(null===e?_:Number(e))},float:e=>{fe(null===e?O:\"true\"===e)},hidden:e=>{he(null===e?k:\"true\"===e)},\"class-name\":e=>{Oe(e)}};Object.values(t).forEach((e=>e(null))),Object.entries(e).forEach((([e,o])=>{var r;null===(r=t[e])||void 0===r||r.call(t,o)}))};o((()=>{te(i)}),[i]),o((()=>{re(c)}),[c]),o((()=>{ne(v)}),[v]),o((()=>{ce(p)}),[p]),o((()=>{ae(m)}),[m]),o((()=>{de(E)}),[E]),o((()=>{ve(_)}),[_]),o((()=>{fe(O)}),[O]),o((()=>{he(k)}),[k]),o((()=>{Ae(S)}),[S]),o((()=>{Ce.current!==P&&console.warn(\"[react-tooltip] Do not change `disableStyleInjection` dynamically.\")}),[P]),o((()=>{\"undefined\"!=typeof window&&window.dispatchEvent(new CustomEvent(\"react-tooltip-inject-styles\",{detail:{disableCore:\"core\"===P,disableBase:P}}))}),[]),o((()=>{var e;const o=new Set(Re);let l=n;if(!l&&t&&(l=`[data-tooltip-id='${t.replace(/'/g,\"\\\\'\")}']`),l)try{document.querySelectorAll(l).forEach((e=>{o.add({current:e})}))}catch(e){console.warn(`[react-tooltip] \"${l}\" is not a valid CSS selector`)}const i=document.querySelector(`[id='${r}']`);if(i&&o.add({current:i}),!o.size)return()=>null;const c=null!==(e=null!=ke?ke:i)&&void 0!==e?e:xe.current,s=new MutationObserver((e=>{e.forEach((e=>{var t;if(!c||\"attributes\"!==e.type||!(null===(t=e.attributeName)||void 0===t?void 0:t.startsWith(\"data-tooltip-\")))return;const o=Ne(c);$e(o)}))})),a={attributes:!0,childList:!1,subtree:!1};if(c){const e=Ne(c);$e(e),s.observe(c,a)}return()=>{s.disconnect()}}),[Re,xe,ke,r,n]),o((()=>{(null==B?void 0:B.border)&&console.warn(\"[react-tooltip] Do not set `style.border`. Use `border` prop instead.\"),V&&!A(\"border\",`${V}`)&&console.warn(`[react-tooltip] \"${V}\" is not a valid \\`border\\`.`),(null==B?void 0:B.opacity)&&console.warn(\"[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead.\"),F&&!A(\"opacity\",`${F}`)&&console.warn(`[react-tooltip] \"${F}\" is not a valid \\`opacity\\`.`)}),[]);let je=h;const Ie=s(null);if(a){const t=a({content:(null==ke?void 0:ke.getAttribute(\"data-tooltip-content\"))||ee||null,activeAnchor:ke});je=t?e.createElement(\"div\",{ref:Ie,className:\"react-tooltip-content-wrapper\"},t):null}else ee&&(je=ee);oe&&(je=e.createElement(H,{content:oe}));const ze={forwardRef:Q,id:t,anchorId:r,anchorSelect:n,className:y(u,_e),classNameArrow:d,content:je,contentWrapperRef:Ie,place:le,variant:ie,offset:se,wrapper:we,events:Se,openOnClick:b,positionStrategy:Ee,middlewares:g,delayShow:ue,delayHide:pe,float:me,hidden:ye,noArrow:T,clickable:L,closeOnEsc:C,closeOnScroll:R,closeOnResize:x,openEvents:N,closeEvents:$,globalCloseEvents:j,imperativeModeOnly:z,style:B,position:D,isOpen:M,defaultIsOpen:W,border:V,opacity:F,arrowColor:K,arrowSize:U,setIsOpen:X,afterShow:Y,afterHide:G,disableTooltip:Z,activeAnchor:ke,previousActiveAnchor:Le.current,setActiveAnchor:e=>{Te((t=>((null==e?void 0:e.isSameNode(t))||(Le.current=t),e)))},role:J};return e.createElement(q,{...ze})}));\"undefined\"!=typeof window&&window.addEventListener(\"react-tooltip-inject-styles\",(e=>{e.detail.disableCore||S({css:`:root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s;--rt-arrow-size:8px}.core-styles-module_tooltip__3vRRp{position:absolute;top:0;left:0;pointer-events:none;opacity:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit;z-index:-1}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}`,type:\"core\"}),e.detail.disableBase||S({css:`\n.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:var(--rt-arrow-size);height:var(--rt-arrow-size)}[class*='react-tooltip__place-top']>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*='react-tooltip__place-right']>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*='react-tooltip__place-bottom']>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*='react-tooltip__place-left']>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}`,type:\"base\"})}));export{M as Tooltip,j as TooltipProvider,z as TooltipWrapper,g as removeStyle};\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\n\nexport { mergeClasses, toKebabCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => {\n return createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n );\n }\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(`lucide-${toKebabCase(iconName)}`, className),\n ...props\n })\n );\n Component.displayName = `${iconName}`;\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Check = createLucideIcon(\"Check\", [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]]);\n\nexport { Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst CircleAlert = createLucideIcon(\"CircleAlert\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n]);\n\nexport { CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Copy = createLucideIcon(\"Copy\", [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n]);\n\nexport { Copy as default };\n//# sourceMappingURL=copy.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Moon = createLucideIcon(\"Moon\", [\n [\"path\", { d: \"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z\", key: \"a7tn18\" }]\n]);\n\nexport { Moon as default };\n//# sourceMappingURL=moon.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst RotateCcw = createLucideIcon(\"RotateCcw\", [\n [\"path\", { d: \"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\", key: \"1357e3\" }],\n [\"path\", { d: \"M3 3v5h5\", key: \"1xhq8a\" }]\n]);\n\nexport { RotateCcw as default };\n//# sourceMappingURL=rotate-ccw.js.map\n","/**\n * @license lucide-react v0.469.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst Sun = createLucideIcon(\"Sun\", [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"4\", key: \"4exip2\" }],\n [\"path\", { d: \"M12 2v2\", key: \"tus03m\" }],\n [\"path\", { d: \"M12 20v2\", key: \"1lh1kg\" }],\n [\"path\", { d: \"m4.93 4.93 1.41 1.41\", key: \"149t6j\" }],\n [\"path\", { d: \"m17.66 17.66 1.41 1.41\", key: \"ptbguv\" }],\n [\"path\", { d: \"M2 12h2\", key: \"1t8f8n\" }],\n [\"path\", { d: \"M20 12h2\", key: \"1q8mjw\" }],\n [\"path\", { d: \"m6.34 17.66-1.41 1.41\", key: \"1m8zz5\" }],\n [\"path\", { d: \"m19.07 4.93-1.41 1.41\", key: \"1shlcs\" }]\n]);\n\nexport { Sun as default };\n//# sourceMappingURL=sun.js.map\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAmQAAAGYCAYAAADsqf5DAAAQAElEQVR4AeydB4AeRfn/vzOzu2+5kksPvSuCiCWiIIoRGwIqoBEUFURBARWkqiCRotKV3qTbAjaaoEAQEBGDUqSGECCk5/rbdnfK/zvvJf7Ev2ISkstdbjbvc7NldnfmM7PzfPeZ9y4SYQkEAoFAIBAIBAKBQCAQWKsEgiBbq/jDzQOBQCAQGCkEQj0DgUDg1QgEQfZqdMKxQCAQCAQCgUAgEAgEBoFAEGSDADncYmQQCLUMBAKBQCAQCARWlUAQZKtKLpwXCAQCgUAgEAgEAoHAaiKwEoJsNd0xXCYQCAQCgUAgEAgEAoFA4BUEgiB7BY6wEQgEAoFAILDWCYQCBAIjkEAQZCOw0UOVA4FAIBAIBAKBQGBoEQiCbGi1RyjNyCAQahkIBAKBQCAQCLyCQBBkr8ARNgKBQCAQCAQCgUAgEBh8AmtGkA1+PcIdA4FAIBAIBAKBQCAQGLYEgiAbtk0XCh4IBAKBQCAQCAQC6wqBIMjWlZYM9QgEAoFAIBAIBAKBYUsgCLJh23Sh4CODQKhlIBAIBAKBwEggEATZSGjlUMdAIBAIBAKBQCAQGNIE1rogG9J0QuECgUAgEAgEAoFAIBAYBAJBkA0C5HCLQCAQCAQCgbVOIBQgEBjSBIIgG9LNEwoXCAQCgUAgEAgEAiOBQBBkI6GVQx1HBoFQy0AgEAgEAoFhSyAIsmHbdKHggUAgEAgEAoFAILCuEBhOgmxdYR7qEQgEAoFAIBAIBAKBwCsIBEH2ChxhIxAIBAKBQCAQCAQCgcEnEATZ4DMPdwwEAoFAIBAIBAKBQOAVBIIgewWOsBEIjAwCoZaBQCAQCAQCQ4tAEGRDqz1CaQKBQCAQCAQCgUBgBBJYRwXZCGzJUOVAIBAIBAKBQCAQGLYEgiAbtk0XCh4IBAKBQCCw1gmEAgQCq4lAEGSrCWS4TCAQCAQCgUAgEAgEAqtKIAiyVSUXzgsERgaBUMtAIBAIBAKBQSAQBNkgQA63CAQCgUAgEAgEAoFA4NUIBEH2anTCsUAgEAgEAoFAIBAIBAaBQBBkgwA53CIQCAQCgUAgEAgEAoFXIxAE2avRCccCgUAgEAgEAoFAIBAYBAJBkA0C5HCLQGBkEAi1DAQCgUAgEFhVAkGQrSq5cF4gEAgEAoFAIBAIBAKriUAQZCsBMmQNBAKBQCAQCAQCgUBgTRAIgmxNUA3XDAQCgUAgEAgEVp1AOHMEEgiCbAQ2eqhyIBAIBAKBQCAQCAwtAkGQDa32CKUJBEYGgVDLQCAQCAQCgVcQCILsFTjCRiAQCAQCgUAgEAgEAoNPIAiyNcM8XDUQCAQCgUAgEAgEAoEVJhAE2QqjChkDgUAgEAgEAoGhRiCUZ10hEATZutKSoR6BQCAQCAQCgUAgMGwJBEE2bJsuFDwQGBkEQi0DgUAgEBgJBIIgGwmtHOoYCAQCgUAgEAgEAkOaQBBka715QgECgUAgEAgEAoFAYKQTCIJspPeAUP9AIBAIBAKBkUEg1HJIEwiCbEg3TyhcIBAIBAKBQCAQCIwEAkGQjYRWDnUMBEYGgVDLQCAQCASGLYEgyIZt04WCBwKBQCAQCAQCgcC6QiAIsuHUkqGsgUAgEAgEAoFAILBOEgiCbJ1s1lCpQCAQCAQCgUBg1QmEMwefQBBkg8883DEQCAQCgUAgEAgEAoFXEAiC7BU4wkYgEAiMDAKhloFAIBAIDC0CQZANrfYIpQkEAoFAIBAIBAKBEUggCLJ1tNFDtQKBQCAQCAQCgUBg+BAIgmz4tFUoaSAQCAQCgUAgMNQIhPKsJgJBkK0mkOEygUAgEAgEAoFAIBAIrCqBIMhWlVw4LxAIBEYGgVDLQCAQCAQGgUAQZIMAOdwiEAgEAoFAIBAIBAKBVyMQBNmr0RkZx0ItA4FAIBAIBAKBQGAtEwiCbC03QLh9IBAIBAKBQCAwMgiEWr4agSDIXo1OOBYIBAKBQCAQCAQCgcAgEAiCbBAgh1sEAoHAyCAQahkIBAKBwKoSCIJsVcmF8wKBQCAQCAQCgUAgEFhNBIIgW00gR8ZlQi0DgUAgEAgEAoFAYE0QCIJsTVAN1wwEAoFAIBAIBAKBVScwAs8MgmwENnqociAQCAQCgUAgEAgMLQJBkA2t9gilCQQCgZFBINQyEAgEAoFXEAiC7BU4wkYgEAgEAoFAIBAIBAKDTyAIssFnPjLuGGoZCAQCgUAgEAgEAitMIAiyFUYVMgYCgUAgEAgEAoHAUCOwrpQnCLJ1pSVDPQKBQCAQCAQCgUBg2BIIgmzYNl0oeCAQCIwMAqGWgUAgMBIIBEE2Elo51DEQCAQCgUAgEAgEhjSBIMiGdPOMjMKFWgYCgUAgEAgEAiOdQBBkI70HhPoHAoFAIBAIBAIjg8CQrmUQZEO6eULhAoFAIBAIBAKBQGAkEAiCbCS0cqhjIBAIjAwCoZaBQCAwbAkEQTZsmy4UPBAIBAKBQCAQCATWFQJBkK0rLTky6hFqGQgEAoFAIBAIrJMEgiBbJ5s1VCoQCAQCgUAgEAgEVp3A4J8ZBNngMw93DAQCgUAgEAgEAoFA4BUEgiB7BY6wEQgEAoHAyCAQahkIBAJDi0AQZEOrPUJpAoFAIBAIBAKBQGAEEgiCbAQ2+siocqhlIBAIBAKBQCAwfAgEQTZ82iqUNBAIBAKBQCAQCASGGoHVVJ4gyFYTyHCZQCAQCAQCgUAgEAgEVpVAEGSrSi6cFwgEAoHAyCAQahkIBAKDQCAIskGAHG4RCAQCgUAgEAgEAoHAqxEIguzV6IRjI4NAqGUgEAgEAoFAILCWCQRBtpYbINw+EAgEAoFAIBAIBEYGgVerZRBkr0YnHAsEAoFAIBAIBAKBQGAQCARBNgiQwy0CgUAgEBgZBEItA4FAYFUJBEG2quTCeYFAIBAIBAKBQCAQCKwmAkGQrSaQ4TIjg0CoZSAQCAQCgUAgsCYIBEG2JqiGawYCgUAgEAgEAoFAILASBP5NkK3EmSFrIBAIBAKBQCAQCAQCgcBqIRAE2WrBGC4SCAQCgUAgsFIEQuZAIBB4BYEgyF6BI2wEAoFAIBAIBAKBQCAw+ASCIBt85uGOI4NAqGUgEAgEAoFAILDCBIIgW2FUIWMgEAgEAoFAIBAIBAJrhsCqC7I1U55w1UAgEAgEAoFAIBAIBEYcgSDIRlyThwoHAoFAIDC8CITSBgIjgUAQZCOhlUMdA4FAIBAIBAKBQGBIEwiCbEg3TyjcyCAQahkIBAKBQCAw0gkEQTbSe0CofyAQCAQCgUAgEAisdQKDIsjWei1DAQKBQCAQCAQCgUAgEBjCBIIgG8KNE4oWCAQCgUAgsFIEQuZAYNgSCIJs2DZdKHggEAgEAoFAIBAIrCsEgiBbV1oy1GNkEAi1DAQCgUAgEFgnCQRBtk42a6hUIBAIBAKBQCAQCAwnAkNNkA0ndqGsgUAgEAgEAoFAIBAIrBYCQZCtFozhIoFAIBAIBAKrm8B059S0J55IZjoXO+eiGf9m3KeWmVj5e4czAoGhRSAIsqHVHqE0gUAgEAgEAiTgRdiDM+d8Zq7rOPniJ146dd+/PH7K5Q89fupVf336lAvu/se0K//07In73fHwt770+4dOOO6mP7yNwiyIMnILn+FLIAiy4dt2oeSBwKsSCAcDgeFM4N4/vxzNQ7z3PFk6en5h9LELSmOPnxu3Hbe4Zczx/R2Tvr04HvOdpS0Tv7skGnXSvDx+xz2AWtn6UsTJK//62OYn3z3zHWf+6bEdr5/T+c6bXq698+ezOt/526eXTH5oXm2jlb1myB8IrCqBIMhWlVw4LxAIBAKBQGCNEZjLK8uoxfX1G+S6gLbyJEhdhq4IxNzOqg5IRqERt6KBgmD2lf7csgDFh5bggGeytksfabRd+ofn+y694fG5l9309MLLbnj0uUtvfvyZ/Vb6ouGEQGAVCQxjQbaKNQ6nBQKBQCAQCAx5AqMSJdJGJke3dwjT0OhavBQRBCIL6GoNxShGva8m0loq5MoHx5r1r0eQ3TLZMB81afusff3tukXbm5aY0nY9snW7LlF645MvLx7PKNoqib3mDcKPQGAlCARBthKwQtZAIBAIBAKBwSIwnzIrjeqVPmHTOtoShQJy2EYPoHvhGt1o0SnKPJboOmUaVnrpFxANnYn+rIq+ehXGKUgZe9mHWBWtcHEmhHBY6SuHEwKBlScgV/6UcEYgEAgEAoFAILDmCQjKrKJQnKJ00P21piljGClzAIWYyBqQjTqPN+x7Ae5cuTIVJEQpliIWAsgNYsuLNAwafTWYeuZiB71yVwy5A4FVJyBX/dRwZiAQCKwjBEI1AoEhSUBp6VzNQKWA0goiE3Cpg2VATGgJZeGcNk5rZ29YhRqM4TmuWhVRI0NBa8h6jfdqoGgdZK45PaqZI3wCgcEhEATZ4HAOdwkEAoFAIBBYKQLrw6R+ijJjaijEdNOQgsIMjGgBld4KwInFgorFJ7lrZT+xgChkRoi+fud6ep1javv7na30OVfvt1JnK3vJkD8QWGUCI0OQrTKecGIgEAgEAoHAWiGwYD6EccI5S9HFSJVhOEwbCjFLQUYllUlEsgjlCpC2oO4BBFZysXMX6UJDL4r66k+L3v4nXV/3E6La+4SudD9lqj2zOkaVlqzkJUP2QGCVCQRBtsrowomBQCAQCAQCa5KATHtcVO+1qtZtRLVLy2q3QV+3cf29xvX16qha13lPt9G9/W5VvkP2wTdNbEx581ZXf+StWx+2x2Rvbzzsozu+6St7vWP7L390p+0P/ciOO/4WK7mE7IHAqhIIgmxVyYXzAoFAIBAIBNYYgV32eFvWUu++rr2++Duj08XfHpsu/ebovOv4dtt7XKvpO67V9h03Kus5fnxeO35sbO9jQSxtpT5CCPPpN6/3xOff3Dbj4Le2/fGLO7Tde8g7x9x/6M4T7vvyuzb984e2LM9dqQuGzIHAayAQBNlrgBdODQRGHoFQ40BgcAhMEUJ/Zt9df3nivrucdeL+7zv3xAM/eN6JB+153kkH737+sYd+4LzjDtv1/OO+tuv5X/vGR84/88u7P0Fx5QanZOEugcCaIRAE2ZrhGq4aCAQCgUAg8BoJeFG2rRDZv9tkIfJ/tSDGXiPocPqQIBAE2b81Q9gMBAKBQCAQCAQCgUBgsAkEQTbYxMP9AoFAIBAIBAIBIDAIBF5BIAiyV+AIG4FAIBAIBAKBQCAQCAw+gSDIBp95uGMgMDIIhFoGAusggRkzXPTAA67EtOhTbzNvduXl5re9+eO0aB1EEKq0hggEQbaGwIbLBgKBQCAQCKx7BG6/afpuF5121clXnjP91B99d/r3fjjtxtPP/NGvTj/rh78845yzf376BSde84MLTrzqB5ecdvH3//y7W/Zwzq30H6xd96iFGq0IgSDIVoTSf84T9gYCgUAgEAiMMAIvPrNkh2pvfEheaT1UuBZa+VBYb6VDhSgeBt12uNOtLgLhBwAAEABJREFUhztT/vqDDz6+C76LIMhGWB9Z1eoGQbaq5MJ5ryDgZl4av3jf8aNfvvOwsfNvPnjc/BlHjWumXF9w24Hjn5lx8Dhvfp/Ps9zmc7/f10z9+r/YQJ5vjn35zm+OnT9j2jg356riK24aNgKBQGBEE5jjXHF2lxvlbVana/9v5o8/4VyyOmDpVMqW4uhIyXLR5lFsNKTTQthcCpNHwphI6CwReRqJJGrFDdusDkG2OkoerjHUCQRBNtRbaJiUr2ZffnN7/5M/bK8/dXW7ffbqMdVnrylkz19Tdk9dUzBPXzOm8vS1YyrPXNuCF65tq8+6tpQ9dW0pf+zacu2xa1vUo9eW649dU0wfvzbOnrw21k9c15I9cV27efT6sXLmT9rszJ8Vag/+bP7sh3YO4f9h0iFCMQOBNUyAY0H8nR/e9snjfvLAJd+8/qELj7/+Lxd887oHLzz+yj9deNxlf7ro+Evuu/D4i+684Bun//KCY74//cIrTr9tt9VRJAkjYDU/RigIIaGEEE2DEDHVWSKcjWkJssyJ8eMRImSrA/wIuEYQZCOgkQejipXOWRu2ySV7toole5SwePfYzv/IqKTrIyW55CNltWS3VrV4tzbVuVtZLtmtRS39yD9NLt2tVSzlvs6PlKPu3VppbVH3h1ujzg+3RUs/rNyLHyqq+R9oLfZOzuudCUe+8Ne4B6NBB/keMxj9/PucX3fMnD191P1P/7jNuWlhbBrkNhhut3sBUH2msF0XRu3TLTv27VfjPtMrR3+mT47dv1+M/Uy/5Xo26jMNN3a/LB+9b1eveevqqGPeyEWjVpeRE3C5hsgyuEYOZBpILWzqYDMH0zDQKcXb6rhpuMaIIBAGvRHRzGu2knxTFcZWW7OspwBbgVQZhGrAOK7LKhRqkKhCOKY0uCpk0xpQlFfSRTzmTTLlDmMB7S2HtDmszWDgXpKFwuI1W5Nw9cEkcNusae13PP7NPW559NArOjvvvu3pRdfd/Mzia2+Z23vzrdMffvbaG/765WNvfewH2zk3IxrMcoV7DQ8ClD9OO505ZxRgpbNacodw2kAYb1YobWXRSaXyXLTFEfO99ropJUUkCsjrGWSWI84NYt4vojiTOccs7lOZgdIOyC1/vPZ7hiuMDAJyZFRzbddynb+/yBrVQqIYp5cCMCnyvAEpKaqcBhwHR+coyhwccm4vM8v9frxyAhR1EFzn4Mrj3M/8sAJCeIuhXXHORpu/ftE6T3IEVHChu6Pldw8dtbepvHB3RTz3i1r0wgE6mfdelBfvLMqdO6PY+W4TLd0vixad0pM9e88v/va763/y4ClbBWE2AjrHSlbRZrk1OoPRuXB5BuiUw00KmDqErkPqnKaF5Ase1+1KXv4/Z7dKcFgTFFsQaQ5HYSbqDYApfJry/hRlyFMUOOotWcJh7z9fKewNBF5BIAiyV+AIG6tG4GGlnGiBU8IZP04pWCdhEUGYAXM2guWLrLMKjgLMr8PI5rqzlqmDtZpiTENwtHMUY85fI48o7oqmPy2/iMLrlq5a+cJZQ4XA31768fp/+9tvv9kQc67T0ZK3pa6nnLlMWckGVwoiSmBUDK0gM5knaVQdUxNLPmWjzl/e/I+/773YPdE6VOoSyrH2Cdg8dzLNhEwpiHKKsLzKyFSF04j9ELrSFGaGgs0yesVhZrUIsqzBAcwliGQBEcewhBeODZAwMtdc5zjG+BmKHAFdvTH4EbK13yyhBKtIQK7ieeG0QOD/CCzqTEqRXM/lOkpTA4EYShVAXQVYCUlRJnXCwTGiAV5sef/rjznDbec4eALCMjUa4Edodk0dI7JFKNFWL3ds9iI2/CRHXYRlmBJ4seeW0S8v+MuhGV46vNTeKDtVgYg1XGTZFRwM/ZxxFOxQMBTzRgnUbQWukKLfLnnjy13PnP63Z+775Bw3J/y27TDtA6u92MbCZdr5729RmMGbyjRFWQOCESrBKUTLKBYDZcwi3eq4f6lckBywRF9fFzTFnub0pE4zaEbFdJbBcHbAMDpnTQOlgsInnwwRstXBfSRcQ46ESoY6rmEC6dIktvkkZRz8kCfoWEFxJWlKc8qR4Q5Fi2iwgOAgGnG/N8HAiNCgaANULjmQCkQUY4ICTuQUcSmdcyPp7xj9uvlCiNUyoCIsg07AOSdfmv/we0Vh6UFtYzCqUu+CigSntR2EsDQBSEHPxfZGAiOYCom4pYQsylEX/UK0m02eW/jk8Q8+dMsbEZZAgARk7oTMhVCZg8oE4kwi4oyhTAUk94HrSCVFkmAXZIfCa1+c61OZXiriYgrNvmuEYH+V0FLCSAurDI2DmsqgEute+x3DFUYKgSDIRkpLr8F6Ln1mVsnUa5sK3iPidFNOwZX673NwGxyXvDkjYS1z8JiPhPl93hy3LYUcRzIILZrmo2YwPJnnMGyCRi3rgWp5nnvC5z8QcAvvaOme8+sO1zVzlOt8sL2Z+vUVMcf8TeO5ztvy7WWpv0bPY6M7Z93W/h9uvcK7FuKGsf3ZS8cm5XRib2UxkpKf0InYJ0ARLyCEgJSMoMqE65LCLILmlHVvo4HeehVRWxEV0ydsUW/VWZl/FL1rGLsQFpFroVLG3FML1bAQDcEUkHULWbOI6gKiDsgG+LLHsCte28J+J4ptaaOuX1pg5JKXK/bll/vtgnn9WDSv6hbMq7hFL9ewmLZwbs0tnVuz3b2v7Y7h7JFEIAxqQ621h2F5+nrmRxK61WhNJwrkDtAWsBRVjikoxKwRzW1OLjSdsOWLozfDDJZ5rJE8TrPskjzPcqezGRDlTsZ5Z0XlLwxDNGu8yPWnT9msZ/bFx9iXrzynMefMMyrPnXVG79OnntE/63tnMT27/5nvne3X+5/9/pnN1G974/H+p79/Rv9fzj+j/6Hzz6j89YwzKw9//8zKzO+fQTu98vAZ3+99+PzvL33xx2fNn/2Tc3p7nvzYa6nMPx55aNtCS21ypvtFuVxGErchZ/RT2gLE8t+ytYriDBRjkjrcW4RCsQ0iKqGea6hSAQ1XEyZu7H7FX743/rWUJ5y7jhBoGKCRU4hpcH4bUc1BVYG4KhBVgKQmkdQd4oZDSbODvcZqCyHcgYfveeFe+0z++E4f2uRjU/Z63cen7L3Vx3fd6/V7vXfq1h/f9VNv/Ph7995mz10/vv0e79vr7btP+ehbLhfThH2Ntw2njxACcoTUM1RzDRJI80qhEBUn6jSHTQ1ivojGMob/jW/qLljn4JyhpzUQRsExEka9haZ5ocbhykfKfBaRC4CqTViKMZfC1KpOyfjl1rmLutZgFYblpevPX7GJ637o5Bb77DFj4rkHFvOnD47qjx7ShlkHt0Wzv9hinzmoFc8e1Gae+2KbnfUln7biOe577qAW99wXW8RzB7e6WYe02lmHtNjnvtRqZn2p1c0+hPblMl74SgEvH6KyRfta09e2waTxj74WSMWC2bVW74mKxSKUitHV1YVSqQTJaR4hFKwT8ELeG5sfzipIWsqoB1wMwzw1kyMTOXKZtRVV4U2vpTzryrm3zZrVfubdf/j06fffvfe1L87ac/r8uR/+6dw5H/4V05/PfWG36S+8sLu3G7j+i5fmfGjAXvrQ9Bdf/MBP/4P97MUXd2X+990wZ857f/n88+/52fPPvPs3s2dvN8NRNa8maM45MX3u3NK1jy5s8Xbp/Plln1776KMD2zPnl/1xn+9/3VLmuVN5yqhY7mRKUZZxMGlOUzrI1EHkHHN0g32pKoVl2Ox/XXAFjk/5yPYvHzLto3879sx9/nb0D/Z6+BtnfGzmEWfv9tdvnLH7zK//YI+Hjzxzr0eOOOtjj33j9I8//tVp+81fgUuutSzhxkOLgBxaxQmlGY4EpJWSjrOobIKidYgaGUQGDoIKuRDQQkOiBkWR5b83Jk1CYRY3nS7odMEImoNhfpqWULnk8ZSWMU9B19L4H3jvSWY4sllTZXZzLpxUn33HeUr3fFJKVbak46ONcSGCkxTGeRVScafz5gaKQdEjuMoEFgJWSGTWAlEEH9HMNfOqBPSXyIg/jkflmei4YfykNx+XbPi5xwcusmo/+2u1Nxfidpg8gdECpXKE3PSzFBpOWGRKII2AhnLQcFBOIvL9JE1QjEaBATKkFGRRMYaTgqJevQVhwdJazWSl1ncvTJIfzuzrueiPXQsuvbdn8aUzuhddes+SuZdw++J7exZefN/SBZfcu3TxZfd2Lr3sj0sXX3p3V+fl93b3XH5PT8/ld3d3X35Pd+fl93QuvfyepV1X3L2068d3dHb9+Lbu7qvu7Oq/6tdzX77wj488/sHpzqnVgfzmF3s3/cNT8879fW3p7TdXu275/Zyum26pLvnN7/rxm9t7Ft50T8+S3/7mHz2Xfvuuf0z4X/eLbGZVveZMtV/ntYrOqlWT1us2bRjTyDJTbXTbNO90IupG2uhu/K/rheOBwNokINfmzcO91w0CBeFGMyI2VjgJxyiZpHeXRiCt+ylMC+M0rM2bAosbEBRcjsdBc9QAXkw4Y5nH8pgAPTJNw+9rpFZDdvxVCEEpsW7wei21cG5GlP3j5Ld3P3fHDaPLXbtHqBE/4GAopPxPAQvFbe87BacD/d0sYJ1foQnACX4ctDAQsUSaNaAih5gRK0dRZtGCqLBepa8+6tyJm77ta8WND5n9Wvj7v7qfFKKJktEwYwyMcRBc99ssEMsj4SBZAwHjvxRNa0ZUWeZy0grNSAdEBBUXkLHDpGkdrcVye/PcV/2x7h/83PbbV0uu/dvkcZEVMurRZqNaqbDxApNvXGtt27ivmGzUl8Qb9RQSv76xT7uLySa9xeIm3YV4k96ksElvobBJD9Me7uspFDbtLhY37SmWN++iLS20bJFPmLjz84304nvunPGZWc4VXivVRkGV+gqlbToLLe+qldt2qZXa3lcrte/aV2zfldtT+gvlKUtQfMfcWvqq99oSyDfesHTjphvEB226QfSljTdMDtp4o+SATTcpfHajjUuf23Tz1gNet3XbFzbatPDF9TeNv7TRZu2/fK1lD+cHAmuSQBBka5LuSLl21hiVNmrCCyhOM0Ay8hIz6pKoCILRL9B86iMvA+bg8zXNEpJzoDcGfW3T/Lo/x1jJSMqY+qiOMa8pOsM7rBMfL8YWP3jVe3sX33luodi1Y2a6leC0rnQMR9I8T9gCGZYHjBFLOLJtgiUCtoOzMXcpCiDDHQZZVkMhAaypIq8zYhUX0dAtXf16g4tHt+05TUw4rMKMr/Fzkms0KtqyrFTcgGKjywLynKLRl9cyqucEy+WWmWmKRS8YU5OiWq+wS7AeciBPkdOeBv4PGbzGYq0jp39jp227dp7wlvPXb5jvt1u3qCgjtJTK8MFPgEO8f1Fi6jw/JWCZWsFoNCz3WsTsI8o1c8LnMTwFzKMo7MsygXSxqDuxsRo34ewfP/jgfjOdK78WdC06V4m1UUEDhTQTJVqxkYoSrd+9+T8AABAASURBVJhp0WqsSvIsUdV++Wr3EULY86Z97h8Xfe/j1158xseuufTMj1x78TkfvP6Ccz/w04sv+MBPL7hgt+vPPe9j11zy4wOvvOCiL//4+O98+olXu144FgisbQKv2uHXduHC/V+dwFA5mkTY0uQpIiEhOYibVCOrc7rR+3wrKMokHS3guO5Fw3IDIyCCzkDSGYOTVwOp75KKmSNajL66mV8urL8EYcHie67ZQ/Y9fWZHoXfHWPQpIVJSoRjzHMkW9KTCygHe3B7gLciR3pY5uYLl7P0xzz6JBEVZCimKcGhFd0/hpUxufProiTt+T2w7lRdvnviaftBxOqP1bMlmlZGD9fLKT1W7mNeVtIGPFRaOxlhfM48ROYTSKLTEKJWKzUySYqNUakFPb9+zzR3hR5PAhyaJ6gfX3/CKTePyd2Vn38u2v47YAwefPT6X8CmfNeEA5X/wLOtTH55m/2kKMq+TeVwIxXagMYqpud3g89wydjwW1OrjulR88o1/+ev+dyx0LbzEKn3Y4mxWIf33uzgPDZdp2CznmNGAqTWa6yLPlcmpClfpDuGkQGB4EuCzMTwLHko9dAgY2+iQHOwhhPf5dPoCPlomKLQkRQK88zX0xhQJXoR5USDoBLyhuY/nMXXM7495sWBchJzRnIZJnh3p3x9zbprsvv+ze8v6k2eNivLtI+2ka1QRQ0N4h0puMEVI/50rI7iP+300ilPFhsfssgiUFzoOKdsoZ14JqWk8XwgJYzug7UbzVemt3xq9xW4Xic0O7FmdPSxS5ZlKxnAUY5nJYJyFiiN4cQah0TSA+5lDLjeDmvbRsRRZXkPWSOFyh1o1z0e1jf8rs4fPvxCYvP76talv3P7qDWv26Hao57TWYHdgL3EAn7dICyjjwBlhsJOQvQO7B/zig5axBSKaZB4LB0OrGwPZUkZnpQ7R0oaKKGywMBPT7n3hyRPu7HNj/bkra1rkAjn7cOZEzue+QbHICBzqVH/9WY4K27mRpmjw38peO+RfYwTChQeBgByEe4RbrOMEbLV3+8SLMcPRnFEx/7fIYkYyFBT8bJn3tz71UygDZmG5ws+AH84dU8u8lvvplOkQDJ2H5pRbuX29vwgh3DqO8L9Wz825qmPRXU8fj8qzl48pZZtLmwkfTYhBMZPSZTpFESPhiN470ogO1JskXOGc97t0rKLplC23veAFnbOipxYmhqWlWautZGNfKI9+68dH7fjDn4gJU1fDNOUrqxTJ9jvqVdll2KZKFeCEQO7bGSwbBaM2rA9FuONxSzNQsEJCceobsJCsYCkpoiVpg3KFP33yrQfNeeUdwpYnsJkQjW+/5103bBQVDio08nuVMdq3N4xlHyFHtn3Etlc+kuoEHI1HmikojrhC3I4GrlLcUzT3NSiZkgJkXEKOSDai4qSX8uyoXzx436l3VtxEf9+VsiyBF4t5aimyDWzdQaS8V857ZuA29zW0jTPNXr1SV16lzDOmzYg+/b5jd/jMjt/d9YD3nvnez+1y9pS933Ua7btTDnjv99+7/87T3vvJHU5439T3fPs90895oLRKNwknBQIrQECuQJ6QJRB4VQIlidbEzy7kFsaPoXzTzRo5dJ1TYVoBjJIJ7wD88OoH/aY5jrz/Zz6i5q3pOJyjUBCM2MSumqq/v+rN1+GD/jcpFz9z0/Gj7LwjyjYbk1UbQsV0jIw05TUHKduJq0h/qyAYDRMiBawmbx7TESNgEZx3uI48MWCO2/4XLiTFkGSeSK2nK/UJfyqN3vFz4o3fWWNRpw1Lm78M0/ELYUflCu1wFGSZzpFpOmdG94xupZNugzXLzPrvQBXgKNYcI3l5nU66btHoyXsLrvUyIQSl/2ps/HXoUmRjj9tuu/u2kskxbbmZEVlKX6vhny92E/YRQJGp9FFrRzHPCFUmBHKaJVXJ51PwOfYvTSn1HJKIz6JFV08vjH8BiBNRLZTiznLrFy5/6N7TTvn737ei0BcripDvWiI1FlmqoaoOUbeF7LEoVBSKVYGY+xK2tTKJW9FrvpZ8z7aiA/UxF5bdhn+IapPulvXxd7eYDe8eHW1+t660z5CNCTMSs/5d9c7CpX1pugHCEgisIQJBkK0hsCPlss5BFKTZVDfqMGnG6IXvUgre4SdRgduCJiE48IMREHDxI7dw4H4w8rHcJN0CD8Lyn4BDRKGR9PXrZK7fO9LMvXzB2MWz7j6pTSw5QqSd4xMFFCnG8nqDosUhKVCs5BpwgiaBZhiS28i5TbguhuCUryBz5uA+w1iUZcq8PAZXoJNt092VMTPW2+z93yi+6Zg/YQ0u22xzaHVcy+suU3rC/Vm9bKUtII6TZlt7J29ZOgbB2OYKjnVyFPCOU92OYj5GASXXikS3ZpFpu3HL9ba5aw0WdZ24tBDCHffmNz80tp4fN6pu7ki0zh3D1BYU5uQryFZR7Ar2D89fCwkvyDTbgVqdz6+A4IoSTH13YuOUWlohVYScgq1KoZYVS0lfoXXqQ/O6fnDWg7N2oChj5/rf+KIsczDGCp26gjHgNmQthag1IDldKeo1RA0qs3r9f19sNeQoZoZPRAekbhe2URJR3g5vWW+ExIwCGiWorBWRYf3RalfDLcMlAoH/SGCFHqD/eGbYOZwIrNGy6lqtXVFwqaiILLMwmUGsEuhGCnA60nmNwNdiqx1gXFNQCAO+sQN+n+Sg743emM6YeVhaxWmtVMvna0j6uTmiPu6F8zfr/scfzm3N538uMtWC/3K21Rl5GYpW2WRkGA0zskGAOR2nppvVsMibxxzbwvopQJqimBGcGoqsQ0RHLHks4zRlToHTMOPvGjv+PYfh9Yf/TQixRh0Nr+/evtUGj48f/dZTpB7/pG4UWZoYgsrc2BoE6yJQ53YdUmSwJmsK9kQUoPIEUaM1j+ptt2y/8Q4/+OAWey1BWFaIwMk77vjI+zfe9Jiy0Tcak/OREqgZB8Hn02QOkv8AgYyeII8V8oQmBNiRkBggydnnMs4jUsxpRjQbbBfDdcnztH/WXdIq2yfu8bfunnOPu/vRyViBpVU5k3cusKrWbdL+Rdbk3U66imvUFtus2mmQ95u0slgkup8FWYELvsYscaIoxDLntHCJSJxg9BA5GEVUABnFiIFcQrjYGc3Q9Gu8Xzg9EPhvBOR/OxD2BwIrQqD/ZwePhdZjnLEcxCWkiHiagJ/uAN+k/2lGcoyncZ/4F1OQyP30JqNrkmLB8o25zqnOtKEBWZrZtt7GFV5wRHz8l/efuuUrb5v795sv7Ih7PqPy7rKyFLV0gIw+kB8dKSMVjttaWBiQuXWQjnjI13I6SUsJ70+oduDNZDkjUUUgtwC5N/IIRnb05dGGv2pfb/I+4i1fniUEL8ZLrOmPEFPN5A0PmrHxxMlTbdZ2T6NP9ppMsfQKYP+xWQrTqEFwXbK4/vcSbE1o0xfNL2Sjz9px/fcc8OEtpz7H8vKcNV3adeP6ntXH11vvyQ9v/abDJkWFH8YO3T662lOpIim3INcW/lm15J1xPeULlKZgc3wulZSMCjnE2kByH/y0p3PNfui3pRHcr0Tu4qRabN1xrnO/OvSOP+70hHMJXmUpFPLZ24wd9eU3jC7tss3Y8k5bjlaTN2t1228zoe2N267Xsu2Gsdt6hy03ePf+R3163qtcZrUdiijIpFNCWdk0yWcqshKKzwvIw5vQAHsiefAgwvLqBMLRVSUgV/XEcF4g4AlYV2nnQC2pEejwJQQFmeNA5iismkKB637gdlQH0kkO5mLAOODBAkrFEJyelFBQfGuPaElShJCJsyg+t+Um2zAM5O+0bhsFl5h31/xdRts5Pxol+j7c6FkiC3FEVpZGb+DoCAnMMdxoXQZNh2k53aSMhNQUwcZ/l6yIXCi+zFtkilPIog6lHHSNKdslz2PIeNySxf2tF5jW7Q8R2x9TXRtU37b+557afPzk/Uyt47umWv6tqRVmySzqjnVcT2iouZqtiHmiHj/kqsUrNxv/pkPW2/XNJ+689cdGXLR0dbXPHh0d3R9ef6NTJiXFs9NaX2ehJUGd/YhdCFJKFKAQOz6D7CeQnJYUAg1OiQuKNEUxH3Pd/7KIMBqO6s2LlpgRskLdocyLpHy+lxi9wYt5esWVf/rTJ592ru2/lX2njTaqf+8T73/snD12euCsj+/4lx/u856/nTt1l8d/uO8uT50x9X3PXHTYx5477TO7vjhFeBn0366y+vZX+MrnrBGWwtOaFGAUUGiNgRcDA2kNxzaaM874UPPqu3W4UiDwCgLyFVthIxBYSQIqwiYFKYT0YovioDl2UWg5L8QgIPwLJddB8/scB26/7k3YCDp1HOwEOF2AnFGyLMuhZIw8Q6O/Zl7CNp/k5MFKFmqYZfd/8HXpvQfsqSpPnN0ml76rvZiJJBbQnCpq8mvWxzuEHIb/HMWYF2FSJ+SbAJyCBJ2iswo+LEaiPMPASeZmVMPSyeauFaq4Ydf8nvJZm73hQ+e2Tz56KTOttc87N//SotZd3nfem7fe/Stlu9nBtUWth0T18V+RtXGHNBYXDukQGx38ju12P/h923/oyE+++Su3TBVTCWCtFfcVNx6uGx+aNKk6edyYH00QOLPk0vlZvc/lOcU9nztda8DVUgiKLyEkrGSkFQL+eZU+EsanUNG8EAOfaccopj+mpKR+4QFGkorFMlyxdetnFy4+9Zrbb/vSq4myocQwiuvCWgvHZ0WYnEKMXc15IWYZJQOUcyQBPnV2KBU7lGUdJBAE2TrYqINZJd0w7cIKISi0rPUDuIJrrnPwEjQO3r6TecHmRZg3f1w4STHh8wsOdsvO4Tio+Uae0SloI5e2d0xY7K88mPUZ7Hu5WecVlt53xYHomX1uh6xtrxpdyOs9UErBMnIIF5MTWTEyBoox+H0mgcqLiLIid1GQMdoompw13+bpPLguHCNqtDodDMrtrqEm9nSl639pi3d99SLx+kPWqhhbzngqRdYOE6YuPPDdP7jnqD2uu+Er773y2q/vevV1397rZ9d/+X1n3vbuiXs/Onn9PWvL84f0tROYOmFCZcrGG1/YVq9/p+Tqc0vSuIR9rSQECnx+RU4Rnxn4aUsjFNij2A8FJI+pZcJMaEdN5o8JpHBwUiBuaBRrDro3E6o0epMnOtNjLr3tni/4yC+GwaL4XEkHCGdoy0SZZd2shRef/vmyzgmlM4GwBAJriIBcQ9cNlx22BFau4I3evi0Z6hdwEXx0DBRjju+S/m2T+zm4OVgOat44OMOb4EDntYXlAO8oJpxjN+T5cVyAkjHzS8RJ+cUNXv+WhViHF/fiT0a/+MQfvip7Z59eyCubx8bKQksrmQG1Sh+SQgx4UQvACglLTp6XNAr+C9fK0VmAUTOhQa8BqS0iWkyH6aMajsJNJuPyxX3Fx/Noy09N/MClvxITpnCCBkNyEZT1Q7Jg61ihvCg7f4cdrtxIysNUf/UpkaaMVUvEcYzRz0RvAAAQAElEQVTmiwD7j/F/404DxgLaOhiKFXY3gM+rYCTWOYHcOQoywH8PTfJ4vbeGtmIHKv0QScfGkx5fUD1936vvOHfajCcmYYgvfhrWMkJmXQprGnycmGqmNofjfm+sKbSi+hzidQnFG74E6AmHb+FDydc+gTRNJwkn6UsVHAdpjuVMXdOstfDm3zDBQd1xVLfLDBzoYQWyTMNon+bIMwfLAV/nFtqIeWidtM7+Np175tJxC5/6w3EdpvfktkY2uigKrHsReVXSGRRRihWc7oMRDWihoV0CY8sUXDFiY+gY64DrQy699cO6DIpsI7LzgkzRmTpT1rVswp9Hrf+uQ8e8Z8fwpyLW/uMyZErAB9ad+bZ33DLJiKOjNPt7tVaxlTyFgQOPUfDLpoHiy/CZzJxExhctv275IqWtgIWAVDH6anW4JAHiBDoXKEej0dcp0DF268ISO/rAPz8795SzZj6ztXMcIDD0Fp3zwZEGQmpIPms+9SaFhRKGdTRQkUUkgUJTgg69OgzbEoWCv4IAu9grtsNGILDCBPwAK5xdL1ZKSClhKBScNqA6gOAAHokIjgO3H4ctBRkVBSQHc3Cf9dksOOBFKBRK8Hltqvl26gARmVSbebDdPVgHl/l/+NrGsx+/9QTZ//xh7bZainUGQWEKClgBBc8SXDxPTpNA0/FZp+C8PyM7eJYeoHN0oAaWPwXPbe6nb4GJ2BbtSO24uwuj3nh822T1Z/8bjrxk+AQCryCwxy7v/MPk9SYePz5S98c6NZLPr+Ij6L8r5nI+j4wOGTj2MfY19j/HZxbsg5LPsTfLSJqPbDdyyrVCjEYjQ9owKJVHoac/A0qj2lzrpE/PmPn09069++HNX3HzIbLhVN4w5d6ZprXzHjOq5247qusu2977Bzuq+w7d1nOHaeu+w5SX0nofMoUG34SGSMFDMdY5AnKdq1Go0OAR+O53ReT0WMcQl8lSKOFo7FLaUnhJ6MxSREjqBAnBQdwP5IoDuTe/TUHXnCLp7+1DzMFeUcRJmhWyPzPieTH5kHzwKjM4d5p/62Gb6EVPnbxR1P+l9nRpi9D+K1IGkcvJLIVwVfJqIBMCWjDiYAqwJobj3JFgHsspSk0H6fwxRtWUK0NqCl+KMvBt3uuy1JSMiTe+O0te/+W2nU5+UIhpdnBqF+7ybwSG/OYUIfQRW2084y2j244YXavd3WqtiSiuspz9UvH5ZcTIOQP/9QObsY/yOU5EjIgvCeBLhOSzHrHTKSq1nFpFKFY5dqjrKoRyHA8gbO5KhdYNdp/5xMvXnXXHY6stUnb6sb9tm/aZ69unfXJ663I79gu/bTv2o/9n/viMq+YUWar/+vnCsR+tnHndSSd8/ydf+cwp1xy2/2nXH/HZ064/5HPf++lXDvjeL75+wGk//foBZ/ziawdsNbnjmAOO+eQ6G7X/r4DCgUEjIAftTuFG6xyBpe8vtQhr2sEB2VEQeIElnOMILP5pPpDjzXEgFzQfJfPm8zon4CNqkZCQUM1BX2cGWWp666r4/LoEjPUVL//+mDdH1Zd/0iEqnzc988vFmF6Nzg40Bw24jALWwfpoGKeJnI1IRYGzJYidpvDyeegcKci4BQsKtQz8WYTPW8kiVNXYviV69CUVt8lnJn3orDlCUCWvSyCHQF3muBnFl/ueGtvjHt3sxvtP3vbaGcdOvvbuo99x5Ywj33/VjCM/fNmdX9/jot8f/tGLfv/1j55321f3vPpP39n9gt8fu+vpNx4++eLbTnzLw0tvecPL7sENn+r7y9hZblbBOb6FrMV6sY+Yr2y71d/fudGm+7oli29O+HbVwmhXrlM0/G9eOockiviMCuR5zuezDpEb9kkBH0nz5p9pMJ9zlr3T0HJahjyrQTGC3l/Nk6g8/p0PP/vSDSf98s8ffMC5El7DcuG0Wyc9/dd5f58/G3MWviifn/eCev6lF/BS1+PVeV3z+xd2vVxZuPTl/nlPPVJbePU1t53ywANz/+v9WH+3/uvF0vFbt8wfv03LAm8Ttm1d+O/2/au+tYR5zWsodjg1EHhVAvJVj4aDgcCrEJB9GMU35zL1hLCaQoLGda8vmgYKsOXb/vjydZ82t7VB1tAQFGZN0cZU0DcpUewdPXr9Oa9y62F1yLnpqvPuI6foBX+9JNFd7ypJDXoy+jBNU8hZZ7o5GEa4NCNizpRhmTI4gdikKNg6Eu8AyUtqnmsdDAQshbDMLWQuUGkkSJP1emrl159X2GzXUyfsfuaQ+oUIz2Dx4umtjy68tuUJpk8v+W2bN7/u982ff2l5ZtNuLvvt5eaPe/Pb/vgDc6eX5sy5qugcoQ1SL5jhZkR/X3DVpr9/4rRdp//5iAMeuO9n37rj4dPP+tX9516Zts69Me9YeFvavuhW3bH0tqyj67Z8TNfN+eiu3+ajl/42H9N50xLx3M3V4vxb4/WrtzTaF9xy/7O3/OLn91x+yW0P/fiM39x+5jcvuPPrh/3s4e/udffcS9/x0OLpk6azvwxS1V5xmy9uu1HXB970+q+rvs5f6Fqlqvg60FJsg9MKearhp9KjSLDfadiUEXHLbmwc+yovw2fdP+/gPljHlwvDnSmiZpStgaQAHrKipt02T89ZeM6Dd8za97WIsp6ehshqqih0YbTI4nEyV+OjLBqtsqgtylRZpdJbWxml0uIXF4ikUwkWKHwCgSFNQA7p0oXCDWkCrYlqlwaxFwYM4IBOkoM3mik4Nemag7Qb2OZA3cznB3AKCcfUm4+aCS2R+++rcAwXVjon4q540oR5Q7ryK1g4CpFk8W33frw69+9njy/mk4u2CmcaKDICkWUZtBdW1BaWYlQzKma57oxARCcYaQHFKSFB805OuAhwCYRVgM0hKM4imaBaV9BqUiVVm3x/4us+evaEHY4dUmIMXGbMfPqdj8z745VzX7j32jkv3HnN8y/efM0cby/ccu3cuXde+9f5D1zz8sK/XP3i/Juufu6l+6+ZPWfGtbOev/PaJ5675ZrHZ992zSOz7rj2H3Puu+a5l2695sGXZv74jofO346XXaOf+x67aPTds8/bffHMm8989IW7r5zf/8jF9eTFH7mO7hNUR/cBrq37vb1u0db9tnN8v+gcW5U9cU11CxrSuA+NuBeiLUderIms0FvIiv0T00L/+hXZuV1W6N/dttW+oFv6vlONFp2xsDr7gn+8+NfL7n/s9qteuO3OCy++9ztH/uqpK3f5CcvA52rQxMTnt1j/pV222uxE2dNzTVxL+2VdA6mlAKMI45SlNQZe2igpIRy7IZ9lYf0Krfn8Ckj2X79P8C1LcJq9XuuDiIH+Rg2yUJZxS8fW9z/81AkzbnpmP6ziMmm9zYROeSeOHUIDwljnWBbH8tmcojGXcP7/g+KzUi63ifXXQ1iGOYGRUHw5EioZ6rhmCGSd3eOk4dRDcwAGvCgDhZYXY4ICDN647WjgYO23RVOkAc3UKESccBNOUV8wMwWJTp2tVd1z4z56egXDfJkzY1px6W9+c4BY9NiPRpnGm6JGpqyuw5vJ6+D0B8WqaYoyTaFlbdKEqGzWjIhFOQFkFF86Zp4YORIYy5kXk1CoNRhkq8O4xKVy7CITb37Y+m/b+wKx2V49PGvIfWTSv3FS7v5EcVTP3oWOJXtH5UV7iZZFe6nW7r1kS/fesq17H/C4LPd8QrV07SO4L2rp3dslXXuj2Ld31NrYO2pJ94nKjU/ouH9fK7vXXxOV9H+k9/dPn77+bx4+9tvzsof/MK/3wSt79NOH5knnFF3s36ohq+39plfUXA1ZpGGlACIKZUUBwAIZOFBbs7s7tpdl5JLtzSwyiZEazXZkP2dezkajP69BtRaEKcfFikrX70f1TY1S/uG8NT+o2y757uwlj/9sQdcL95115/E/Pv/u7+xz8V2nbnDpzEspbXijNfg5ZNstXtrjjduc2Npfu1j09tdbhMSoUgsiVsymOcUPxRfvn+YN9td8wCiGYB3FmOKzrZgK9k8BZzUU65v6iFqhgAaf/36tpCt2bPbXp178/mfPuv3YH9+/pA0ruVQ7e6XTRnpdKCIjoIyQSoPbEJLlkGwToVCpNqCNE0s6fUMhLIHAkCYgh3TpQuGGNIGX5swZTV9TEJbdiAPt8hQcH9Hc5tFmquC3Yei0DKu0LBV+nW+zLrMwhoOoiBCJ2MSl9seF8O/fzDtMPz33HT9aPXffiXLhkxe3550btELTX2SAsXDOwRnZdFzNdW7Ts0OSh2A0TFqu0Hl7Zj5apm1MPjE0I2TGxfR7PNcoXqpk+sXoR9PSJl+atNeuPxFD+I+oallXVlaFjXy0pA827oNT/axilWTq0KImjKrQqiIX3KeqyGiqZGBVHblqwKhcWGWFiCEbkip+NfaNmW5mPHPOT7ee/qfffuflxX9/pDt78tSGnPe2TC6ZYJN6IoqAi1Xzly0ySHgzLIKDarYjKwPwORA0+LZlW0mqrpZiCwTzO4oZQYEgaXmeA9yXFMuoZgapENCRQB455An7RquIdFG39Ym+9apR77ZZsXZgv+y6sVsv/kffgue/ypPX+MdPX35MvvtbY01+uulc3Nm/aBEsI2RFyf7H6fMGBZYvhAP7qjPs04YcBGAF+7E3BRgFQSsXWuA8F9YdqoCcqSu2CCTt4+tR+4m/ueOeU696aM4krMSSVzLRViorz/Lfzf/ZHEOumpGzUrHNk16JK4esgcDaIyDX3q3DnYc7AddobMAIWYvgNJvgQOwH4+UpDGvHfcu3/1MqLMfvnD+aeR2s5bqI7aiOiU/w7GH76bzj1I26/v7no8fk3YePiaUscDrW/zalVKwv3YN1BQhXhmH0y3nn7UXYMlOG0QeKNkuAliFHi4RcihRkBRhGyozT0HAUBO2oy4n31lu3OGb9fTa6daj/WYs4LjjNshuXwdCBWwgYweEnioFmhIlwOP3qlKK2iQAVQfhjKmJ9JbtWhIwONvV8ZIFx1aJYXR3kgbnTS8//+YZPPvXyXZdVxQvHFUZXx9tCP0VgnfcFcgqvRhajnhZgHR181AGhRrE9Ek6LRcygIHUCkcdNk4xgRox2KldEX2cdSBXLW4BLRVOIx6rMF48S8oaB5jPiJK8RFShUBOomR8WkqKsMtmAZhcvBqBwa3HZl2YGiWCnh8loYTZ0qzNvWH3P2eJf9IF2y+KVaZ4/T9RyGL1zOOahYwlrTNL/tjY0LePFlon8ySauO0bIEjbrlIQWZxOiu9cIkSmRatZZHT/r8r265f9q1f3x6sxUtb6EUyayRUtopCL7ICap0QcpN89tIIF0C66curXJ5ZvlgrejVQ75AYO0QkGvntuGuw50AB1+hsmyUcjIRdCrecw2kEsIPyN44cIOpsAAsuB/NwVoY2UzBt+dIxvAmOVxm9Li1zJm81PYUcw7LT/etp25SnfPnk9ZLzOEtLm9HpQ8QgLQ56rV+wDNhlEtrOixRgCALxX0RRZikhINgFwAAEABJREFUIJVcJ1to4WgChi7HfxdPeMbMo8mzIVpdRU26szfa+Bvr737RXUJMI10M6UUoIcAPhIITES2GowM1VjRFiWa9vM/MKbhyZ6GXWUMbaOZUcQGgcDPMZymQDNRqqe/MJdetN3fhA6c3xILTTdLz7vJoJKmrIqN4pCKElRRLogiwrSyjXpp91tmIogTIcsH9MasVAzzmy2V53JvREtYItLS0Q8ikeVwyOqQoJnNteb5FlJRoFGqMnmnW04LXowh1kaQ4c2g4ih9huW6hY4cGcvRljdVTcazYctiUbSt7vPOtl75jq41ObrH5i7WebicYIYvZBlmFU5YWcHx2nfGpg2N7egNTb4W4DF03kIhQYqSs0UiR6hzFcpECt9Zs25pGuyyPOeDm+x8+89J7n1yhb3vlRgpjjNBaw7E8WG6GBeK6IGPBdZ35qDQ7FcISCAx9AnLoFzGUcEgSuOceFVk7ngNfofkdMY6DoDUHZj8406zmAM10+T6/bXOH5anfnzdybhsYDqyKUQItCvP+MXfc4iFZ5/9RqO7fHb9pY84fp4/Jln4mMVm71XSwXkhIB69GC0oisQoyEwP+w0cWNeA3/J+28Nm8g8msg5ExTUFQmBn/X7jUe+HdeqqjRl6YdM2E7ff6yqafvOpR4TPwEkP9k+Y59aaEoCjRXrSgDGOLcCKBQMTiS5qAEAqCBkbPHAS8X5eRgrYGPoIqmc1H2gB2LJ6xqh+KXvHk4p9sNeuF+36UqnlfcsXqhjbRqKQa2v+Gq+rgPcsUXRSCFGSazt3fS8LC/zkIng/JwrD3IoWD12a5ZLs29zEVNIrGlG2puS+latGM/qXOwMYRKBOQsU4m13BGg81M0SKadfT3MhTnjnssGeQ8t8HrNPx20kYCviSDZx/benz/F/bc4frXrdd+qKv1LtC1inOVDKIukFUNW6/Imio+x46CjPWxmiUF6+SQNTIU4hIsAZncwr98seFhTA6pmB85hKS4ksVC6to/eue9/7ju0jvmvIN8Bf7HIih0He8ljOELz4AJz5LbsCmEvwfFn7JGrJEvHP6P8oXDa43AsL3xoD/cw5ZUKPgrCbQ9K2SmBV9xAaMgKDQcowLCe1BGBpr+0u+n+ePgMZ82jzNPMzVoDuSaTjChGKtUajBxeeZ7TzqJR155u6G85Z6YntRu//YO+QuPXN9uunZokVlR2gycKaG7sXTYoHOXaPLxb+7WkJdrGv0zHHnRj8BZQCgJRcftDJCTS56lsIzWlNtHo7uB7izZ4KJJb/zwt8W2X3xOCOEwTBYJQVkBOCFgnGSdIhqdOCMt1gmu+33/lxru8+YgAeZ3PJvdht2KTpzrxi1TSKtY/3+8/LPtHn3+Tz/KZe8+OqoXc9mAlRaGt7OUGJblMox6+fuzKM27ON8oXBPWoVkeOHixpCmaMpZTs5w51/22hoJmXZtpc59k2YFc+FTwcZCw3O/8xfnsiGblJNy/RAD98VqjweoLNHTG6UyDmkm9emUpBvezlRDp2Xvt/Lu3bLnhF0Vv15Oup9/Iao5WWUJOcdbob0AaB0VRalnWPK9DkqVgp5bkJXhMaFA4scva5amDEAJVRs3qjKKppD3ur6kpd9z70BmX3Dx7ysyZjqHH/1xPUYhs3TV4dUeOjn2KfUdItggg+Gbj/M1EA+VWBWsbYknCgiEsgcDQJsBHZmgXMJRuiBLoHl22WWOMMPREBvC+yjsVn3rPsyKp4yBt+TYrHNCo1FEotKHfRg+LYSQ03APTS71P3/fRnmfuu0RW5r0zYcUdp58apg6tNDKhKcYEclOANfQvFGrSNaBo0uaAd8YoIrcxMqqBnGIN/q0+zxEzeqLociQjDC9XTZcd97ozN3rDASeKrQ+aP0R7xX8tloVhVzEwdJ+WbtNbU4tYC37IBvDixMss+uvmPr/t2Dc0GXjzIsiLIl6Leenl/+vdXv3A3xf8etNH5j7wvapd+sFcGqmdgvYCiuXS3nxJvThj21mRs8w0rvuyG24Z5nEUUI4V0F6ENQ28BtuZ6wPXkhQJEpp5DNvYGE5zUl8YirwBk7DM602w3cHjzkbwZvkS47wwo1BPVAxJZeOjgpplEQUJvHr11ujR/T7+zjvfvvGkb7Zk2SOjosTUOisQmUJZFeFFl+ELRBw5llkjbfSzPg1Kcb3MDCTr5A1aAKxj2jBoKbcjVgmyNEdSaJENo95154OPnX32DdfvNc0R0n+oUSWquT7b72pW25p1rs72qBmgah36TYaqq9EqWFpbgpqt8Gb/4SJhVyAwxAgEQTbEGmTYFKfcKCTalKShx+Fg6AdYxwFxedp0Mpa1MQ6OJjj4+hQckH3a3Oap3rHlFB6l2H+nxLgUxWHz/THnpslnH7p2/8aLfzm9qHveXFZWCRiKqwYMxZa1lg5J0eJlztcfpcKwGpKiS3KaVljQvUcwQnIKy8F5jcbpHaUFElUAXRS688KCrGXLk9d7/W7ni8l71kh12H2s1dTdhsLLgVTghY0mHwsBw35gfMp+5FPNvmLphw23LcXSgEnmQ9N4Gs9fNQT+C/xPvfTXb+uobzdZNsRsoP29WQYtBMvG8vht3sSwZXzZLI9ZlmfAFNvS53MsyzKz4LqAZup887Jovl87nufNX8P4fTzm9w9cTzTP8euG9/PpQN6Y+3mPpkDjOp8XL1p8GTM+YJW8zrvwYmvpM1mI/NP77XzH21633jHZ0gUPd0SRU2kGV8/A+V1wvhdOkxzLqijMhLNwzU7NWvLli/DgBZk34aPmvq05lemnMy2PSy9A45KqarV9d4rvzfr2Tz49YwZV7L/VV8e93e0T3Xd16+LDs/LCw+qlxYfXi0u/mpYWf61eXvLVtLj4cK4f1kgWHlaegF92JU+l/3aJsBkIDDkCcsiVKBRoeBBI89FlJccLTS9jaJYvocvSpsgwrIY37hc0js/wKbjuU7/tvSr9HqT/4jT361xUenXxRZ455D/ujjNbnrvwic+0Nead2WL6Nk/oTfmBlhz3pYGik/WRA5mV6KRieHGmGeHQ3G/o3BXZRFpQoEQ0OmcKOMljsWyBMiWQBQVawfbkrc/WS5seu/l797lMbP+56pAH818LKOFFh2UdjRsQZXTVdNaOBh7DgBDxAsxG0IwmaVLMyUqzbxjvuHnMs9MUKfTh8r/e6r8cYIRNvrzg6U/V3NK9TFKTNtLQsPznmmbYGZvGMmpOW2qXsBwJy5U0U7+dU2T5NvRmKDEdO7E3wQ7tU+cFiLFw/2KwmpUzA+bXmbdZYZZTMxqX07xc1XyMDO9tqT8sGRim1DrQjKBFcRlOJOivZrwYT1yLn22FyL419W1/3GGb9T8rqov/rur9poXThCWWHSye1Q6ORjRwvq5kwh0QXJc+AuwchFWcvlRIVIJGLeVhw9ZW7Pc5o8kWUbEsWsdssHldt5562W03fuXBB107/mWZNm1q5ZdnHXfljX877vLp53/j8l9d8LVLf33h1y/55YXHXPzri4+/5MbLT7j0l5efdNnvrv7+Zb+a+YMHpkyZov/l9LAaCAxJAnJIlioUaugTeP75US7Lxzo6MY6z8IIDdJw+9duOg653SjyM/9tGM5/fbuZjfkPHJRCjWkkRF1peXO91m1eGeuUrM86Y9PTfZpzSWlt48egiRkUssGWUz3hBarzfdaCnR0wRIXPHiADgKCYsp6IsIx/eJNe9MKVPJxOexGiZMoZTmZI+TaEvK5geO3Ymxm53yFafn3692GhqnbcZth9rJWe0KD49B5qhsDFwGBBnFpbrln3GEJ2hY7femvkkxRCNfUXTjPXrDlIIvgGsHI775125XdUs+Ios1sfmSBl99HLMkT+Nl3JNEZRwuwBjE6YD5TVeFLI82hvLpCmUcgoKb5oywvi6MI9j2QzLaJvb4PmS1xGwFJCW+/11DM93PJc8YFjX5jV53abw5LX8NZtGQWrYR+KolXUtUpSxunxxiYtlw6Ku9Y8Qwn5r33c8u8VGE6Ympv+WaufCqq7XUJAJEpHAZAI5g2aOTJrPOtvWObYyU2FZcdrA2KFZP4MkSgBy9XVO4hY4Mlq8tE/UcrVJJYt+cNpl1x93x6Nuwr9WXEwWOcuhxRTx6say/ut5YT0Q+D8CQ2stCLKh1R7DpjTPPzer3aRphx9cneFY+h8MdEKvfoyOkM7L/yp8HCeoVBtPbvOeD1SHMoSeW87dfPb9fzh1/bhyYCnrbkkbFplL4ISCpJ9BHkOmEfxvUkbGcl8D/re9RK7gdAnI/Xdt6LCWOSrrGnTDGQqZQ5QZ2EYdqZVajN7idx1vmPLVjfa74p6hzGNFy2ZREM6QE0WPo1kKGPpkGKcZSMkpunIYRooMO4yF4X7XNAvHlKKGqRds1qc0vaI3XpZvobuj5cX5T+6to8p2IskQlWLUGH5yzjGHRLNshlEo3QanWymmyrBsVw0JTdWshYaW+cA6IuSgSHJlGFvkesQ+MGA5BVduY05bD5hmnXOKO7/PcL8xy/ZTfPh93jKKL582bdm6z2dNAY7n+D5Wr2mkmYUFHxiWeKh8zjzgXbO33mKDoxOXXp1V+3tyTl1mdUdBplCM22HZz50FUw3LtracvrSMEnojaD4bFdi8Av8yY8hJMzpcrwtoirnR7R0ARWjS0lEW5dFHXnjBVSfe/7cl4Rcmh0rjh3KsdgJytV8xXHBEEKh0LikXlWzxUTBHH+HNcuD1qY/80KfCmxdsgvthHJzDP83SG1ue4AfiOCmDjscZV3gCxS2GrCDru/OCsYueefCciSrbX1Y7O4oug8hzSBHB/2akn6pBLuiuk2akK88y+Dp6gxWQze/MCPohGkWJ884qTxFZByljRkGK6LMtuhZP+F1503d8q/S+b/8V68hiGQXNaZpCxDTFGBmAYgeCYgywTL3g8n3Esj9Z1puBJTjSdMxvKHS8aa5r5nVGaGZZ4c8Df3to45rt+ags2lI1b6BWZ2kKLfDXdoxaguLLsnyGpnnPZsp7OpaRTcf7DJTXbxve3x9vGutj/bk2YVt7K8CwbY2JKTIU1xUs19m/2b4xNCM/ZplZn2/Zes57Dggzf07Ea4F5LVKt2aUElH9G2M9qlTzCSiyDkfUHn93puS986mOnbDK6fM7i55+rpN09KPE1I2fUWzX7vOIUJV0NQTbHgmYjC+5zNEvhlkAIgYzTnUpFSOISjHZo1DX8M9LbV4WNyiWjWg86/8obTrrjoec2Gox6hXsEAoNNgE/JYN8y3G+dIKDzFpGnLVg+yBo/uLJmTKmsvIdtmtUWloNrMx89rPgXc97xWjqd3PBFeFTaX8EcbLppyqsMqY9z01Xt5tN3WPLn3/2qo/fF3Ufp/oIyGsJZFKAZEavBMbol6FQdRZYxgHOKFsMiQc76O+QQKoPJqsgzVtFI+GnLEgWGzXJUKAo6xehKb/vrLh33tt2/3PL+4/4hBEMzQ4rEqhcmFU7kSiFnfdnsyMiPCJk4PnkAABAASURBVEgvgqag0V7YkIHlTkuGPl/ONCU7iJhAKVQojnIVQzNqQs5mRUvjnBOd6dK360L+xj6GXowsAqKEPGUbMYJlGZXS7Me5syyPgf9Ol//t2JwhTyPkQGSK5TJaIM8t2FkZEcuZ17Fc1EcmsjyW2TyqwCS9JlM93hRKPu2FifptLnlMNsA4qLPK5No6ayUU759EbahRuPSk7FOMFEeRhPZ/e05qpEpDxxIN61gOoK3UzhtiyC0f26510Te/sduZG7a476FzwdLel150or8K05sh0TEUzaUCYD0jRv24B3nDwHJaVucSzuRQwsDkNeRZvSnQBPtKxOlPQbGbMfImZWuxr9b+2Ysuv/+cg47+1Rt9uw45EKFAgcBrICBfw7nh1BFKoDkQGpf4139hHehgmmbptMAB1m+juS4h6WglB9bmPkYDXFOoKPgUzBvzjdgYi/6qWVBsG/fyyomQNd8A7rbzCg9974YPz5px48Xj0fvuNleLdL0PUcLq01k4OnJYB6ktBOtBNvD7DMWDY70N3/p9HZ02yGsNxBQUpaQIy8iHjwho8mlw2qsu2xen5Ylnbjl5lyNbdv7q/KHG4bWSphwVGRRRCTiysfxpaJb9wdB8/7DkBR5zFhQ7giZhKYio8XmegnHcJ2gsjHNUS0xX5PMwHo5sZPfJoKOcGirTjtfj0Ef2lmZ4Xw0BQ8uEg2YYR8Pyfg65b1NEELKASJVoZWSMriWqyNlm1+f65WOqN/lVqdZ63vho0le3GrXlfm8cv83erx/zur02K2+6z5vW236/LcdsdeDEwqSvqv7Cd12XOFf0R9OLjZY7i43iQ0lFzjadeW/RlXVbcZTLqhr9vRT4BrC0lPdvsK9oijdBIVPrHrq/ZLuZEI1zjzzk3E3GlY4dk7jZ1SWLbMpoWdfcRbAVg8jEiCjIan0VNrBBLCJWUlKMOaY0l0P4SvvUGfjIckohptgHChSq1krhRHtJxBM/8dxLlSv3O/znO/B5EyvSB0KeQGA4EOCoNByKGco4pAg8/HAEY0dzzFTOO1PHMbEpTAQc1y0dquP2K8yPtzT6OQ6+gPN5/DY9pBdsWskFW7zhDUuGVD1ZmMcemvGpcdVFZ2zYgrdEeUWkeYYcMWpGIWN8rCoKjJbEFGRATPFFLtCsl4/usGqIBdnkOSSjAJL5XR7B/xkD61KIRKLbFLHEtM/pcR2nvm6n958lJh+S87br3MdZJ7yDHTDf/sKjgiErdoVmt6BzXdYvBJrrzsGxH/n+5M9zvm9RpPBScLzgikJ65v6HWrWzOzo6diEj+PP9NQ1DmZqiMOfdM1pKIWachbGOwoBXZzTX0pQsMmKlkDHC40yCyLVY04tni/XS99+6wTsOetuYnT/3vd3OPvbb75l29aFvPfJ3h7z56zO++vYj7/nqO468++A3Hfy7r771q7/89nu+ffW5Hz/zB+fvfe7xb1x/v8/vtOmu+06ZtMP+H9h656+MrSbH2/nVc0vV5LYWXZrXptpRSkazn7AMKMJoxQisQ0kmKCPJ/d6hapttJhpfOnS/n2+8YfHkxFWfby8kKFL0Nnqq6F/MYGEtR4kvJcJYvsBogKy9SaYDZiD0wDFhNApJBMd2srmGTg0sHy5hBVpb29/W05md/eUjbnj/jP/wZzGGKp9QrmFMYBCKLgfhHuEW6xqBUaMkRVQZ4BurBZyV/78x6uD+xQQFjLN0LMsMTAUHVtewiChqTFSY37rFFkPmv0zyf2Ps+dM+P7W1Z8GpGyZmm6JpiEa9glJLC1Sh0PytUNDRCJMAfqqNYoGuBJY8vHjwKQUrJOtoGVFRRiBhRMBrNu33iRg9KVynG/Vctbzxd9+42yevpBgbuuGP19iHDc+3jqiYmmWsHPuAhYAXWsv3+W2/btl3LPNZ5m+mft0bBZT1O7l/RT8N9G2srR1r/b0oygzLoS3guO5Fc879msLZ+JQXpc9vtqPj/QRiZlRIc8D4dqagdqlaiKo6avtRO/9ov+0+N3PqTlPrQghelSevwOeQyZPzqdt+uGvPt3xi1u6v2/sPp+z3g0u+/IHPT9vtLe8+bJwcs59dag5Fj/lFVFeLRb90hbyAJItRW9KHFpekK3CLtZplp41E/Yi9Pz59s/WLX0175y2OdR0xoRaWRfiqjPL1d/VAaAPQhAbXOZrwGZFsHGkNBFMwdTqH4UsQVRmSOEYsY0YQK4hVUba1jtuxc4k9/Tc3//rDzvHNEGEJBIY3ATm8ix9Kv5YIFGIRbeAoxECnCisYURCgSPuXNOJ6BD8t6Zin6dyW5fPrfp+kSCtQjEmnTHeWz4Me24MhsLj7fjL6hZNnH1da+tKPNi6IDXV3J9JaDUJJOmY6CDqL1iiCqKZIUgvF6FcDCjWh4B28YD0V3+q9EzKcgiqiAMVzdD3lNQATR+jPE9Nj2v82Zsv37Pvmo4766fD+G2Mr1mi+3S1FjqXwGUiBZkpfapsmoclRLztumvsUDPuZJVPnQPFGfryGEVKs2F2BlpZ4ewMjc23Zfhaa1zK8mKNz9/drfl+N98x4weX3duyzPIX3kzxHQFN8q0Ib4BgR7bOXvj3b5Q4vxHjKavlMXn9ybff1d33x+x/+xn0H7P+Dyz/0ng9+cdPCuMnr29H7uYXp3aN1y9J229JA3aSr5Yb//0VW656tthLpFafs//sNO/CJxPQ9GOdZLhrGlWQZ/pm3eY5q30DEzNQNdEPDMALmcvYOA3hRptjeNktR4HMnuG6ynEIsgmJb5HWNvt6GzI3cfsHi/Mef2u+yL8+d60qrtRLhYoHAIBMIgmyQga8Tt9NdsRRyvLX0T3SOjs7L0Xm+0gSdmTd2MTpU0NwyE4b7KFAc34gjG3EqCJUsLs8WU6dma5uPu+PKjR6//Venl/tePnGMqE+SeUMUIoW2tnZEqoBKXxX00GhRCRQdRKQJgdMvlnVyTQ6Aj5Atf+v39Y55nmWIRdMJOUh0VnSjV42+a6O3feCz63/mlIeFmMz4y9qu+Zq9v2UNDdtf0wyjX4aiSC9f99ve4bIvae633PapF03aAto6mOYxCcNzLPdxNmuFC5yh/obcX0NEgIghZALOgDXN8rr0/xTSonltf31/L2ecD8qAARqeE8FRvNUovg1fIsrlMb+fOnWqPw1rYpkihJ46YUrltI+fMPecqSf9YpsxU3bbsHXcR0aL1jPKInlyTdxzTVxTCGGvPvdL9603RnxNZT13tihbV3wGsv4a2gslWD4/eU0j5zRmXqMoqxsYRsxdZuG0g9AWSkgIWORpnVO4fClyDhFfhiK2R7FYglAFWa/bCfWs7czjTvjpl556yo1dE3UJ1wwEBoOAHIybhHusWwSWznwkEU5MlHxT9eJK0EFyzIR3Yj715tebpuFnHprmDJgHFCwD5jS7Xy5gtOybsPkWs9copRW4uLvrgk3+8YfrThuXzj2gXVVK9Xo3Uha6n+Xu6m8gzwTaiq2Iua3pVMp0CtZqCOtQZGgsoZyUOeA0XQiFhaapqIgGxRhdDBTz67qoq2Tib0dt//4jWvc65ekVKNY6kYXIoOlMDZkYiqrcKeTL1g37j9+nKcR86i3nujezLI+meDcO0MyrjYURQqwomM6epRtRd8HymtbF7J4KuRHwX+7XFNGWU5GGqeG9mnmYOm5746wZnGB+XqBOFddgJeKkpW9F77068k3ji8p3djvir+d89sTv7vCubX6zOq45mNe47KwDZk79xHuOLcWV26u9C/JyDFR7K4hsQtGlIBhhBp8tS8GraTlFWe7TVFMQ58jqDb7GCBTjBFpzX2aQ1jOOGw55nqJYbkGStJcWL9TfPfvcm77++ONu4mDWL9wrEFhdBOgRV9elwnVGCoGHHnwoEVZMBJ2qo6NqmhVw/8l4HNzvzdKZeqPGgd/251key2XUN2HjrV5Ym/xeuPyEzWbN+N0P1ovT/Up5X5zWupGUFDJYCDqCQlyEoBNXmUNkJASdu9YWzjk4qyG5HuUWMcWYZD5Hh27JhzoNPZyqNFEZWdyW97j2K8e/YedvrbfXCU8LISgx1matB+/e1KmMQLHZGe/wwseQjaEw07792UdymiFTS/P7LI97M0w1KXkxZnnM8RzHvLCRXNHSN+oNKaOYgU2HBp25ZpTLUZhJRi799YyL2IYKhveybFvHtnNcN7yvYDSmzkhOaiySchk+7ersWSsOn/3FTt127UeRV5T78nwst/vc3lv+4+iv7ntsa6lxrdV9eSIlBF/IYkSIyF+xbf02+ILmctP8JQbDtvLmv8gfSwXHNmjU6ohVBKXYXoy2OfaFjMKtWkkxqn3SqDmzeg8977xbph133PSNl98/pIHAYBNY1fvJVT0xnDdyCbRqk3BqYbTgQOoMOFCSBR0rlpnfR8EG8JhP/aDp7Z/HOYj6bWcBTWlT1+jsz9vWiiBz06erx4/f/731xx76SWu19xOury/yb+I5hUPVGFbBwTAyIjnox82UAoyiK6PDbtCJWDpw6T23ToGsgSh1iDPJt3dusn5OSWgpXVce9XfJjtPKb9/zmI7PTHveOylSGzEfS4XjBQ99LRqaTMmOM1PI2WcMRZYlz9zvo5jNuC8jO/pjaPYVw23N/Tk5Z9pQWBnuZ+YVpJeUytb/IVgHhYjC2l/PlyM3EpbRMfjfYuTUufPGy1rey1jHYwL1RoYoKSKzhuXOKM6FaB3TttdMNzNewduHbMsITN5OzD76258/YVRrdpHQaW8spLMUu45sHds2VjF0ZiDYDpKCOU/Zznye/PRlw/9/l9Y2xdjy37r044ni9HPKZ1NI5jUN0dLSNmbunJ4DnvlH/eIDPn3VVstuHZJAYFgQCIJsWDTT0CpkXu8vFVTSbjTFGB2mo3GsxL+mfn3AwAF2wMB8XoRR5cCbpejJnHQ6Kjy13sEH1zHIC6Nb4pnHbvqAWjD77LGmvmNLlkWKjsGLLCi+uccFll0wIuagDBDxjV5QPDiapnP3JnyZcwchFBQjLtYI+OMRFB060NfIbVYc/UJh8+1PanvHO8/caOo3Br2evohr26wTylhw2lAwEiWhydDS6RoKMU3zYsxYQYEu2TVoPN48xtQf86wtzzfsQ5aiiV0vWtE6KcQ1ZxVyqrA6p49zXtOKCI7RGeujZTzmjzuWw6eWqb+35b2kn3LOMshIMTqmUc8zLO3r2vemW27d+9o7rm1Z0TKsW/lWvTZTtm1dePhhU787ul2dYxp93XFk2AqMiHHq0aQpWoolTlGSN/tCUZWg2Dbguo+SOT5nVPB8AbSQ1vHZdHAZIPmsSQjuzwF2ImELxbTaulv3kuSK4w7/zXZ8ztWqlzicGQgMHgE5eLcKd1pXCMgsHS+tjJyW8N+X8m+wgs4Sxg+SrCVT/8YLv4+DqaNZ4/eDg6iAo6OzPOYjI3UHWxo3/rHBjhi5WbcVnj7hgL3VvGfP2SDJ39omDGxmOawnyH2Eq8E37lpGIeZoHPSVkLzuAAAQAElEQVSbjjtmFSOKhogzK4LrDj565p0FbIFRlBgVOoqGAJ2MhDTK9WTRs/GG235rvU9OvWz9PafVMEIXbaUY+JL+gNjSdKI5+4GPkGn2D9O0ZceshPaiyx9n2jzmyLqZR8D3Hau9p14xmFHU8qSUMds2hqZgtry3RQzDS1judbyP5bWhBfxlrYt4jOtg/xYCtUYGKSPe1wKxQNRaGLuwb+mpf+966sjz/vTzLejw2eIrVpaQC3j3mzq6v37gZ344cZz6QaO2sGJtBeWy5HNXoRirYVRrG3q7epHWyZ3tJdguXogZCmqrNSwj1c6wLfis5YyOSeaRXHeMtsEZJJyejthQaTXZ8dGHl5530lF/eC/bSAX2gcBQJyCHegFD+YYegYKIOnSaK0kn551Z0+jc3L+ZNbIZJXKGdeAxS0frDdwvuG3oCBtO2GjU6EH9zTE3Z0bxyUuuO7iw4PmzJ0Vm6zZFZ1+vQ3CQj0QBXmTGLkHiYohcwAtPS0GmbUy/ENFZSzjjAKspugDJejDwwiktCcuIihYx+nm8XxZfGvuGtx220fu/8Ssx6UNVUhixH2sB4yNPVsCSl2Fq2B+MF1w0vWxdE2tzP7eb+yzbhuc115vnAYbXsoZKaQVpOh3P9b8tKYSCpRhzlMuW18yNYFkkRZiD8+XhvuWpZj5vOcsBCjTB/tqsA9tVSydtIrdIizjm0bn/+MmB15549LG/PX/9FSxOyEYC73yn6Dvi4F0vLCW1E3TauaTSOx8dbQlllEW9vw/jOkajzOllYQChaUyppuFytpU2TDXNwgsxoW0zD0U6n0tAsWtESiGRhbgYjXv3E48uOPsbB1/7UYqy4O8QlqFMIHTQodw6Q7RsZaU2tNoJaSMIChVBZwUrKFBEc0D064L7vIHiy9KpeWeGZXksB1dvhtt1IfJeo2cNVlXd32d0PHz2hcd0dC85eUyWbmwadVHhVIlxFlHEKIh/A+ebtv/r4pFWEDRrvBBTyJqCQDTrGOUGcWYhHatNB1/nW7xBAZFqQSV1Wadq+7vcctt9Jh5++Qyx7bacWBmsGg7N+zgnnLFkRYaa7W7YJzS3jRdcNH4otChoHQUSq2AgKJb+zxz8MYXmfq5L5ckz4wp8lC3NalQza3hDQ0HlTbMM2gB0676LwnIC05vmtTWvqSnCvKWZg1IJ/J/tUOzvjuc1sgxpJEW/ydqzWO8gOuQp82rzHtj/umMvPfDK4993zPQzJs1xc4oIy6sSmDx5/dqZ0466ePx4dVgsa0/kjS6t0z4IkyGrVNHoq0CxMRSFs+Lz1bQckGwT+L+wzOhYZAHnG5IvTpLPKXIH3WhAZ/28N1PTUI0q3vTSs/nVh332+v3nzHGhXUgmfIYMgVcURL5iK2wEAitCwJjNKFXgHZujA3V0rpaDpk+X279uC4qyf90P5vfnaTrdVEVd3aMmLVqR277WPO7+367/+PWXHNfev/ikFl3tUDYTQjLixTdqSAlrLfI0g58CYagL9WoOa3icTpjjPLxos4yKOSqLiDskp2xNKgDWPRIK1jn0NnStV7b8pvX1bz5g469d/jchRs5vUr5a+zgIZy2dpQM5CRhmtuw7pinQAM39ms7Vm2H/aAo15tFc52lwPN5M2RZ+3VjF3MywAp8NNtxsjkK8WLCNwHv6P5vhKKKtVNDCl8lCU5D5sliWx/CeGjxGc4x2SpEgb1iKbwWlIuYVEIUi8kig7jJRd41CnmATXYoOxpjSrbN7Ft74zcsvOfrTFxzzkatm3rH1bbNmFVagmCMyy7bbiuznV3zll+2jcFTa6PyzsHVTTiJGvzK0FcsQxkKwc/hnUhgi4jZoPmoGbWAZmrYpU67z9ZByGrA6h6OCFsgh2b5SxqJeLbS/8GzfWRf94Gdfun363DG8UvgEAkOOgBxyJQoFGvIEbJ62CydhODBaDpLUMXB0ZD4VdJje2y7fBnwXk/D7vS3f9pEGy2voWD0+Zdo0vaYr/ei0L7/x4St+dFph/qxvtOo+ZVWORkEii2JGviL4P2dQTxsshoRKCqxPDBm3UihE8I6abhtwFGtOIzKGb+4xFL2w/78pba6gbIZc13VaKlw/dpsdvrXRoT8a9O/FsfBD9mPIjFNG8P2F/hXsOtAW8H3GODS3veD1ZrmTn+Yxx2M+vxdK/vzltjIVbX/9R+uRTO725wghmtf117NwDKhQjNFpa2f/GSWzEPD31OzTkaKW4lSm0ILN7xh5cchSi5SR1IwXVIyqZlmGiGkjz7Cop6toWgvvStsL0yrtpSt/8fCMSy6587rTDp1+/qfO/estm8+YMSPiaSPnswI1FULYX1539B2f/+w+xzhdvT+t9eSxEkjrdVgKLfiOwlRowJsXZ5LjjjebG/jfuvTWzMsO1hRhbFNF4yCFQhRDCcl09LinH+v75nk//Mlxpx/72zDFjLAMNQJyqBUolGfoE1C529hHiQQFlfNmFayRFF1MGV1wdGCawsw0j0k47hPc500yr+Mxv25EhKxQ/uuarvFfj//C5vlz//hWW2XRvusVVRJTPGVGI7dAzqkOawSLoOiGaUIgbWToq9YgVQwvAARVgaJq8MaKgjvheK51EYRqR80V0GUis0SWrtCbb/Gdjb925lr/I7es0JD6WPLK2Q80Bbqhea5eeHkBZpyAbZpkqmDYbwz7i/UGKjLWhG4Xhi1kyby5X7qBAzz2vz7vBYytyd/aWpx7AZ2zvTVPSnkFy3sYmmO/tNbBcd2Xx7AMjv203tBIGYFRIoE3wciaaEbWuBYXYHiNiGmWs4RSIiqXoeMIfTpX9RgTTXtpl2pZfu3Feu8Pf/fn+6efPfP2y75541Ufuf7BB9sRllcQ+Oy+Wz100EEfPdrli26zaXem+Jz6Z04wEi0oiIV2EFTy0jo+gxZeb/mJa2m5Sf4+uu3/jIZ/8ZNsGMv8UghU+zn1CQGX8/R6sl6sxx765/ufOekHx/1h1CsKEDYCgbVMQK7l+4fbDzMCbto0WdDJxuBUgfLOkk4LdLSCBooyb47rtulgKXQ4xZMybywTmMwywkC3ygE04VRQgzML/XHbX9YUAjp9ef/h+0xuX/TST9ZzjaljYldsNPjWTSEo8gQyKzDSRVGlI9hMwtFRO2050DtQi6GR9sHoBiSjISU67DiXsBRwTsbIOdD3ZRomancLG8mi2qRtTpn8tTO+td0RVwzK9OuaYramrmsRI7URUgqajM7R0GEK5yhoRFNoafLVnB62bANryNko+PWc+TSjaznbJfPHKH61ieEjbitaViGE+8QHv/CXQrV9hszKTskyRbQFm5z3j+BXLO8Hl8CLMGMsrLUQQkFKHqdIY9dFg2XQLINg3wUFW24dy8468RlocD1nv08pHHIvBPx53O9fXCAQN5yZ5FrLbzUdbZ97bOm8G3/xt7v+vuf5p1/6sXPPfP+MSmXSLMeKrWiF1tF8vp323ff1Dx96xF5fjaPua7Pakprly5HjdLHSCqaeA+QsnGX0rMG2MnB8Np326YCZfGCMMRmz5hRuPCXh8+rzSLZfSRYY4S60isaoLzzwh5m//d5RN27NcUKto0hDtYYZATnMyhuKu5YJvNzbW5C5bPF/PNU7LeedDg10aM6wcFbBp45OzNAT5ZmDorpxdFSSTiyKElgroTk4Iir0N+KWl3nWav/4P/j66LeP+MCEWvrTcr36TlevKs1IBzUAFAqQNoZ/86ayouCSFGaC2wODuK+XrxKUfzwkCkkL+vpS1qaA2DvzWgYO4iiO6nAvVhpz2rd+y4lv+vihZ4g3vbsbYfmPBAxi5OwTOSSM7yME7GiWwt2wX1ges0wNI2COws1y3Tb3KVghYZyAbe6jQKKoE1aI/3ij/7Kzt2PRvLHl9X/eoto786qBpGCykHC+LEh4Fq/L+4GtLNk/nXaMjOUw1vG+Ao55Le/rU8N8lqLRaIfcWhr7jd9m+RyPOV4T3HYOvD7P5YrlFXLhRF1BVSNR6ovU5v2xOLhajH73rYvO/dmXvv+dr578u5t3vOPRR0f03zYTQriPf3y7uQcf9IlvRqr/qrTW1cjqfcizBgpxEbqeIaclKkJWq5KvBSjIhPEpjYLMZWyzzMLweRcakBTRiocU20NaB8GxyKVR5NKWnR+47R8/PvPrv/2QC1/2R1jWPgH5qkUIBwOBfyOQl0rtaa3e6p2RfxtliADeLAc6552mcRwkBcABkE4TPtoQywT+bwg5A7o1xcgHoCGAKJ4zefIOff92i9e86WbNKjz+x4f2wNPzzzK9+ZY5xRcKoyGKoyjESrCcq/JvzMJZRsMk/LRHYoGCFSyVhbYWzfrRMWcuxtJKCjVqLHpTulWKhZLkNeiMF/X1vljc5nXHbrHTh64VO+1Uf80FX8cv4ChULIW7pWjRXPfmxZmleLF0mpa8LfuIZVss3+f8PgodS3M8z/E8v85sK0Vripiit91wi1trPfU72uO23FYMYral4b00r+SFl39JcLyw4L0kZTvYnw37sw+0aPYMIySaZh0MT3Sa3TwDp8IEHMvvRZjv82CZBcvpONUGpt4s6+i436eGqWFf07x3lmVRS0vLe125fOrvHvnzZWf97obTTr61+cdMBYs1Yj97fvr1Sw/+8tSTEHddVanP56xjF/p7emEYLdN1DcV2idgmkinIEXweOagAvrFoXlB701nO5z2HX7fMYyneTK6hMwPdkCqtJTv9/uaHz/neGXfsPW0aG37EEg8VHwoE5FAoRCjD8CGg6gwXGSj/W4VwEZyjQ6KDcXRe3uE0U45rjg7HOyhFJwo6N+sHTaZGs67cZ2WEhnPPbbbTLqv1j6W6GS7640k/+OjsPz5wZn3u4jdUl1RFpc8hyxJY28rCFinAGBFhGVkSOlZGQTgl5jiwu6bTjJmHx7muKdwEyyxY1p6+fkR8QwejKZVMoL/c8Uhl9LivbP3G9/1GfOQjKcLyqgTYH4Qlc+PbnqLMUQw5ihXHvrN8v+Fx548vM8PUcJ8XMY6ienle589zkj3vVW/5/x380PYfWrzVepv9UKZiQVkXoTIF8P7ga4Jj9MuwjzKoQr8uuTvi7gSGZWiWiYLLWsH+AhjNlKZzwGpJZ6/gy8iT4Fgv0ayfgmA54c+juWX1sBQRvr6aqaFZKZE6izpMQbSU31grJ1+547G/XrPPD79/zG0LZo3//yqxDu/496rt/fk3dB5+5D7T4nLvWUrWugUorIxFImJUu3th61TDjIghN4x6gUa6eiD1+7zpRsroWgadMrJGM8vMNoWahbIMSOq21/3hlr+e8ecbT/oMwhIIrEUCQZCtRfjD8db1Wu/rEhkr0NlYvuI7po5OS3hHxHV6MTolQWe0zASzagdQvEmR0HlxPwdUbaWrZvnjGB35Pxi0WlA4Tvf87gf7fKPnsSevbTF2S1ioSm+G7oU1LHqpis4FKWrViE6WES6WIXOMdKicDjhHzWqkdM7O0FHnRUS6DxlyGQAAEABJREFUQJN0tBnrk2JUEkNai+7+LKu2jb95dsu4z739ktvvEFOnmtVS+HX8Is5GwrF/MCV/9gn2GYe4ue77j3OSnBVNgM0C59uiuW/Z/ua6oqiWbBP2IV5vVZB9dcpBMzcbu/HnW0xpcVxTLtIR+2rkuwpyqZBSJFUd4C1lRMzyvqD4Qi7Ag3CpgOF6xn05RbujkPNlByOpcEnzWvBlpwizy4SZ83X1dee1fL0Mt/11qR1g4hgZ724o9jTFfy6SRLe2vXl2vX7qaVf99LYPfve7e850rrwqdV0Xztn7c9sv/tp3DvpesbX2rSxf+lLe6Hdpfz86yq1si7xp4PSkozDzZvly5c0xEubNizJvllExQxHmI2befKTMGYu8YSFMIgpy1Ab9S9x5H3j9t07+6Q8fnOgc3zDXBYChDsOKQBBkw6q51n5hW+O2NmWlSGt0XRQ1oNBydCau6WzoTOl4BNcF93vzUScfUZAygmR+weOWjqfmXFYcPe4lbLppujpqNeOoo8Zd/YWvfzV9cd53Co282FIsiP7+KqcmFLJ6hFov0LU0x6LFVSzpqqFSNfC/YSlVEZAxwNRQPDrrHbSk+BIsL80aXiPzwT70O2Ebo8f9snX7nb7xgQtueFwI4bDCy8jO6DwsJyjAAMv+8a+m2X8sj3kzXNcWMBAw1osvwDG/72P+HJ865n0tNA/f+YB7Nx+zyRFxGs/SqXANTnHpnEOhF1QoUPD5+yo4rbgeQbPPaoovbxkjYppmTQzHvmJojufZZSLLMK9plttfQzCP/KdZllv7Y+w1umkSDWPQ0Kwt+55AwheGHJWGE2LUmLhaKk/uLRSvO/WHFxw+/ZFnNngtdR7O506dum12+8yTL50yZbujy+X82daSdN2LO9Fe6oAw7B/GQmgLdixIRrqbRr4SFoqiWvrH1Bm2g4YXZk7nbNuc4tmgXEyQM2pmKegS0dbR6I2PuujsG77/0x/O3Gw4MwtlH54E5PAsdij12iJAubKFRCQlBVdEEeMcuAgOdmIg5bZzXOf4CKaWAyTAba4brksKM8tIRK7U0q2233aB99N4jcuDX//WxAV3P/aNllp+VEepXC4Wi/B/riCKGVhwBSjVBiHbkTPq1dMHLFqSYnFnDT1dOfp7HBqNhM4/gRBF5nOwHOUNOGBTFkgO9OViGZ2c8XhRRj95w5e+cPxG3/jmc6+xyCPudEs14v/Wl3EOA6kA0cKynziKMJ9a/mBkAo59havw+5vry8SOX/dm4dgyq45QCGH3fN+UX2+63mbHyaT8SOqUn8GC/23LQh6jyOntQkNBMXpmMsF+I5G6GCmnTXOKJsNIL7wI47blc5CBdYFETrFlnIQ3B8UyCmg+D74uTaOoc8xjaY7CjUgYTFMQqgDHY7Zu0RK1Mm5YQH9Fo99EWKBd+6xK5fgzf/rT7xx5xXVbrnqth/eZQgj33Sv2+tXH93rXifVG19NsJVfrYYyRUUjhHFvAsgVsMxWwAAUYrBnYx1TQqMZgXU4z7EGWppHm3Sgk3JdVAArj1mRsuYCJ+1953k3nXH/6oxsOb2qh9MONgFxdBQ7XGRkEXpj90ri8lnFipYx6LaPzEU0TVsDRkYIOCRwWmyn3CaGgGIGyHCPz3MB/H8txmseUSgvGv3H71/wnIu77yvGjn7j9z2eWMntYyUXj8mouLO8rVYKMztTZBCaPYHxEw5VYxhIjYzH6eh0WL25g3rwqupZkrEvE8bjA4wUO2BEHawnB4Tyiw80zUdcivnTK5w/6lnj3R19CWFaaAJufbB286PJCxDhLt+mafceStN9neVVD8tYxH82vGx5jVh6Rzbx+Hzde82czsVnjve894Nb1ih0Hdri22wppBEbMIDIJR/MRM82pSU2hpOn0DcWRYb91FGaOIr+ZUjppCi9vXoxp9pdmPSggNfc75rdcHzCWn6V2fEacFYzO8HmhMMszg5QmZRGGIs0wKqcYpZM6AXifqDRKpEm5Ix3Vvv+Mp546+9ALL9wII3QRQpj3vWfnmyaMGX3S6FGjZ0cydoRG7aX5fJtmaq3mes5+xtSv2wzWGdrAPudyCuWcBDWE1DC6hoSX0SZFLAWyRo5aJYt1Vtjzumt+ecX08x/bjpnDJxAYFAJyUO4SbrJOEPB/gyyr1LcsJi0qzyyiiBElwek+OiLvaPxLqHHwYyQsvas38Jj/O2ReiEUUSc1tZ9Gdpi9CqnmvFcwTs5/f2TnzwUY9a+vrrVJoNTgFodC5tAInihRlQK4FxZaEn2oyFGbWlli+Mq0FedaCzk6DuS/2Yv7Lfejn1CZsC0vdBmMKPF8ijlv6nIiegrLhz1pg1ZY8S611rinCqEnoFOlLQWNfMDTLzuKWHbfc31znPjCz5nEDnss+JYQAlESKbNUK8i9nTRYiP/3DX3t0c73FPhvL0Z+zXekjIlf1nAUQxRL6M827cIhkvzWGJ1KYwU9R0mqZhWHftzJCqtnpowRWxvC/FGCE5DPgkOW6mRrrYJyAo+BqGl9arOE2rykp9CRi1I1jgE4ho0jLUqBIMZakCrbmyKwg+qQqV1pa95w5b/E59zvXhhG4sE+Inu50g462se/c5vWvb50wrsM5m0Gwf0g2E7HDOkJlhFsqB8d17Rjatilyl0KzNY3QsDSNHLnN+d5oGU2vMuav+Lzn0KbKaUzBa+ayv7v2wR+edemN79v2kP1mXDWniLAEAmuYALvxGr5DuPw6Q+Dh9dbjqOViwTd8y8iBpWPhWAhHJ2IZyQDYnbjPf6/MrysfJWDeUrkVGaMA1XqdjkmCDsu6lvISFI2XP6+Jz+R9dr190x3eetRSkz4pSy3WqQIq/TkH2BbU+zPkOR0dHasXhRmdaJ4BeSqhswLyrISUkZEsLaJWi9FFYTbv5QrmvVxDd5dF2iiyvG3o7dMT80p2wu2XXHeIe2I6Qxevqcgj82QFOj8BR69pKE4szViioKhxQvGYhIGjQ3UDqfDHJLR17F+KvSuGpPgRUvEAr+UcVVBz9TX/mDZ1anbWvkdc/+Htd963zRXPKejokZ6F3bqgSoyelNgX+iBkAse+Xa/lUCJCLAoABZqhGPNT8RmnuxzrpFmaRqrp/BWSchv7j2qaY6TMUZBZy/pQM4DrggYt4CjwtI/EIqZMUM1twaiuovlfOjCpQJ3RXlNsFRUkHz3te+cePN3xghg5i5vu1LH7Xb/zlZfceGFry6SvxHE8cYstNpVbbLkZ2tvbKaRypGkdeZ5yrGkMrGtu65QvZA3uz5AbrpuMwitlm7CNKMjY8di3FI/nyJk3igV6epegr9IcmkSWudd191UPu+Mvv5k0cmiHmq4tAnJt3Tjcd/gRGFtLWjiStTff7ukPDIWYN+8bvDMC91k6LScEpGt6VA5+lgOd49uoRKHcDscoghFxfcOtX//i6vhzEZMPOSTf9aTDbtxi112+0RNHD2dIbBK3QJgYsaKgosP0f+3dO06dW+gcNAmdKZYr4nQR13UMnZeQ1kp0vhEWz3NYMFfj5bkZ+hoJoqgdLa643hZR6wkzT/nN0e6229qxJpd18NqWIsQ5QbFBY+r7jWV/Ac01+xEoxhSafYnbfh8QQckCvBiCiNA0ChdHISO0vyJW2yKEcAftvNszR372wyd/ZLv3fHk8Wk6Nauav1e7expgxY5DmOSqNOpJiAf5vWEmKe1dLgVyAEWPASGQMj/m/4h8XWuBEjM7u/madfD2NFfDmy+7NGgGnFQVnxGckQs7nJicXbxkk9wtYciiqFqhcQTYECraEKGmLF3U1Pv/sLX9+22qr/BC/0PyZrvz93991QNY94bxJY9/4QWfKpTRNRV+tC2PGjEahUAAMpbCxMCZHljeQZnVoPuyZphgzDfJM4SNiyy0zGY9r1KqaETILGSlYYVBr9EMmQEt7Ad39i10973pq113fcdH3v33Ea/56xRDHHIo3BAjIIVCGUIRhQqARMzxhheTIBUsH0nSmTYeq4J2Md6agE4WLYJkaHlOc1qw1NKK4hDgpo7/a4HQTKu0bbjBndVVbbLVVutuPz7ir7U1vOKjSmjxTjyPUOBgbbUGPDkjBgISAYyrh/9G5uxiWEQ6gyLIWIGyBR0qQohXaFdFfEVjSmeGZ2Uvw7HNL0Lmogdqi+uhid3b8fZdee7qbMSO8Ma9EA1ojpSFvixjwX4qn0IIsMRqm2Jd8f4kpYqKmCe8RKWgc+xAo4MG28t+tylKHtGGbwof9z2ENLNuKbbMvvv09Dx398QPOePcW2+87quY+Izr7byhnrreN5TF9NRR4X8NQa6QUIgotQSHm2McVI12cQUOtvw6vD1pbRsE42bTlz4f1DGiCorK5j+dorg/sl9AUYZrXzHgPbYBGrYGE/9pUGzJGfvu7MuGilq1vu+fP+09/YnErs63TnyVPu7YLzrrxq90L3GmjipO27+tuyPaW0fCRxjguYMmSpYxu16BUjCRJEHOI8sFT5/jsw9sAHsee5pzBgLl/puU2zv6yHb1Q05zWtFLDKU3x3YukTTzz/t3f+eUzjzn8RrGRqA9cKfwMBNYcAbnmLv1frxwODFMCibPrK4hRoGyxkHQ0iiZB5wjvNC0Uh0DFfXSsdDKgMHN0vo77HSMc1XoGTZEmCq09VpWeWp0YGOEw+99wweMT3z/5Q3NR+01hbHuVRYSlCPNmlITlW7CMYkgpwfw0rosypC1CaNbKOiBiVRIBvnYDjLSleRkQ4zFviaE468T8l7rasLj/y7885js/vOK9H3wjwrJCBLRVwlKIWEYjnUngTBGgCPbrcAmkKEK4EoSXOxRgjkLF588YGaozEJU2gEbdolr3EQ2DNBN2hW68ipl22mij+jffv8fztx596q/u+Nq0qW9uG/26bdvGfX5ClPyy2tX1jFKiJ89zIzg9GaUCRVdAzDIXKJ6K7DfSRYy+ZDBWNU0zdVZSCCg4rvu6efPHYQQkI2xCC/ZDwfyAF2SpdEiNRc57iIZDkkVoLYxGquO4osoffXLBwndiHV2cc/KUL/z29Wcdc9uPCtkGJ5dE+0TbaIj2tiJ5VCnMHRYv7MX8eYtRq/hHXUAp1bQCn/EoitB8xvlI81rwi+QPQab/NCFQr9cYKcth0IBbJsY00npSMg/tvvvO7/3RNUfcK7YVvjl4dvgEAmuWgO+ja/YO4errDgEjKcaosJo1knCg0bl4B+MotJopt60T8CLN8E3feCckYk4PgvsUyi0dyIyrVGr9r/kL/c1i/NuPj1902tzXf/hdhy+K8ws6Vbogk47vyhyV7YAZx5QizUkHR5+utaaIBPyUBX0o1y20tcg4WDtZRKnQga6lNRTjsYjlKPR2NtD1chewqDK1vTu/ZPrHv/g251jhfytH2HwlAZ1DphQV9YaBF1gNCqx63SHndFxGIZJlEprTf1mGprNtpJYCjHl5TsqomD9mvZizMQVNDGtj8co7rNmtsz73lcXnf/ZL1+47cSnh3IkAABAASURBVJNPfWTyO/d+2yabf0v2165Uqb230VPtlKlzkmVOKxRhrKPmOqBY1v8zTcHmnwkvxCwFmKVAFVpCsl4yZ0qjMqBYBfuggzYOra3tZGTgyEiIGGnm0NAKXZnd5Je3/v6d6+J/Su6nKC8+8sEP9c9PflwyEw8QjbYkoeAtxRRZnGrsr/Sit7cXC+ctpDjTMMbCkZXVjqJeIomLKEQJO4R3b4AA2A4CfE7hOCZxE0JwWzpEiYCINBAZyNhCFkxf0mp/NuUDO+73vSu+FKYpPaxgg0ZADtqdwo2GPQElxQTh0EIlwxFOsD6KKY2OZ2AfnU9zfSBC1tQpTnLwi+hgmF/GyHLntJXzt86WdvMCa+Sz5yWnzfvQSQd+P9lu4+/mJdkTSYUCB+KYA7alx8uEgZEWVvmUDjTKoQsOJpEAB2k/cBvm1VqDXhGjkhZENQtHAVEojoYWbRzEx4u8R+3U/feXzvvFhw//KKcwI4TlvxLIc8upRkeRZdGoOfiIV8bIUsZpyGyZ6GrUDfdb5jM00BwMxYcxEaNG7FMigWAEChT/cpAF2fKKTZ061Xzr/R958pyPTb14/w9/9IjP7bbXIRu0T/yyruQ/QCoeKIpCrSCLzn9fPBYFeJFgKKa0AesCWAoxv67ZH73IUpmAohD10TF2TQoL5rEWwliuW3R3dyPXFj5ia1WC/txAFFuRc7q3t5bvuGBhZZ36PuP15z3YPv26+76w+IX03MR07FhAWURGcaJbwuWa0bBe9Pd1Y/6Cl9gnUvgpSsXou3SSYkxAigFTQiKixYyaSSnhDVyEcxCePY0rkHz2640elFqKaOT9PY2s85wP7P6uaT+48gvPM3v4BAKDSkAO6t3CzYY1gbKWbcpFsRMSlk7RMDDkEMHSfOoNDDMxVgDB48LG0Jlt5rVRRH8lUckzt9EWWz4ipk2jl1lzOLaYOrV3/wu/e01fR+HgejlarGPpOFqzXANd3sI1bx4nChAUCU6jYQ0M66biBHEcI1ExB3xfhxyCA3651O4FJXw0J28IlFASY0XpnWbe4pMvOuXq91HI8WIY1GW43EwgYSBDUZgrOlIJQ57ecgqUnFEiL1q8WSsZxYgA9h/IBBAeqWAfE6BGoT52MMYxjxVYy8shkyfXDnzT65/+1ZFfuvH4Lx996vu2236/QqV7z7i/++JyWl8kKxWTaOeUYUEZOXY0S3Hh+NyguY/1aK5bOL9NFo71B6cwQSaSVZQUG+VyKyrVGvpqDbS0jUFPpQEhCyiWOt784yuuWmcE2Y9Pv7/tiT/NO23h8/UTkZdfV4pHSUdmvgsYk6ORNfDygpexdOlCZHkVRAMHAz53EEJAUXwJwb5iLQCJiP0nonBNaEokkCJqPsfN/GRrma/B67SPK7rFPXP1Fm/Y8KSfzPjZ2add9IW5CEsgsBYIyLVwz3DLYUpg5k0zxkc2KmuKLg06SNCxcmAztIwONKdzcXS0ysSQFGPeFFOjgToHyqqSaETSufbWPw0GArHZZo2vPvibX9U2nfjprqJ6JBVCO0Zq2qISJJ1eJGPEHPBbkjIky+9YH8QFWA7cvh5+UPdTnKIQM4ImUHcZB32BYqT8ezsUIxdFyam47q43tXRVbzxj8sf2dzNnxoNRt+F2DwY3rCZrKYsUVgK5pSul+LCeO6fyLNvDsB/5yJIXXE3TjvkM2K3ogHNYOl9D4eynm3PL0NIQgrDn+qL23Y+++6W7T/3m3X+cdvRhb5kw8Q3bdow6cIwRf1DVvKv5FSVbYNSPtcgtvAKTHH1zVjilGvM8NBk4TuGKPIJgZFBwXZoIWUMjkgVEjLg1ahmKZIhUIKth/Wde6Bn2v1wyZ4Yr/vTEx3b8xz3zb1LpuMPL0fgJaSaEiyQymfG5q2NRz2I8MftJLOxchLpuIClF0C6lZXxMHQz/5RRtlqkQAuA45PtaErfxpTBGMWqBoijzUTOdGRTiFggrYGKelVSffd126+11459OPX/bbUVlCHWrUJQRRoBDwlCucSjbUCJQTqM2ZaMYLmKxFAQHPSEUQHNSwcoYA8d43OehJaqEJCk2p100e1vc0mK7a52PY5AWIYQ95HdXzBj3xtcf0V0Sd9m2Yt5br6NQaoGjw88yjUpfFQWVoKXAQZp18mLAUkFIekwvBrwxeMExXjRNQoDXbVq1UUdHC8/r6W+bmMszbzj1ys+52x5cZ6IWq6uZnIX14stCwDIK6ZyAY8ogBSMcAhaK6TKjcPP9qJnHAYZ5Dc+jNGMex7yOfc+r59VVutV/nYsP/Uz3dV8/8Lo9d37Hp3bb4Z0nJGk+U1fquhwVUIrL6Outo1bzgoL1Y92cFaybBB8igCJM+EgaO52kSAOPwfAQYTljuSL4MsA+aCUFSTysBdkdFz834bqLfvfFv9z39OWjkvXfE1tOxzL6XCyWoa1GgxGs+Qvn4qUFLyI3GcqtLYiSiH3CdyiykOQgBHxvEEKQpKLFECKiKRhj0NHRAb9I9qOIY1FLuY1TwV3Eyol0UfvTlttscOiv7jv7d0II5/MFCwTWFgGOAGvr1uG+w4mAmzEjEpqBISOUopNQNmJUKaZjlE0DhYw3y5HR0NEaihnLtFKrgwEAFEQMRQfS0Hl3YWMsHcy6c6C1e//yrPtKb978qJeT/BfdBZaIb99glKa9YxSSJEHkBNDIIBs5RsVFlAplDuYOvj7efN2Wm6+fZv38d7Atr8PLoD0pQfXWxy356zOn3XTeNV90v326bTDrONTvZYSyA6JDwFJceLHlU0Oxoblt2aesT9kOzWOEatmnrJGgDhk4h0Jt+boe6hVeVr4jp7yl58MffdvlH3jzNkd0uOyPpr9q+rpqGDtmEwrSUYCOaYrPiDcwBQQ5eAEmyKYpwAyFRxOOhSAXR6ECmj8mrBuDYbrcetUTk+6967Hv9/foaW0t47aJo7LUjDobm/PZy5FmVSxa/DKWdi5AtdbPWjr4lyRDHh5HHJUgnB9/wHS5kafzFkHw6bWuTmHXDxEJyCiBkAUIJdE2WiEup/dM3nH7I6+96ZR7hBAGCEsgsHYJyLV7+3D3YUOgvqGykCVnpXRQ9Bw0poLRMclULTN/zHLdp96KpVa45peWeQodjSlGs7edNi0b7HpzwHUH/PLCJ44863vH2/VGXTK/2lOL28qur1JpDvKCBVJCoiAjOkVfAwG/jf+wUDPASgEnFSIRIeZ5jX5G3YwSm40aN6Hn2ZdOmP7D08+89rNHT/gPp4/IXcI5Z62Fd6QWghEOyYgQBra96DLgtuS2GDhG8eUI2lmJpjlJYebg91kLUNyJ4QJyihD67H3f8+AHdpj8XdmoP1/ky0lvfwb/m6bOC7LmFKWE0N5YNwoOUHgJihOQi2hus9LcR4iQPuU+MvXZouHCYXk5p0936tRDbpz8x5v/cbUyrfuXiqPHFpJ24f+wbpZlzRekXNfxwouzsGTJAhiboVCIIIRDnmfsI4CUCSSfVbBfcIuXFgPGbeEAQTFGkii3FOF/OadQKAB8Zvm4OiTaFNr0rzbfdvwhl/3q2L8JIQgXYQkE1joBudZLEAowPAj09LZpocbkQgnNUS3jgGj4tumgWH5B86m3iONgQkeRwCHiwBjDcZBUdLCggKlI+UdmXmsfseeb533lB185umXrjb/VhWxuVCy6MqNhzd9kEwpRsQRtHLzTlxzwFcsul5ng8eVmxMCj46OFIuMYHxXoNEro762IVhePdi/3HJL9ddZFN+5z1NbOq4i1VuN/3nitrlA/NJk6Okvr+RowcuFFloSzNKfoaH0quK1oXOd+uIjrfluwX/n1gf3CMcyxgjUaCvy90//+J99x37Ybb3xbQQjj+5RAApgYfKCYyqbxCJrygIxgPSyaYd1pfr/w+zSYR8BHyGj+ocNwWR6YvnSDP1971TezRR2/LeuNP+iy9kS4MroZNazVsuaf+Vi6dDH+8cSjqNf74aBBQE2zToMcm4JN8dn0Aq45NYmYo5A3BcXwolAZhPR5Hfp6UkTxKKSZQFIuWRfXFozbqDDt8ht/eNB1vz91tf1xaoQlEFgNBORquEa4xEggUJAtAqqdxndPOkhOCzTFmHeYFF6Wprmu+fafU3h5y2SMvoaGo3hTXrxxsrMms79hLS9iypTGzvvvf2m82XrH9oh8ThbT4RVi+C9XN0wOGSlIKWEMVQPLKoRoOgKu8iNpgOI/SStyqpIiDBGnQ3z+QqEEk2vEDYNSVe/V/9ScS275zAlvd46qrnnmyPxhqcgGxBh1FcWXswqWIsNRdLnlkTBqD79trcPAPtVMrQWspQBhPttcB1YmQrbfaafteOEDD+w0c/788tqm3xKLR/J6zfX19KPAqXGQAYyk5vDm62UptFhKz6ApyriPqWsa92sJkAXDRkwdpAfC3UP94/v/n3+55K03/eSu09vkxt+2lcL6Ii2KSJShc2B0x1iUGU2fPXs2XnjheThnkOsGVOTY9ppmm8+kfy5937Cst18fqLcABxmuko0gE2e57k1i3Nj1Keoi1DWnLmXtpY226PjWEWd8/uzN3iJ6mCl8AoEhRYA9eEiVZ9ULE85cswRcVIqcaFMUXopvpBHFl7ARLEUJJQy8ZZIDn4pQpfVHPlVAWxs0o0cNTr9op1LZ0vbCmi3oil19swOnND6z0yU3mIkdx83PK0+ZlgSiXEBqNJwUyFheRUEJRsWskPAGSNZWIqKgiOgUFcVErZ6irb2Dgk3RaQB1irFCSytPi1CMOAFa1Tt2Pjn7nGs/ddQu3ilhhC7WCUekMGTnyM2Sn3esxgnuE4yWAdRsTYaWAmXABJzDgDG/tQ7Op9TJ1mkeWTGYL9T6PvjT399+8Xd/Mf20Y677zbtnOr5NrNipqz1XIZG6Xutzba1FZPUGxRcFmGY9WSe3zODrSRjCV97aZjTMizZ/HMvyCHLw69JSaaz2Uq7eC8560LWfedg9n/vVlTMvEI0N9i3YscXRraPYsA3otIEolujp7cJzs59FV9dSbitE0YBr8i85vjRefEkRwSPxU5COKxHHmOax/68n8FzfxLSlXb3wv8labLGPtI8zRx72vSN/utNOG4X/BsmDCzbkCLDnDrkyhQINRQIWLUKINktR4g1MAUHfITiwcqCkUHOUK4LOlopm2T6FeqqR0bk4EdOnyHl9Lh8yb6ZimrBfPO3A3+QbjDnixbT3wT6htSwmSAoF+O+yeCfg/R784gQkTThA/EtaKpWRagNDtaEo4JRSqDVSZlLI8xwFoRLRV99Rz1n44ys+9uVd6UhG7jPnoqZDNV6U+f7CKJlzkvvEgPltb+Sr6XCpRTAgwCSWr3M3yJDbQmAFl7i1VfRCbjenr/Lle+c8/fMTzjj/J584+7I9LrjzL2NnOBZqBa+zOrItXtr79taWdunFGLzCosBihVgfy8TRTHNdsKKWxxx5WMvHiakwCo7Pl3/GHEUcLPNb++LqKNeauAbbSZx5+E0/uMbEAAAQAElEQVSbXXXuzWcsft6eUXLrvaM1HqvSqmk+X0pJJAWBvr4uzJ//Enp6lsJHxgyj1FneGCgS+4dSMUeaGP4L/7wm4jhGFCs+XymEwIBJx1RAcBrYocidMcAXq0KLNSLuvj9uqx5645En3Dx5ssixGpZwiUBgTRCQa+Ki4ZrrHoH++YtKQqm2DBZ1m8PGCtoaDqACsAKKziOmkyjmEmVaSUsUaG2yCEdRZhz8n0567oBpJ1YwhBYxZYo+7N5rfr/JLjvt22iJp+dxlFfTDEmS0AFoTqs5KBmxxJLrQCxjKP7zARoh6BRYsShOAKng6B0i7ouYnzgguD9nvUtRUSZL65uJWYtvvGnvY6a6Rxe28IIj6mO0E4CAYR8BBZk3Q5HhBZcXGU0jKy/E/DroiAEJYwSs5ZnkasgaXHwasQ24ukKfiWM3cDkikRfKxR4ZrT83yz/5TH/PTT/+451/P/L4k85497e+s+svX+7ccPoTjg25QpdcpUxfPe832zz29AtTapmTfopbZ9QGfIYEhZXw4sxqLF/nbjiPjM8WyEmQmTeTW06JW0Q+WpRbI6TrWaXCrOGT5sxwHWd+Zcbe3S+13S36Jx1SFmPGRxDSmCpkojl28NkSFnMXzMG8Bc+jr7KERzXNsr2Zsn2jKIaUMRwj8eC2YuRd+nqTlRduUSwQxUAtq/jDUHEM6woUatwp+PzKRto6pvaT75z5hf1v+fspfxZThX8s13DNw+UDgVUnIFf91HDmSCJw082/6UjzbJyRFnEpQco3WPpKGPagpokBGtyEcoBwlgakaQoZRxAFhYawcwBVwxBc9vnxCS9+5OD9j12amJ93I0slpy+ForhMCmDpm3WKOUWS6hyZNSi0lAEhMLCw1l5A0ARNWe5lKiF5Ln9SkLZohVEN1bbo0WfPuuP0C774xBXTh/CfK8BqXwwjO84qWAoMy3VrIjpa1RRcXnR5keXFmmVnaq6zc1HEMY/4P6NA8SLFsX/plShhpNk+bAlN87+M0qCTr8tI1FRpo6w0+uvz0uSGUy788YWnXn7yUUffeNeeF894atPp06erlbjFq2ZlVEd89bzbtrjjgUePjcvjtlSqRdjUwP92LlgZ5ywTRzOwTjN14A/4Fx3DikaIYSnEnHaguIdN+UJkcldM4oV7TnnfGvsvyF61Uv/loHNOXnfK/a+/7rI/fLPvpfiiOB+3admNQWQT5HzRWS6kqpyqfGnBXHT3LEW90cfqakjlaBaKUWYpI8AHL2mC9f/nulB87NSyu1vkWqOlrQxtDOq8PrsXVJHtnaR9UWvt8sOO/cQJ79pn/SEbRVxWkZAEAk0C7LnNNPwIBP4rAQ6yIoaIOBZWi22lrkpe6bZC9xbKcZ9JRJ8ueEOvLqDXJa7XRYKpN9eryqrHleKuTl1d2iiI2SgtGLLf39joK3vOe//X9z++Oqn8o6W20Sm9kGzkiDOLxEkUi0XIUgl1OPR7YUZiglAkFMTylPkkt2NGNBIKAR8hLLsIkREoWClabbzBiw898a27L/zVEX847tJRvMTI+AghjBUUHKppmuveHFlZJ0g0gqVgchRt3vk6K+mkX2nUwfDmeK60crka/p/8Iishm396RQKap1H0gYIQJkG9rmSpdeLoumvZsy7bTrrj4Scv/NGvf3P1iTOeuvwj37v6a0f+/K4PHnHpL9ebNn168j9v9B8yHHrhjNaDfnTnZ3/356cuTuXYvXPXUqpxyk6wDBENhmKMkbGBijkQDpwBBOsIppL9iTN4LDf3sQ9J6yAJQWoD06g+8b5d39ePIbL4ceKakx/b6+mH+y9odCWHji6Pm1AUZO8afKExKDCqboxDZ1cv5i9aiKVdS1Br9MMy4u6/vC+EF6V2WW0k9wOCfQJ8lrw11yHBrgQpB1K/HidFNFIDwec1aZWoYUlPQ80966jTPnPiLvttORdhCQSGCQE5TMq5WosZLrZyBDjouSl773Nn16jk3c8VKzt0Tyi8vXf9lrfNH5W+tWdM/NZF68VvXTpevHXxhMJbF0xM3rpgveitiyZ6S97as0nb27o2SN7uthyzw/s/vfuPxbbbZit398HNvfVBH5v/gS/teyomdZy2JK8t1LF0Qkn46dnu/j54H5q0lptRMicFhQQfISch6EsVU4WBf96RSq7reo6I/2LFKZTMoC1uxRhRmqAWVL/x1C13n//bY09vG9warp27MYBBgSWcJUDb/C6UogaRcBRgjoKpaeTnaLZpCoaO2PG45Tk+9ccc91n6bEO2K1wTG0llI0heR/Le3vw2eO04KqJazdHI2YRJa6EntRuZ1jG7iDGTPvfkoq5Tf3vf366/eebTf55+5/N/2fmoC36xx7evPGWPoy8+fM+vX7zH3sdc+dbdjrpkmw8cc8lWux1z6Ra7ffW8LaZ85Yev3/1rP57y8W/ecOyOB1927Z1/evxPt977+I9MPGbXYuvEtlrdIZYlJKIAl2uKKwdhKRJZKWEdyyhoFCYGFGdgz4mQNVJEZBILibRaQTmOAVOH1Y0/ra/Qx5xr9UMhJu/86fMTv73vr0956q8LLonM6PeNa5/U2tfZC1YSEBoqMhRYGt29PZi3cAE6u5c2o1uSkbCIkWdJgcXrMI+FXzjmQEACy0zwhadpy7Z5AD4P+Az2kUnr6DZkqLnuxkvPtIytHvat0z577pS9NhuS07m+7MECgf9EwPf4/7Q/7AsEXkFgwmFTKlN/f9acfe8+f/ZH7j5z9q53n0obSD/yu1Nnv/+uHzz//rum/X/27lu/+fz7b532/IduPnXOmEM+0PuKiw7RDYqy/gM/sMmP7EZjD62W1UvdNrWqvQz/hf9GlsE7j6ZFCkYJODqTCBKxlfwp6SgUnJCwUkGpmMKCboWppDkDJBQCGxQ6Wta3xf0W/vGZa2898pzt6Iwk1uWFftYaSUFGXuRkjYI3wyjiv5petr38mE8d8w9YxHP8+coLOV5xRYFJ5pcQvKdsijKJOJeINNCo1aEYWWlpa2WEzkGqAjQjUfWGU9olbVF57Hi0jN+kHo3afkEl+uTTS7ITnuw05z/Rnd/8eGf28OOLzROzu9Szs7uj556vlp97qS95+skl6V1PzO09/aUe+1lbmvCmuDy+QyWjZGdXPxSvn1Cc57UGEsdpOd6LNwaseIUp1lnymGB/kTTlWDZGxgSjaTEFjk2ri9609SZ/3Wwz0cBaXB67pWf0CVN//rHbf/LwDS0Yf1xrNHpcURVkf2832keVYV3G5yNHLa1i/qL5Tas1anw+WF1rATJwFMuWEUu/CQgyiuFFmuLUpRddQigIGpoL25FPWXNbKhg4FEoJX5CqunUM/vT2d29y2M2PnPLTKVO3rTSzr/0foQSBwAoTkCucM2QMBEYQATFtmj3o/it//boP73x0X0fyZ0bLdFQuNh2Fj2xEEBDOAxH+B90CYCnOIAQsuI9v7kJIxKUSNARS5oiKJUjl42URiiKCquio2NPYY86dD53x8DGXrdN/q8yCfCyR+QgXRZHzKUWHswp+vWn/vs5ty3zOxrDMa3le07x4YeyIl1yhj6Datdbf31EcD7SPZtt5K7WUobVGf62Knv4KHPMZDUZvABWV0VvJkHmxIEsilQVaCWncgiqP9aMA2zIW9agdSymLevMIpjgaKHWIPGqBKrahv8IZeqWQ5zmUkCjGCepVChJjPQxGyAQkhddyE6ybX3ec2vPTk/77YsUoBjSlR5qiJZKgGHMdLdEju3/wQ09jLS1EKu6/bt7rr7/oD9NK2QYXlc34nV21GClTACh24SQyTutTO6GrtwsvzZuDxZ3z0Uj9DKsG32Gg+IIikJB5ArgYUsRQsgAhBNvbYvmfvBBCLKulZCrh/BS35SlkZdmwGqnORc9te3zifV884ycH3MVM4RMIDEsCvocPy4KHQgcCg0HgLece+pttPvmhY/vbovs7a/22KBRa+VbfyiiH1BYRHYMQAnkkkCqAAR5ACkgocAVVOntTiHlMgpNMqGc5BRsP0cmWkiJGp1E0SRfe/7fb7z3vnkPP2QHDbVnB8jorhLUOlkLDO1SfWgoRQ8dNihRKCrYpvhQchZjjfnDbiyNjBc+jkbVtrnPYMit4Y2ajuHHWWuTOIuM2tRPqyqEuLPzfjfN/lkWxvdrLbYijCM5Yth/vRxFUKhah2L7+l1O8WQprGSnEbNMoUTB5nXkzFPw2xVKa1TkF2g/t97sc5YKE1A2YRgUtRcX9NYD7i4zq+Oux0rwfC0Wx6cjD+XrRBOuJpgGSzKTlTp2xLExNo3ebrbe4fcsPTlwr34+aP9OVT//67Z/69Q1/urjsxn8ZteKk9miCiHQJyCIkEWfhRQmGYmtJdzfmL1mAJb2LGMXqh0ooLH0rsKKxf4ZEAQJFSKbeBJ8vNhV8e1H0QQhBOJb2rx/JDbaTcyiWC3Uraj/Z94Ddjv3CCW96lgfCJxAYtgR8zx62hQ8FDwTWNAEhhN7xpAMffPteUw4R49rvqkutq1mDkQ2HiIJBgo5bSBia5mu/oTnQCTtA8Zif2owLRXhHLmRER54AjAR4IZBb15y2KjRE1GEKk5/649+uvm7v43afMW1GhHVsMS4S2iUDwovCA4bkKLwsI19Gk98ys5xW1DxmtII3R8beQTufl8esjgFGrJwVYkURSco5WEEnL6GZaraPtoBl+9jcorXYgrShkTVyCibAsHz+i/SWaVrNuM8iihIkSQLBds3TDI162ox6+W3/5yscxZsvj2/zYlJAkXmb+724s0DMe3phlddSFGQCl1nuEc1+5MWWj4ZJ3k8wr3Ng4QzLqxErlrkZXYtADQnXqDOWlD7+ptdvMN3/H5nMOWgfCiR5zpG3b3npebf8qG+uOb9sJ+wSmZakKFvhNMjJNDk10hrb2TIithhzXnoB9XoVUaIgWBcvtCSfEW8+AsZrLiu/hCQXgQhgBExSmMX+u3LNo7L50wnLQ5rtltMymKheydSSqz554IeOOejEtz8jhG+NZtbwIxAYlgQGevqwLPqgFDrcJBAAB3r7jmkHP/u2qVP26mwRv2iUZY+Gg4KAFRIpna5SMZ0nHS0dU6lQhJ8Gi1XEGAHf5BsGBbpk/70gCglofx4jMZrTlpmMIEURLWkkx6fJ69JHX7rg6duvO3DmD6aPWpfQpzpWqS4LgxLlkaSwUYz8SBgKMa0jWAotZynYKLyc5bYXX7ScwsVRqGjt6PAFo2dFWBPTeOIKAlLWWRjA5hGMD2NmCkpbiFRTECk0KppipwDJVjKZgGAZlIsACkNJkWApGp0BHMvheJ50gq3JduO2YDEkyyNZZpexQDzXn5c3HPtHASJXrKfPy+vx3kVZ5D4BpA6xFtCNKmJngZwCTFPQSAUlBZw0gDBIbYNRoCLqtQaFXEwBb/rf9oZNv//tz05egEFaKJrEk7e79S75xl+mLnoq+13U1fHFsW6DccWsJGNVhBYaOf+phPVxNVTTzCk3kgAAEABJREFUHsxfOAcvvDgL1F58UiRAGSnIV4oCBoxMeDAuKMjINWtiWWWQn+LzoPhsSBL0v5Xpf7u5mYOKNEMNNq66VPUuVG2Vk4/+1E5f/8K33rqkeYHwIxAY5gTkMC9/KH4gMGgEtj/mc9VtP/S+IzuL9vzu2C7MSxEDNwJtnOrykRYf9SjEMRqNDErFjKAYCHoSb4rORfhpOMhmeSVTScduuU+qBDo1KOhITEzaN1WLqqc8evs9R/z93F93NDOvAz+MViJjZCv3IiQXFEYOeUY4WlJkeRsQYQRKsbVs21KY0EF7R+33e7MUbpZCjdESqpoVA6N15v+yAmMvBZRLoynsFHkDBYoJ4a/lBdcysz5lVM6LQufXaaAw8+uCAgzM788RLJs3MIVlPTitSOHCugCOm811rji2sWOepjkeYF5/TDjLfA7+/0IF+wbnVAFjKVA1ckbEDCN3xos/xKj2VxnFKyKt92TCVq7e4x2l369YzV97riemP5FccdJf3v+LH9921sLZ9QvGJOtvEaVF5L0WRdUCH+XKTQZI1o0isqe/C3PnvYglXQsHxJiwzXqC/RzkKlgfZmbBJIQQMJrnwkEp1TQpJc+TzWM8E16M1ep1OIpU/5006jSXi+pT79/z7d/58hennjdl2hTNi60jn1CNkU5AjnQAof6BwMoQeM/3v7Bkl333PHdhmz1lcZwvcHREgg60SEdSTCL439pra2mFEt6xRHQ1Eo7rls4HzCPooCM69lIuUaRzTyjMtNawhQjUY6hRzCUumugW9B3x0M9uOnvWebe1r0z5hmxeFwlBh+y8wKLIMY5cLGC9QDHUIhQ0XnhZihD//TKjHYXZwHEego+U2Gb+ZXk1wa9gZbUTLk5a0EiBru46MkatVDIa1Ro4halgWS5vhuVyNMv2sT6lOZbNsc3gRVnTeFPuE1YATGGpB2jOeflgwFLDWgPDEy3sP6NHWmaMIaUwIoNGA7lMoYVBnsdIGTlz7AdS+Z+GkkUiQRkl0Y7EFBHxvibtMcr23HDUkfufOXXqVH9nFmTNfu77yYujfzb92ePmPtJ/vqi0fErV47G6YUQkVfM7c2wdCGkgY4c0q2LR4vmYN/9l9PX3kIEFsw2IMaApsLzYEkLApxICfvG8lYib+xw8v5QMU5IzbPMcgoz8fusECqVWx77wyK4fee+RR39jl+s+8rWt2KL+KsECgXWDgFw3qhFqMdgEnHPKzXIFN3duyc11NKZPuIT71/k+9aZvfqb7qGt/ekXbGzc9YFHWP98lwmY6hf9u0SiKsZSePss0VBTDSkk3o+hkiMVJKP6LaAqCPwXdsKDztojiAhyjBLm2aI1bMSEe1RF35p++86rp51KUbTjcuVoIaRkhc5osLIUqRRC7ECzFhrVoihtnwG3Ap94sBZE/5r/Y70Wa9UKJeRhIghXO8awV+hgTub7eCvz3nOKoiDhqheP0JVyB04kKUoPmoHhtzr4hYhkl7+VNUHj5fbwhvPltx32wvD3N52naP9cH9gsqB59Hcr/wRfUpje1IkWKXmWPbe2EqIYSCF6N5Q8MxcmjrBrZhgSxDbGuNWPXccPRX95v2md22nLdClV7FTCyfmP2HrlHfmXrdPvff/PStUX/b8S2243Ud8RjVGrchkap55dwa+P+tQ9sclUo/Fi6ch5cXvIz+ah+UEkj4gsFrNfMKIf6ZejEmhIAQgn1fMfUm4BfnDLmQn7SQykFEDo2sAReBz4bVLsoe3HnKW/c75ryd7hSbiYY/J1ggsC4RkOtSZUJd1iwBN3Nm7G792ya/3uOwXW+f8qUD7jzoS9/84/6n/eBPnzv89Hs/fer3Zhz8paPv/8DX9v/H57/3Lnf9jA19/jVborV3dbGtyKb+7OQ/vOGDO31ift77UDSqlHuHEtNZC4qqJEmQC4dMSRil4OjIJCVYbFXzlwG4A44uCVIgiiJGSnJIHh/VNhqC03pZTx1jVVuxvSIPuPW8666dfc6t73TTqOjWXpVf052d9cpUwHGK0rB+3nKKHvpggKJsIKXjpSiylikjIgwh8ZiiUdh6MUd2zklYnkeVu8LlKRdLNokK8AJJMTIpGFep9DbghVfC7VIGFDOBAvcXOZ0aacdjjgJtwLyo8l/IF9axzUzTLH9KliXyUU7/m4XLLKbQa5qOENP88VgrKNbbr0fsH8vNC7lIyIF6WJCNYHSsgKIoQeZAlGfOVBf3TBhtLj/qiL2P/OLUbZ8TQriBE1b/TzfTlU/+zE/fe/1F91w8ym1yXbpQ7jg6GluOMyWySoPTzBl7qIJif/Z3185i8dKFeGneC1i4ZCHFpW5Gzqyw7M8prNUUXMJnhZQR1xUkr+BNCAXWhds8TiYgW+mPcapf0URkAJqPIialuL+Wd96w7VvX3+fEK3f2X94nreZlw49AYJ0iINep2qzVyqy7N+ebrlh4+U2bzbz49kPuOuX88zdZmv90i351+WbdOGnC4vRrEzvzr27cgyM2749Om7CocbV59PmfPnr1zeffecLVR8394U/ftO6SAXa55Ii/bPqetx3ZFeV35EWR9qUVFMslxKUSckZJrJBwNNB5ewcORLB0Q4ZOzTCSgCiGswKCxxUjR1RxSEQBpbiF/ihGqy7IjeMxU+64+GdnXTbjsF2GK0tp4sRRoDgKE0sRpOlvvbDy5iiAvPiydMrgfucFWg40hRmZWAowZyWFmYDlcZCXofNeURaNan8sGWkpOMuoU4Vcc4wptSBhO4DhNsfr+Wv+0/w9aEID3rxw8hEvBm7g1xUFpTfBPIpl+4+2LI/P58+JmE/yPtKo/7sGZYXLqQJ1xn2OkTCFAqfvRE6FmPa71qQxq6XQe9rXP/3+bx24+7YLsYYW/3z/6ecvbXHOZb87UtXGXBmlY/YzfUlpbHk8TE2zTAplRnAlyN9aCOkYHauhs3sJ/B97rdYrkJGAlIBmGNL6PEJAeWHFVEovxtjHhYIQPhUABkwIASG88RhfXsDF//+Uqc75/DAIFqc9fem8H39i6ruP+971Hx60X2RgMcInEBh0AnyEBv2e4YbDiIAfrOd++byPzr301h+PfmzByRvX4j3G5ckEVBqCwywYfYCEgM4MOKlAJxeJVlHYWC2tfqxlfvWEZ39xz9W373nkp91ttxWGUbVXuKhCCPv+y7/xl5btNvlGbVThF3ZUyXXRQTW8U+VVPBvmgaAzcjRLr+XFWBYp5DQtJDWIQFEVKBS4XstRiItobRtDoaZQitpQygvYNB6/Y/Ry/eyrP3DMB32b8NLD6uOcaPeiC0bAm2O0y1pWgeILNB8hW27wQtZSyFK8+WP/Zwr453k8dwU/sTR/akH+gOtfkraLFOhfAlHtRl7rg4ZDg0Vq8FrLLXeApjh0TJv3Xi6uqJMSiklvcSYQc1swGgqvEpeZ3/bRtGZUjdeQFHWKdfbCzJvMAb/t90vDg65KiV6Hshoi58FaP9DoqW8wFr/5wHu2PPz8737hgqlr8K/O33bebYWrv/3Qfn+Y/vfLXV/HsYkes0liW9GatMDmGsVCjDSto9FowEdyhXDNqNicebOwYPGLyG0KlUSImE+zAbXWUEohTooQMoKk+b4PSAga+NOboKAWQvC4hF8cj5EouRt4MWZ4PCrFDcQ9p0zZc9sfHHbODmvlb675sg1JC4VaJwkMPA3rZNVCpV4LAe/0F158x4R7pxx5TveDT121XprsUu43o1tMJEQjp1AoAgbQqYZzHEpljJgSzQsz72yiuhWToraWDRvJmzsWVi+467w7zui/9o4Jr6VMQ/VcQS/1iatPnNX2htd9fZ6qn19pEd2pdC5KYigHCi26I6ZOCNA3Q0um3oREg04vYvTBM1R0SqNa2+Eyh96uCmJZgqIAiWheR0wodWwvOhsXXP7+oz89d/rc0lDl8Z/KlWe26HILeLVDsxQyljAcDRQ8oAATWkIwdexXYFbBdTD1x/7PwDwCK7Nce+KX7j/t6K/sscmE0i4btImzR0f1Z5Kss6tN6oaznHhzwlkKBRq7PdifvYkBnWUxcD8rBlINwAst47jtmJcvIlhm1nLNcJ8bMJ7rHJgP3AZ8XSTrJn09KUKlMRRndUjb7xJX1ZHt6ymIygPrj8WnPjpls8+f/p0P3jVlymYNnrlaP6ykmD/flW88//HJf3/Q/GTu410Xd8Qb7GL6o/YEZVGKyqjzxUDxmW7+ZiMjuaog0TBVLOxciHmL56Ov0gciQVIswouwNE0RxwlKpRIkRZhm+zpHZpSbApJ0I4ApnETTuOVTloX625KPgSU9IgNiZ4qtavaoCdEBt/7ypAu+/aOPLfLZgwUC6zoBua5XMNRv5QlwkBQvn3vTFo/9/Nbz2/rNoS02GZ07IetxjBrffhtSwdBZCg6uQig6HMGhVsFZgUJUgN/fEhURpQ6FmhUT8tLotoXpIfdd8atT+qffOx7r6LLX1Uf2jN9rh2+L1006sRKblzIqkJgOuEguCQnljIDE5SJkUmg6e6WiphNzdNoQkv5JweRgbCBBK52iF2OODi3l+Y48gYIso7yVWpL+6O4LfnSsm/5EK4bJ0tNT3c5xepCzXewfgP8zIZL9pym+DOCnLR1Fjt+WWsGLM0fR4ihebC4ATvUlqoicLwNFFfP83FNbodoLIcweb+rovv9Hh//l/h8ddPTUnd/z1g/usOWBm08oXxbn+V02tbNl7rLICOcybSm4nKDo8n/SAZQJuc35k4JBWGQ2g/HTctIi5XqKDN4yoaGVhRauaTkb1UfZqLfBBkfGwByfDsAl0LmkDlTO10WZajW2vY9vMCH++ft2fv2B79j1jR+4+5Zjbj7uuI/1s9xNfbJClVzBTDNnuvj+6xbtcOmxt5zy5L1LbinWJuw9WkxqlzUpEwp/Fg7+u1/+JYFdETaSSKkil1YX4/n5z2HekhdRT6tw/uWL7aP93LOUkFEENi+0EXCIoGQCAQnFtjJs15gvHV6kZdqQh0KppRV+XbFfZ7mBSMAmzkgzS2Wc3/+6rds/f82MQ6b772oiLIHACCEgR0g9QzVXgsDcC25a77Ff3fXdCWnh461plCgbQUuJXKqmGUHh0LQIhk7VUELkQqK5n9uWlnEw9hbFFCBGosMWC2Pq8WfvvHz6p1eiKMMu69Rph1U+c+jXrh633ebfSovyBYY+oJQAnEFbqYS+vj54R1+ME0RONY1uC0LEgFBkKOGEgCVPkKGmGEsKZSBJUK1nMP0Zxoi2sdG8+nG3XHHjUX2/+stYDPFl2rQZUaSSDYQGTCODoOeWFPSGgl1QcHnhJSm4JJ25Ny/MCAB+3fe9RBRgmTdl/f3UbqW/H/T8tVWt9rRDJtd+dNQ+N3327AO/cfC+Uz7/lU996Gst+aJpSbr4qrLpur9NVDsT02NaRMO5erdVec35/z9SpzUksYRhVC3NMhvFysLCsbwUWMaZXDunc2d9xSwFo8sQc47S5n2uGGfUOV0uS/TTkKUAABAASURBVJfYSPT1l4rpXzta82s+tc/7vv2Vgz7+paO+uc+XLz5jr99cNm3PVa7X/+Lxxyuf2+gPF910xD23PHKJ6yl/rUNOnFi0JcFqQjAqW4hiRBRWOadSU6vhxVgfpysX9y7GvKXz0FnpRN3/N1D0GkImUHy2IWJIijOBGIL915tclgoeyzKNiELaaIci+3HCc6SU6OrqQlt7OxoUaIXWIgxlrZZVg0LPb7d647gjv/eLqX8Wgur2f1UqHA8E1iECfLTWodoMl6oM4XK66dPVwzf98eTRFfGJ/8feewBKUpTr309VdfekEzYDLiBZkIuILiiwiqsoShAQWERyBpGcUWFFEFkkCChBuERJggGRIFFEAbmAKCAIiLAsG06aM7lT1ff0LKh/vstlgQ1nz7y9806nir+qrnrmrTmzueE40PzUnImtmINrqjwonsN5SHjMj7IUaB4/QRtkvzgfcSCOtc9zHw16f4Z9D32eQn8SQ3MAL0ZeYXzNHPPo/heuNYIRvO+iqS2Wr2954PE3hZP8gwfQeLmS1JimJbsUvZyUwEkKVvGc0xh5ZsJMwcBqctUKCSeshE9mqjSDaYQUMJZipRCUkP3Sew/ymGR6C/aV4aN+f9ldJz94xCUrYARv/+ipLVevtcYn9BAq1kUnlst0rD8FmkpZ0URlevUNc7znoLJ7nMQtl8RTesUC9rdMoMWtENkXzEue//L7rfJ0pdLjt1379VO2X+GO06YfM/PHp04/7rKT9z9gpdzATqVw1q6FcNa3u135J7l46NGiTl7y02bFtho2brRSlVpbG6xZ1XKpblJt11mxRmhdvWHRqDnVGnI6GqCYm2/zeuDFnJ79UIBZPy4Grx288uTmDqd+e4e9Tz3pq8d857CNLzhszw3/tMX6y9ffb33eLv61Mx7pmbnH7fv8/lcv/Lc3NPbbpdaYj47T3R7qNbiohlyQ0jSyDwpxnCJlv0vgUKUYmz04B7MH52OwXqV30AEmxzsBUn7ocuy7mn32X8YxQtMyIaYygcY+7dNj7vs+P0w0YBnTIuU70NXdjaHKMOiKRKothuoDLRtULjz7R4cde84tuzxJMWbfrj5yXQiMVgIcDUdr1aRe74XAH383f6fCYLTTeJcLurhsZjkRxplxcLUUYrA+4HxkwivRpi0iHO8nmRijCMvCZsIt5lJFwsE64qfuQu94tKotlJDDmKQwuf/vL5/wzE03Be+lfMtKHDVNJXv+9px7cqtN2Ckel/tt3YvCFr0OrVYLPVyu0ZzQQFFmuLyjaYqToAMFGJkmRiF5Q5Rp36MLhudRiuw7ep71EFYieGyHHt3TXX9x4MCXH3ruyit2Ov2j2VIzRuDmq8KGzul8jv0h77HPhDGFgIWmh5BSBipVgGXBU0AlAOdsnjuaaos0xeuGp4ZhFMVcVz6XDs8fGmDIRfaaPl2lX1x3pcHPrt/z/D1XfvuBv/565k1X3nr6zDtuO/mI26755hdOPHL3DT+yYvdaq43Bauus2rXOOisXP7/Oyl3brbFCbvs1Jue3X2ulYLu1Vgy+/KGVgq3XXDH3RdpGq6/gr7LScukqv7rkhI1u+OkpW9963/eO+ct9My+/67pj79nu0+Of3WbaB/qVUqzVIqvGvxLK+oJ7znVfedwfP/f3P827LenruiAfTfxsPurt9loen8U8CuxvPj8AEDTiOGxb9ojzMxWGGwN44Z/Po39wECH7nvZK8HM90CYPvrXzUXRgaT73iv23vc+OM+NYobI9zTnFdGOUSiVEUQtBzkMrbqFBIdgztgSVs1z4rfZPXr3rlAuuPOGUdT9feLWduLx1GgGpLwmIICMEeS0g8OJZP5/U96e/7bmc6urKlolqzZieL9MWXw4+nNXgxArLidRyEE5BTeUCKAotSw9Ywk/HlpYyrKJo82wAtBSCxKDX74YOFUykuADlT7XzSqP65zDALZtsp//m+4/HH+z5xnCXvrEe2IYqBWiELSgKE0Ox6jhpqf+cwDJBRjEWewoJLbIpclze9FMNNC0KpgBDL0UIg3pk1Vh/fG5M2v159Wr1rBu/evaUbCLGCNqeecYFA8Ph522q85bLU47eQUUvjGZ9PPYf1XYFssApzSqwc0GlDtousEyEBp6PhJ6xNIxQDHzXqNZmrYDuYcZYbC+2nZuiVLyqUq21J6rq3tPGlm+9bP959133jVceuHy/F++5bO8Hfn/tfr954Kf73LbADrjt/usOuv3e6w+5897rv3H3b687/PHf3nD0rN/e8K1Zq66qylkaqzItppvVFItze+ER13PHeS9NO+3EX581+5nGzV3pcp8a408ocnlSe7FmHwoArqiGfL5TpxGSd8o+pwONemsIr77+AmbNeYFerX6AetFjn/P0WNi4C2mcB/j8G3rVTC6GYrdUSkEpA5WZYxQAKtvTkiRCtileyMRYmIQAlXXPmC70D891oas8P+mDuaNmnHjQD1efohZrm2blEBMCI5kAH6eRXDwp25Ik0Hxl/rQV/O71vdDpKHGwng8HD45LE5m1RZjykHLg5ajaHpjBcwuDlOGy+5aCDDzW1uO4yymX8iuKLHKlbtSy7w9pD7aRTOr766ubLMm6Lc28dr3ltBem7bvDKfVe/+L+pBmimEOLy7h09sBRgGVm6a1wSvFdQal/W7aMBG6eMeStkS0BKS8PF+QRFLtBtxuCKFATXe/m9Rfm//C2/S/bzDnOshgZ2+nX/fKjf3t+1qei0PoJlx9tnLTr6FGw29ACfKEtxFhnHqvsOGXZKRIcVwEdRZwNY+hMBDiFiMIsaTVf2nzzAxia4ZaV1xIop5vh9L0X/vNjP/3+L079y+9mXeo1xuzfhQljAldAXAv5VDoE/CCQfZ8riRIUij1wFFuOnvDQOvQNDeKV11/B3PmzEcUNFIt5GPY7pdj3SNuxXZRSyJYgs++BZX1TKbZbdp+tuqCKesEue1cWuVwOSjum1+IYkSChP4zdF+XaoMt3qccmrKSP3POEva5fc0tFpZZFEhMCnUvgP56ezoUgNQfcXU+VnnnsLxvHrXhixMGZziyYQoGfdDVMe37XSCi8Whx8I4oqRcHlc5JMOUmm/JjsaMgGZas4eTIORRysbse3FGlzW02Y8eMQcoDvyXeXhv784hrupmcCdMi26sHT/rnPqUd8L5xYmFl2UdX4PjzPQ0puMb0TVhuS0GQN+GToO0faDvkgQOosLwYUyBp1esyqIZd8KOhSLhHDL8CmHvw6sILt3bD6xD/O+c2uF+7g6Jligkv19fM/zJ30xJ+f3adej9f0goLKJnGP9c36U8plsLiZAnzBsn6Z+MqMxxSUAPugIgebpIijCIo18cgpbrbgK/W3nXYCI/GivEBe6voZD69y6esPnHr/L5+4YgxWPNhrdK3ebcZqHTkUNJALMqRNxJa6Rzs430eFHteYi5d9XAJ/6dXX8dKsWajVm8jn8/zM0IWEcY0FFOMYNBHkIuRyFobpOT7/Lg3YLhpKKfC9bUqp9jkjIdsMn/eEXrJ8PkAUtVAo+ixvkiZJ+MBRxx50+DX3HHzXNC7vZ2HFhECnE9CdDkDq/waBan6lsfkxG/he0TNeAU4HXL5IeNNwbDXgCM6BlINpWyYYUIfBcnJ18Dh3GpqGA+877jlYp45heM8FBVQSppMvoJE6NMMUSSM1PaYwAXFaYgYd81Kbrzhw0OGHnpFMyJ3Q79Vm17zYcTWX3DJWuj2R8R05irEcxUjgOLmRZ+ZJ00GOglgjJa1CsQv5XBExl5wCesoUJ01D5j6V8gTT+9H6S/2XXn70qXu7+12ewZfK64/PDI8779xLvu5M127aK+VdopAtkWU//0AtCXae9lIsKwUkFAipReYRs1kFWXedsu7sL4FWCCg8W/UGBUKCIjnYOHxEZWtgS6VmIydT94LL/eQbt6564e63feflP825vzLbHjfBn7yebhg+dXl4ZJijekqyHyl2MQtOxtohtDz2DFKl8MqcOfjn63PRX6kB5Kz4IaHVTNBshPA1vdwUVBoKSluea6bhEPN5VspQuBWhuFeK9//DGAhKZdccWmED2f9cUQsp9HpyKDf664kZvuKbMw/f6zN7+Y9mYcWEgBBYQCB7whYcyXtHE5jzz9cmGVtcNY448ds8LHJQOoeUXi7rPO75adjmOMjnAHq/WhzYm8q2B3VQpKVcukwyEcalqJTCLFU+Qu2jAgVbKFHcUTXQk9MddAGJVrVWMgY+1zE7jLqavlJzjzO3/km6Vvfxr+VrzySedpYiVWtDwevIJkYAjQKZGooYTa6GAjmKAc1p1lLkWnqRVJwiUIRHhZN5jiwPwcnRNpwqtoIxE8u5c28546yDK9e9PiG7tSRshnP6qnsq47c+7Kqpux1xzumvN3tPjFRXyVkfLtLI6yL7UZ71zFHAJ3AUCl6i4VGVaiox5SgYKEBt6kPxuknY1Vi/mJ6VXFCi95Dp1ONqDngJHby9TKF9+9nPbHD6cTcfWn4luD0Z7Pp20U1cJYjzvp8o5VkHYyMgDQnQQimHJHVw7GOkjhgJXuey5Mtz/oHX572GBkUTjGabMHiqob0cAvY18LlXfI6NDqBVju3G6YLPuDE+oJkmhZ3mpYQCLeuTmifsxby1IE8L5sl2itmuyg8QuqTSPSk49xvH7fHNT01Xr6qsYLwvLyHw7giM3tB8nEZv5aRmC0/g3t/c251ThTGOnhZ4ebS4pJTy03GqNDJz3DuKAXCQdhQLqTKIOQBn19JMgPFakg34vGahORRrWMZRHLxbkYVPUZYrFFGpNDgxaARje1GOQ7XwJRw9IdWUKfE+Pzv5Om+l4jF9rvJ40mVcLa7D8mkMcgU446HSaMLPZQ5ERZoKjp4icNMOnPDAllDwnOJkqwEyT03WTj6552DiALmGXwiG/VN+dv5PTrj1sKtWZtT39XLOma23Pmb7ffe/+Otn//jRnc696rEvfefiBz7/3f9+ePPv/vcTmx9x7u93v37LU0/83tkXn//8y9XL/O5V90N+YpC6AI4VU85BW0VvK8C0eGyh6bVRNuG1FNo6INVQFGO6vUf7uk8WBgpILJIwcgWjntz2C5vPRQdu5KbuOf+FD18189oZz/9h9qWFcPx3c9GYtb24G16ch8clRCpe0rJQ7CjGU/RmhdD0hvn5HPuXQq3VwLyBfswf6kO5MghQ9SodQamUpt4ww0bS7HPZnsbeBj73bcuOsx7J518pph+nKBaLMMYgjmMo5pVQgGXNYzwPQSGPlP9gmrMrrVln7HPyoadtscfy87P7YkJACPy/BPT/eypnnUqgWq4YNCMT6AUDq8v7iDgWR+whibZIFY17Oi5gGcbqHKDysJkYUx64WoYsfMzwluGQ3bGA5oDtK42Un9AjBaBYQJTzUbNxkvqcDXipE19KKXfQzt+550uH7HTcnFz5MdXrweQ8ZP8TQi3jVehG6vmcIA00tYqmV8Nw0jRI4VHKrubnAAAQAElEQVR2Gaj2hJlqH7HJIVEBLPeZpTqPJBNCkekdY8YeMO/J17//iyOuWOV9ctb9UXGrZ/vs6Vfe8eQPL7rlsR9f+asnLr72hvsvvua62y/+3e/+/AOg95sJil+zSfChaqXl1apNuLYIc8g8YJriy7QtpgcnhHItKFVbsE8NtUEAlQQAj5Wjf8WlaDTr6CqWEDYa6PINEDcemfbZz/S9z7qM6Oj/W+GuP+6hD1x+4CPH/vGXz1w9KVjtCAz7U4IoyJtEwTjA4zNp2G+01qBw4/OWIqJA0r7HHuNQD1sYrJQxr68P/cND7fPsN8CUacHozCIonYDR2SZ8UI0HReGFzJSBUorGPT94qcycZrt50Fm/Yxmy7zkyGAzzU4Zl0Kb9c3vVWgtR2poVmTmn/ODcA8/fUr68D9mEwNsR0G93Q653FoFJYye6NEycUR6sU5wTDSd6ygADpOwlb1rMETthGMelSdBSUAjAh+V1qxieYTNR5hQoyWgWCPwiP6lbNFoJRYZBg7Nt2cZzmijyI3pncf7P2qrpKp18wPoPbH3ozvsOBI0bh1Sj2VAxGXlwQR4NeoVSMnVacTJUIFrwlMfgRrBKsW00su8CqewGQ2jtwfMCaAo14zwELXSPifzpfQ+/cu3tB1y5urufFxn7PbwUTMEbrKRjqq38CtVW6YOxGrcqvEmrWde7WjPMTdJmTAEoQnsl5Lg0Xcx1c9JmqZ2DSmk2hU5p7b2FzpbVKMqAiNdBMzTuraOoSBk3RZ59Z3DeAMYW8w5Rbc74bv/RLdZXdXTA5v7HFS859N7Vz9n9/u++8mz0aP+LrdPGByt+zFZ0blxuDAoqQPZhx4Miy4yZQ7Zl75bMM5EUpgmGqhUuUc7Fa3PnYLA6zOXLFIbCyct5MNpBm5TGvQaUUtBag+9QFGVQCm9uSimeKmiYBcbnP+DyJpsTngkYz0N5uAooA8c+a73YFcfaRz+wWmHPfU4++cop23ygAdmEgBB4WwL6be/IjY4i0Ko0EqP9pD24BkVUwxix0fS8KGResbbAUuCxQqw0Us7r1gb01eQovDyaoWmKA01xBrSFGwf2hEN3kgLGK0BnS6GWWHO5aMW115iz4k4rtnjW0S+llFt5j/Wf/vQBXz6kMhZXuxzqll6krq4uNMOozTFrB85w5KRgFZAaBWuyU8sJMqXHzNJL4mAodjxr4TkHn7cDBwQh0F2HWdMbu2ntz6/c8Ntrr/ySe4G58P67ffn0WHmxRY9fQlEFyiS+iiJPGX+ccqqL3iwFl+aRJgbZF/fTKEVWYMMlS8OyLNhreBYsq4O2jqIrgWKn06mCSXid5dc8Z0JwrKy2Pop+Fz2tsVOt4cf2/+pWf8Io3166e7D3/ote/sypp/7yhKGX1W+CSu83i+HYFZcrTvZ1A6pAIRRW6tBJwnbWUM7CUXgptg8czymIEijEDpjT34+5g4MYGK6gEcW8baACPrfaIGV/YfeDVg6aT7JWCqotwijxdMAUGFaxTSnasnBsTIazMAxv8MY99rWsORwHCMU4fq6IfFc3huu10BTCB3faa6P9L71r1/uzH97NwokJASHw9gT029+SO51EoDCpux4pN5xwAG4LKD/PJQ9N4eXTDLIBvm2a1ygBHAJYTgcJJ4CEw7RKOUBz4s0G5sQZRJwUQuVROOQ5MRi0Isch34cOcqgm4eDYlZb/s1owyncS5ret6zp7fmJgmz12/uZw0Lw4zEXVoXo/ckV6HpUiZwNLlo7cOR0i1QpJ2xYkp5SiuAF0SsapBQMjawfO0/AZz6d4NlWH7jj38aHn5555/4U/28G97PJ4l5uLEp1ju1ouH3qJQ4HeEYMcUrZ7HDF/7SOXY3tHCdI4RY4TfybEkAmvTFylgKLw0uwrOvWgE49lzcwgE2SZQNPZF8UpSBXjOPajZj2h4NBZb6usv9bKd++x01pzMEq3TIjdd8E/vnzz5X8466Fb/3rpGLfciflW14dQcSpIFNJmiIKfeaIMsv+s21GVZ6LKOQdjyNAnS/aLRhSiXBnG3IE+DNE71uRyJbHD8L7yTJteFsdRRBkKqwXmUYD5tDf2ysDpzBSUor0hypRy7fjZm+H1djoKSLJBg+GNrzBUnxflexq3bLHD+gdPP2qdv2ZhxYTAUiGwjGWql7HySnEXE4FPfG6zuY28+0eTg2uTXhBPl6DiAKAzxdFSDtwpB+kECgkH4oTlSLJjmuXAnk20hp4RnWo46yETY01+Yk6DElKvyAHbIOSSJT+1u1ilr/WuOPYRJiGv/yCw4p7rDEzdf6szmuPsGa4Y91sVQztH00jh0zOZo6iluQCh0Yg4uaYUXHAGSmkotg8ovpxTSHk9Jv/E5AAuITrkYVueyjWCtV/90z/OvOU7P92dkylb+z8K8A6HLnUK9F5xzoWHFCEne+US5AIPhkLA0eMSNpvIex6Fg4+4FUIlti22sv6hMyFGEeZiH6r9BXRqwqQI8HiBGIug28uYMajked3DmK7xsPTsNCtzX/rgWhNvUUpZjLLt6mPuKl1/1MM733vd01c9dc8rP+puTtp7bDJ+za40740NfBRNDF83kSZlpC4EHzEa29MUkDiA7YgYFmEUoVqvYWi43P6eWH95CI4t7IyGyQQbP0xlYTMjRwRcZlSUusoVodg/MoPLQymfqRkoPvPgln3XzGmKfZMii5eZdpoZK55risMAJhPiachl9kol6K1fvNVe635rv2997DnIJgSEwEIT4FO10GEl4CgmMHmdqa9EvcFDFcSh4yTQrMYIdIlLIQEngQCWyyQJB+iUE7+DgoPXtlgpDt6KkwK7ks3EmM/wHieKgOahGSm0OL/mu3qgcjk0EacfXGe1K9fde6OO/Eu5d+pCmadsz/0+NDO/5sSDhnX1pdREDiQMeiEz4QW2g6U4yyyh+LK8q5SC1h5NQylOpDx2SgO0yDlEViFMHUr5XqgWVG9amlx9ds6F53/mtNPv+d4947GQm/E86ivHdrXUZSmK+Xy7FyQttmqzhkLAPDkpaxejbWkEQzedpojTmYuG5VBvGBUFFL1kjsve2Z4dDOxs0KxQOyxVR7avV4ag01Z17TUmH3fWcVuNij5DQaT6nnPdd13wP2uf+ZWffb38d/3kvOeaV7Vm48v5RteKQTPwumwRqpEgrtf51AHZd70KxTxCrgU7aGQfmlJj2CVMW4zVmg30lQcxt78PA5Vy+3+C8PgcJ3xKs5+ksNwzX2j2F/YQeJlSs4DikvACC6AtvWNsHyaKf20U2kqpBaeZCGsfaTj2LYDPOftVMw4R27pLvOF5K61dOOyQrT589P7HbvayUoq5tSPImxAQAgtBQC9EGAnSAQTUlircYOvNHqwW8FqVS0aFQhdU6kPxkzNoMQfuNJsalAerfYouDtKZh4Y9KCSfIPu5hmyAjg20KkCjxEk7QOYt80wOLWtRR4Sk4J7+4MYfvp5R5PU2BNT06elW1x5wy0e22eTIiq4/HbtWmjNAQXtsD9NmqtMCfLaLZptYsk1p7clXoS2YUgqhzBxjUNtQ//iczB0KpoSgpdW4qBBMapYOfe6uh7/7+zPuWe1tivL/XK6nKZzvw+kAigbLzCigPOZd8lk2rlvmOYGbNEF2zWfsTIxloky5lJO/o+hyUBQDShkoGrUbGByGE3zmdTHsX1ErQd4UkP1OWdGPk7g15+aPr77Gg0xumX+9clt57PPX1re45thbvvP8bwd/XaxOvMBvlNbsSrpzXaqoChQ9QZxShEbIPJE+nymVfdBJfEQtBcNl4gTcB4ZCO0ZID2W5UVvwUxYUZHWKI6sVn1HF+ynaG881n8g3rc2fbZCx1vCZGtsTHrTms5v1McU2YtNCWRhj0KTXM5cvwvgBYgprRc9atqe3G1lZEKTOBZW/rbfh+GMv/NX0q6fNmJZANiEgBN41Af2uY0iEUUvg9UL4yFDQejgu6rTlUrTCGKnVHNgV/EIJipNByDE+TDlQc2JuRJw06CVJ2IuGwwgNTs6FnjGIeCFJOPkHRXiaA3oSomViRF2mr+yHZ6y69wblhYLY4YE+Mu0Ld3x826lHRD3pvXVbjRMdIaLXqcC2KAZdMFz+8xQnU4oj63mwXoA0E8mGDaIMJ1oDx4nXcpLPZsiEk3JKr5qiV8rnBF8Ig64JrZ49HvvFQzPuPuXWd/ytMu2YGNuEqQMWFA0OPi8Zxz3PvTcs83Jl1wyFWibMNMXhm0aVDsfIzsZMI0WOy51d+QJqlQodZBYp1X0mxsJqFUUvca36q48fdOBXzpuxjE/y9/zkH8tdeei9u9x0yX3n3nPjIxfr6tjDuuLxa+Rtt/bTHBQ9yYrO0DZDEsrEKVeF4as8HD1Xlsu9cAYwFE7G8pmso94axmvzZmM+hVgtblEcOQpvgJoJbBYopdp7Nln7pRyQWeYdM1DQPAf7hOaxUqp9T7NtGAuGARXNZ35jx45H9uv9YStFoVRCFs3PBXAqgSnGFkH9iY02W+XE73xzu5tUFgmyCQEh8F4I6PcSSeKMTgJT951a/eDHPjRzQFdn11QTptuHzXn8FO7QSBLE2cRbKMBqTS+MgQkKGK7XECvyKBbgiiUMhBRfDJf38mjWqpx0Y1iKsWrQavaZ8kXbHbD/7Qwtr4UgoKap5MOnfPZ3q2+5/mHRpOT2iimnxXE5pFQt5Tn98GKvPVmnykdLe2jQmsYgpBhLYOA4gStO5plxvRhW5ZCogBO2T8vBcFkMw15pspm807N3P3vZnTPuHPd/FUvrRPl0Z3lJCj+xMFyu8ijYPYqFBaaQ/aWkly7YG8s9+4JvHUxblHEpE5SGLuTkH7J8IerDA0ijFnq7e6As+xTr4rHcxjaBsO+5fXf7wqkn7fexZ7GMbpcccecK1x3x+HFP3frcLfVXg/O67HK7mTj/wbFdY0yaRPRKgeagFqgjfgCySMjUsv2syiNMPCRpAIcAVmmK1gj1xiDK5VnoG/gnKvUhZF/iTxhCUYg7pWB5DG5Kqbbc0u13BaUUDBQ095pHmsdK0eupU0DFUDp5w1KGYZvxfqsVIRNiYPggx2e61UIzbKCV1qHyIZr29cfW/ljP/sdd8Pk71JoqhGxCYBklMBKKrUdCIaQMI4fAdudO/2vXGr0Hx+PsK0O65upeC5rCLOJE2uAEErGoKQfqWsQjCoBcqQcFTqaDDX5ih0US+EAxh2ragCooNFQVjVxjSH/An/mVk/c6a9L0STUmIa+FJKA4Y2747S89v9IX1tm9OdZeW7bleiUawtjle6ELBikn32zpKHIabJF/WfbXd9lS5pvZOAqjbKJO2HacetuTfkqxVsqNg6uqfE9S3PyZOx++844TbtmQYb034/3n3qTQmQgzb4ixbB7XFF+ZANMUX9nesByG1wxFhUkUTAqA3lJD0/SYvWlwFtomGN/TjahZRRo3kdDAJbi4NYTx3erZvb621eHf/sbU28kgYSrLxMu94HKv39v80kLb8AAAEABJREFU4A93vX7787b/5c/ty/5zw883zsjVujfR9dwkHeeMZwPEcQJyBhsQmTgy2geUQUzxGpJLrBSsVoh1yr1FRBFbb1bQPzQfff1zKcgG0CA30COqaYrmGD5rY7yxKaXeOPr3TqkF15TinuEzIcguBsV83jRDkWbYTzRFWCEoIKDnNZfPs6gWJse0chFMMarV0jnXbvzp1b/03ct3fFIpFfOOvISAEHgfBESQvQ94ozXq7icceE9xzZ6TB/KV5+em/WlFN5FyILa+QbnVQGw4eQQ5hPSQ1GtNZL/G7XwO2FzGrHEwbwScQLochv0aGt2NV+wke8Zme35p5qRpIsbea5+Zevy21VW23viISrF+WdwVD70WzcawqSLxHCdshWxihXbIVoz+07K/kLPtqTTlOyd3vscU15m1KKCHmk0kFNZeZFR3lP/4Px559sf3n/LzLdwzLnhrWY0z0PSGKQouS+HgMrGVUgJkewoy0MOV3TcUepnnzDgNleg34oB7QDFsW7gxfOZBixstZH+VGbNf5XIsXzJg80Hl6W6/euzx39jgbiwDG4WVevaWvhV+dfpjnz/18KuOuv6su37a21jpumK1d/vuVleP34Du9fOqAAUPWRtRSJMlTAGOrFIySmIKMDJxykNKT1eEBA00EZoGKukABppzMG/4dcwf7kOFH34Ssvb8biiKuJRppmkKS8HLVUZkRvIUeupfppSCUsxDaYBxnAKcVsj6h6MYg2Y7qpThbTsc2ptm+YCIH76abB8vSOgRG3ReqfHaKmsXztt+t48ddeJFWw+1g8qbEBAC75sAn873nYYkMMoIqHVVtP3Xd7tllU3XOsZfoXhffzgY1eIavEIAlfcRKw7kOkAzStH+8r/THMQ1su+UZUucw66B1+P+aqXUvGWjHaYettduh57zAfmV7vfdS6YdOa38kS9vfMZQb+P8aLJ6rK+r/NhQd/WRclf1IdqD1VL1wWqx8rtqV+V3wz2V3w12DT8w2F2+v9wzfN9AT/W+ga7qvUPdw/cOdVXvG+4u38vje6Ll7d21ntpdA2bodgq939ice+2BP/1+CrqGS28tsLNKGYpwk3nIEodsGdJRBDgqM5dagCKNeg8LTCMTZ4piw9Cy48w8Crps/6Z5KZ1xYYquou+iqL8J9N+2886fPXzTT55451vzH2nn7n7n3X3uX9c5Y+cbjv75Vff/6NUnhy+ZoFY+tVcvv6lqFPIF2wPEHkqGKGMFT/swViNtJfAVnyV6EAPjwTiie0NQGWOgjUHkElSjKvoqfZg73If5lX6Uwyo9oBbW82HpqrIUVhl2R+9nxkYpBaUWmOaFTKBx9/97JXBIFfNkPMf9WwMolkfTO2Yoz1yqkcvRSxZoxLYOv9B8deU1SyceNePLM/c56dMd919YvZWVnAuBRUlAL8rEJK3RQ0Ctr+pbff/Ld+YmF/fLjS8clRr7dF9lIEbguUaaIOLAH+RLqFUbKGV/gcUBPPuUXosaSdO3t8fj1B6f+doXDvnw4VNuU9P50Xsxo+mU5D95xObzvnbqoeccMPPQnfc6/4Cdd/nh7rt87Yf77rbb2fvuvt+P9919t3P222O3c/bfY+/zdt9j7wv22HP6JQfsudMlB+y1y8X77bXrJfvtvesl+++9x6UH7LXfTw7a+yAe7zvza/vsMfOr+x7+0yP33+vigw/c+bsHHXzshSdchJV7K29laujdysSYR/EQsA/4NAVO75kga5ujd2aBgWHByVw7D9oFXLr0oZJMhGRmoLO/xo0pLBoGRb+Een2wksuHp22144aHnHDEJg/MmKHsW/MfKee/nvE/xRuOeXDbK65+4Nqnfv3qz1dM1j65WB67LQb8VbtUrxc3YmTPgvU0WlRMieeDn10A58PjcmUOAfKpQZB9Fy+N4HE50lMRFKHFSQt1eqPK9WEMVqroGx7GUL2BeuxgTQ6WS4gJlxBjirHs50yUUvCUhq9Ne294rsGN4jjbG6aqlOIFDZcJLB45nlqeLTBNP6nh1Sz0AlNOsx1p1oNWHsJGE36gEKfVWWMmmn2+/61dbpq4tqoykryEgBBYhAT0IkxLkhplBJRS6Z6X7vnq1+/+xo8OOPPwDZf/yPKf6lqz59R6T/32eWbeIwO5/ocbY6M/zHZz7k4mhD+aPGWFfcat17vGUb8/YKvjf3vkL9fbf715TMOOMixLvTrjPzm+otYvvFxYf8zLhQ3G/rPwscIrhSmFV9W6hVezfWZqyrhXMyuuV5z1v5nidbV+8TX1yeJrxU0mzFZrl14vfXjinEkbTZrbvcby8xXb/q0VNWxJxelbU5D5FFvtZUl6fIwDsmm97SmjZ6ftsaH3BVbBWJ9maD58esMUhYJi+Oy7Yto1kmJQn9OqvHjz5putu/Fffn/G92Yev8NrzJs5YcRs859xXU/dNHfV72x35ecu3PU3M597Yvbz855r/qI+Bzv3quXXDgdc9/j8crqAEpKGRfYXsElsKcocDJfxMzqaoiyOU2QW8FoUhlDOIowbSFQMRbgxhdlQs4z+8nz0Dw9gmKKMCKEN+QU+nKfbX/qPkwSpAjSvpXDILIPlFigtwPKeNvC4FK14Q5O3yqArhtQxrA6RmtDSolTHUWpaYWyiVmzCVuKFzdhrNmK/3kj8CvcDDVcoV6vxrHuXXyW3zcV3HHyfogedycpLCHQqgcVWb73YUpaERxUBNU21drxml0d3umzbGfXN+rZZ6agJU8cd0fup17d4/dMHPXzIFnvdtdc3trnsi1fsevkOr4yqiktl/kXAusiFYR1aawowD0lLI3A5uJajuAByPuWaThDbqB1HUU1khzlXgJ/mEDUoQuhVg6snVg3/9QMruiu23HbVrx80fb29f3zeV/7WjjRC3v5406zCCzdVP3zlN+7b4Ren3fXtB69+/Ibl4pV+lS/3HjumNWHFYqtHdYFLklQ7zk8RZj/jYUAR5COrt8/lSUVRphMLFyUUpKCnkEoJFs24Bct41jdweR81F2FOZQCzBudi3nA/huM6RVYKOp1BLQY4eiHpSVNpDE+l8IyDQoIkbSH7df5iqQRlfIStCPlcEXAeAl2Ey75nZgI454AsXs6i2ppv/a7k77EeuDoNhs9Nc8PnxIXGD9Lu1lm21JhZ8QfPbHUNnrH8ernTP7XT2t+Le/95RtcqQzM233W9Qy+4bd+nIJsQEAKLjYBebClLwqOWwIwZM+z06dPTzLJjpbKP36O2ulKxNwg4Kq9cgYIiHHLWhfApvlyLy1mUDypsoVkpU5w1kfMcV7ZTKNdAsRCjXPknZUif6+kN5yXpaz/3MOe4Y47Y+cATT9jx6BkztvzlITOm197IYqnubrrpmeC+8x770APff3r/x65/9MI7rrj/UvuquUj3548u1Hs3KrR6SvlWEbm4QAtgEoNAGRil4VH0qJTiK06AOOW5oijSMLwOiqk0CWFdDOUD1GqwKkEjbWAevWF9FGODzQqqFGKZsItdSqIW2ZZwWVPT80U/IzJjivCVR2Gm23n39nShPDSEbIm0WCwiovjL5QqoNRvwcwEFWBXOj2GDJhqub1ZpOXd2bkLrwK8fteth1z71jROufeKgk67/nwO/de3D+598zaMHnXLzE4d/57pHDjvt9Ou2+95ep6x3+nUPnXDaJbcdec7+x282ogRzxkZMCIw2Anq0VUjqIwSEwGIh4PxcPMfLNfqCQiNuRrOTxM7nGtxA6sXVtEAV0uMZ7m0aVwbSVm1+kssPD1pv9h/GTR463+X+tvP6U/zPXn3Dtw+++PLvXrjnnis+PHXqxOpiKelCJkrPkbrpJmeuP+j+VW488MGDyjf942cv3t33ixfun31maXjsnuPTSZuaijexEBVMyVGE0eNksj9qoDdM00Pl0WNlwgT5WCHPe0Xnw6cA05ZilK5BR1MMp7hMqE0CbWIkFKmNsIKBSh/m97+OgeoQKo0qSBQJ03XKQmkHpTLpZSjscjAowLg8hV4OiDRUbKBTAzq9EFXr6C0VeR/QSrWFWaNVR64rQD2pOb/XWFuKX6+bwRmtQvnLx56526kX3nnwA1P3XcBeKfkwtZDdRYIJgcVOQC/2HCQDITCyCEhp3gMBTtzxPX+48Kh7H/7+chv912rjNvvsepPX/8TkqZ/cZKXNN9ho+e3+a71x0z/ykXE7fPyjk7ebMmWVj0/9wpoTDzlm8qQHHz1u6v0PnXz4w4+f87MLLtnn2fXXV/OnTFHxeyjC+46S/ZTHnAfdxGtP/OWHZ0z/4ZYzt7vszNp1dz7WejF5vvlCdJE3v/Dl3mj8Ot3hmLGlqGRycQ4FW0Re5emN8imCFBy9YFlBMvGjeJAtSerYwsv+6jRN4UHRHJSjt4yeLktBZql52n812Wqgr9yPuf3z2t8RKzcaFGGKITyArjOlA2jtUVx5XN7UTEPDKM30FLTVAPPWqWpfV/SaIdVcouxCQlGY6ap6cxjFMYxbjGxLDQy40vCTE1fzj91ix498+IY/H/udnz0248/ryk/PQDYhMFIJ8CkfqUWTcgkBITDSCFCYuR9cs0f9Bxd/Zf5FV+72yA+u3OWBH169220XXLfHz8+/etdf/fDqnW675NqvPnXeeduXp3NZe2mW381w+pWfvjL2tZtqH33qnFe/esnxNx999w/uOLf+iPv5agNr/XyF4VWOzQ0WNxirxwbdrgc9uhumpVDy8ijSsp+n0NbBWdv2PCWOIksBSms4o7kE6RB4PsUaKJYSmgXoHXP0cEErWFotjjBM4dU3XMbcwQEKshoqzRgxZZb2u7h0WWTkLoqsEuPm4dKA+fk859DMvBXTg2PaiGCYrvEAbQClFJzSCGMN5ZWYnkV+jI9qOnt+Xf3zpjWnlE743I6rbn3GL6afM/2EKcOQTQgIgaVA4N1lqd9dcAktBISAEBi5BO6/33l//NHja9x/+p/2+tHT159998/+5yd3X3nfpU//9vkfjWtN+m5+uHvX8fFyHxqXLJcb58ajx+tGbaiKsN5AKZdH1GqiXq3A2gTZl+ehMjFEIYaUIshBU4xREvE+2iLNUqxZ3stEEnyFzFJlUY9bGG7VMFSvYKBW5r6KWhiBDi4on6KLyqot8LjE+SZNDQMNj6ZpBsYYcFmVtiBv5bEcFGUJyxZl/2uGixB7IcpJP2wpnF9xfZehp3XQwafsf9hJV+1y+e7f/OIcyCYEhMAyQ0AvMyWVggoBISAESIAiRTsKr9sPvT33q+Me6r79gHtX/+1+D+72wMFP/Hjoovt//9Kv59w18Ejj7AmV5Q7pqoz7Sr7WtaHfDMb5qW/aXi84JC5EK66jFpXRPb4AU1QUTn3IdRv4JYWWrUHlKITaIiimGEuhjYWiIGqLMAoxUDaFNkLIRccmfVRN20IlamCgMYz+Rhl9tSGKsiqqSROxtnA5BZU3yEQbzxCnLWjVpAyrw9cxjE5poGlobWg+lGdgjWpbyn1EgdhoCzPWx+YAABAASURBVDHlwNXKtKda9ifWzwwL87be6civHHv574/55aenr9CnFO+T1eJ+SfpCQAgsOgJ60SUlKQkBIdBJBJxzvvtLeaz7H1ek+Yui7kxTuZuccRRc7ilXcg9WJ7qH3SqX73b++pdNv/DT/73jhVtfueOPD738/Isuas1rPGKfLL8aPZf+PXwxvabybOVgb573yTHNcauZQW9cKSz5xbioulU3ivxnmxa9xR60Bz0KKs/XFEIGjeyHT+mx0lBIkqRtQeAhjkNYLhc6iq6U5tIENonh6KGiNoPnUTgFui22Mo9Yf3UI88p9yP5qcrg5jDClEENEhZXS2hKMaYdI0hCK4iuf85hjCg8WWlkYxXCK6TNPy2up4znzsAqITYrIixH6TRvla7O9sdG9pcn2G6uvt9yqVz9yxAk//eOJj22/96plJUIMsgmBZZWAXlYLLuUWAoufgOTwfxGo/n1O741n/mKX+8769bfvnPGzo+/a4eZ97trhuj3nfu9vW7sr53+6cc3sTerXz96getMrH67c/PLafTe8tNabVuFx5abZH+q/4vW1/3D0PRtev9NV2984/Zrpt+5209633Hj94Tf94Nqjf3XyTTN+8f3bzvn1d26+fLn+yb/4QHnlO1YYWvnXyw+ufN6KgyvtV5xb+Gg+Csbk6FOiIwu+U/CpXrLjvPLgpRo6cch+Jt9FKQJ6nVIuG7bFFMPq1EAlefhpF1zTQ16VELgCLQ8VKXhWQ6cO7fAUcMZZ+C6lWcYLubxZx0BlAPMrfeiv9mO4NYxW2kRKsaU8B8eI2jj4nkIS1Sm4EqYVMc0muvMaLmzAcwZMEo5Cz2iHiF67fMmDUxFSk8JR8CU+0FRhM/Tqj6ve+mVf3v1TX//k19be+YI797xkxpXblyGbEBACo4KACLJR0YxSCSGw5Al0JytU1lpzrae9WK3XlQQn91aDH06s9p4/8OicHz92w2OXPHXzny95+LpHfvLQNX+87A9XP3TZ4zf88fKnbnjk8sd/+ofLH7zqd5c/ePndlz1x40OXNf5auXSFau+FKzTGXDBusPvcCdXeMyfVx5zeUy4dPbY6Zrcx9d7PjqmPXbWn0VPsavSgm1Zq9qIQdyGgqDIUSm+atg7apm1TVDra8Twzepk0/VGUQW1Qll4upBZ55OBbjyLJABRhLrIURxaKwi4LqJWCUio7RBYn85q1GhXUKkMYGupDtVVBg2KryWXJhGkmzNMxPxYBSPhqJXAxKMC6KcYMin4eXbki+l6fj1KhC5r/PM9nHgYJI5nAYLA+CFV0iEwFLTMQ257hX6SlgSM3336DAw45aecjdzlp/Vv3O2qTwXah5E0ICIHRQYC10DR5CQEhIATeNQG1roo2OGWTh0of792/1lP9UctUY5skXfX5tRV7bM/aXtn/rwl24scnJhM2Htcav+mYxpipxUppale1a+q4cMLU5bDc1O6av+nENPhoTxx8IBhOJ+nhuKfQ1F7JBqaQeCpnDXx6kehsgmIJlVJweoHxFMpZGAeabZuiClJIGTazBFqlUPRY0aWFzJxOYNuWwqoE2fKjRy9YJuTa6TAmk2dYijKlkDD9ZtKi8KphqFamR2wQA/UyhsMK6kkDYVJvfxfMIYaih8tTmcTSLItHCyi+xsHYIlyUR6vKcocFJI0AE3pWRKtuEWeijXmGrGMrVeDemoLfavmNFzGmcbqaMPCpcy78+gHXnHX85bvP2PiJKdt8oAHZhIAQGJUERJCNymaVSgmBJUNAKWWnfPPTc754424neOuUdhvwh+/LT8pVGmHFdXs5uEoLpuGQSwLkkxyKtoQu24WuuIRC08cYXYLXBHQ9RiH20KVy9HopmMhBJxbZ8uObYox6B9mmlGMEh2yveaEtpBwvUVj5Fsi8ZRoWmsuMWlkoHit6n9I0RpomcBRZLDe0ARwiZP+3ozYUVF4KZxJKqwgtLj3W6Pkaqg1hiB6xzMqNKoajBppphJBCzzJjq5gPC6G1xgIzyP5p5zF/H83sJy5YF8flz+6esWAREdODpoMAVmm0dIjYC20D5QHdm/45mJBev8bHlv/S5I9+YP3LHjryW5f+9qRHe6aofjVNJazqsvySsgsBIfAOBPQ73JfbQkAICIF3JKCUSjc9e9s7Vt9p3YP7x5dnDucGn2m5gbToxyhqS+UTIqKQsfReZcLFJDHSSp3eogg2TCleNHztIxNfSFKAS485LuWBm6OAcRRRjsuByHQJjdnxDsUQhU72XbHMNI+zrLLvfWnGN4yjKcQM4ys4GAUoiiC+U5SBZmH9BhKvhpapoo4yqskQymE/BpqDGGgMoq8+gKHWMBquhYjqMPWBOAAiYynlEkAxUbyxOQ1rmS6XO5kla6pQ6uqBDry2iItZ7oaK4PUG+Gffq4iLcct2x38NS9XL1vjEcsdvvvN/7bjZ4aU9j73ySw/MuHQb8YS9gVV2QqBTCIgg65SWlnouXgKSOrWJcmvs9/EXp+0+/Zx4hfSg+fmBKwf04FADdQdYeBRFoKiibGn/hWK+mIOfpxWKMF7A5b8YYRzDcc3Q+AzV1jpUOBQyivHgEmjKnMyUokeLxyZLk+wVc2AM3rdQzEtRjC0QcBaOS5aGakwzTWM0Mg2VMr3QRqjHdVTjMoZbZZSbQxhsDaES1lCLasj+O6OUXjBHo9ZDSm9YqrOaZJmxcCwnshzbIk8jZTlsZgrME1AmRTUcopgrQ3dHaHhDaOUHMZjO+nvvqv4FZfPqgdvtudl+u39r52NOum6Hy7c/bspL05fyj+lCNiEgBJYaAQ4vSy1vyVgICIFRSEBNU60vXLXXHz5/5A5H11fIfbneZX8a2rhsqIL8xCEKmyinNZR1E0NpA5VsedCFCCmcbM5A5TzE2qIRNuAogjJh5VxM6ZNAYYEZijNDHxWUg+NaZhYuWz60XEp0NEtPlNUxEkWzIWLbothroEGhVQvrqLVozRqXI6sYajZRaTUpwkK0kgQx9VZKkeWMB9/PwRgfSilk7i9Lz57jsqem503DUPr5cI6GAFAGoEjLBFzqxUhyodPdzciVqtWkNPCCGjtwgb/c4BdX3ah781Ou2P+ka5466dovHvWhP03ddsH/KwnZhIAQ6GgCCyvIOhqSVF4ICIF3T0B9ftzw56+Z/tCmt+64R26N3i3qvdFVta7W0/VSq1optVytEMEVFJyn0fY8GYWUnq0wjqh9LLycD6vcvyyFpfjJfFBUTHDtOAmFW0IPVuQ5xNzH1ETRGxZzdGumMWpcKh1qVTFYr7a/kD9YK2O4UcEwPWHZ/RbDxMzXUkxBGzilKMBMpvUQRREsl1CV0zBKw1cemA3oYENC8ZbCITFA7KVc0ozR8hq26VX6msHQXxrB/Dsmfqh4+lqfXHmTHb64wYd/9PsTDrv4/lPu+tYV+8yatK6qKUW1CdmEgBAQAgsIcMhacCDvQkAICIHFQYDCw3308s/9aeIh63995Z3W2aO6Snry0ITmLcO5xqw4+zvDOIUPDZNpLXqePE2RRi+Uo1BSmfKhbsmEEXjdK+RRC1uwnkEjThB6QJ1iqErv2rCLMBA10UfP19xaDXNqVcyvNzB7qIw+7hsqRd3GSANLb1zENICEIs+nR47Ou3bVraUQ1BrKOiC1CJRPteVg4LVFmKX7LEksjPYZl2IsSFHTjWrcFT1Zz1VurBUGz/387lOP/uI+m+72ma9N3fGE63c79fCLv/L0tBnTknYG8rYQBCSIEOhMArozqy21FgJCYEkTWHPLNcPJ+6375Jd+sssPp+35ucM+ts3Ge87z+49sjY9uHcyXy7PTuUh6Lcq2AltUSKiFInrIIha0MLYX1STCfIosS1HW16yjYhPMGuzD3MF+zC8Poq9SxmCjvmAJMgpRoaetSQ8WAg+K3rZKq4F63KSQsoCnEVPwaXrEWs0YPpclMzGmmF+TaScI4fwUoWqgqWtoesOo6SG0isMIltOtam7g8bi78pO6P+/QMavrr+139C77fv1bOx9+wI+OO3GrY9a7ZqtDp/x1+lGbNFl0eQkBISAEFoqAXqhQEkgICIFFRqDTE8o8ZhO/uMqcVQ5c+/6dTj/gks3O2HGv6rpqI/uR4u6zuoeuaq6g/vaP5pyh1xp9tdebQ+ErA/PT52bPci/On4/n5s7G3/rn4On5s/GP8nwMZ98FowhrNJtoUYCFcYxs2dM518acUMTFvAZ6wgqFHAqFAjQ9YJn4AsMELoCX0lQAajGmEVq/y0uiIGpVvXK1kh8a0pOTuW5y69Z01fDk+IPlrdzqlfVOueaILc+57qijLzrrhIvP+MUBt627Y+nJ9bZdbt6UKSpuZyxvQkAICIF3SUAE2bsEJsGFgBBYdAQUBYz6iBra8fxdX9jxst2u3eXmffba+uad113hsytusNLUVacv94mVTllh4w9eXe5p/na4u/lwvzf8l9nhvJejMWpOJWhWw1yrGebDVivXAkUUeM59CwvOW0iLMS1EXVfQMFXUXLmVFsNB2oArxXPLuv+5em7oL8N6/h9aXfV7ou7ar1b9xIoXr7bR5BM+uOEKX1ln0xU/svlmG6x02h1HbnvOHSd+95zbZtw+49qjXuxeX81Xa6uqkt8HW3SdQVISAh1OYDEIsg4nKtUXAkLgfRFQXDf83OlbvTL1vM/dMe2iz535hSs+v8/UfTba5pN7fWKnbY7acs+vHvmVgzfdfsqRakL0zXBs/eTGmNopjTGNmY2eylnNnupZ9d7KD+o95R9UuwbPHsrPPzsaH55d6x7+QaNreKb3gWTGR77w4eM++9VPH/uZPTY+YovDPrXfZod8co8ND1h/x412X2Pr07c5ZsevXvzFQ/f+yfY//PpPdr1n/wt2e02+//W+mlMiCwEhsJAERJAtJCgJJgSEwNIjMOXAKfHnjtpk9qaHbPDnjx+6zl1bnLLxjaf97oQLZjx40g++8/uTZs447NiTNjvtONoxJ21z7jEnbUvb7rxjT9zx/BNO3OrMQ0/8wqnHn3jaIcef9K07j5q5xSmbXP7Jo9a9YuNDP3rjxvtt8IfPHvSJp7Y6ZNrcLQ/bMlQzlF16tZSc3zUBiSAERhEBEWSjqDGlKkKgUwmo6SqdxuXDzKZMUfFbLbuehcm8b53KSOotBITAyCYggmxkt4+UrrMJSO2FgBAQAkKgQwiIIOuQhpZqCgEhIASEgBAQAiOXwNIVZCOXi5RMCAgBISAEhIAQEAJLjIAIsiWGWjISAkJACAiBpUVA8hUCI52ACLKR3kJSPiEgBISAEBACQmDUExBBNuqbWCrYGQSklkJACAgBIbAsExBBtiy3npRdCAgBISAEhIAQGBUElhlBNipoSyWEgBAQAkJACAgBIfC/EBBB9r9AkUtCQAgIASHQsQSk4kJgqRAQQbZUsEumQkAICAEhIASEgBD4NwERZP9mIUdCoDMISC2FgBAQAkJgxBEQQTbimkQKJASEgBAQAkJACHTpnKpXAAAJmElEQVQagdEoyDqtDaW+QkAICAEhIASEwDJOQATZMt6AUnwhIASEgBBYWgQkXyGw6AiIIFt0LCUlISAEhIAQEAJCQAi8JwIiyN4TNokkBDqDgNRSCAgBISAElgwBEWRLhrPkIgSEgBAQAkJACAiBtyXQ4YLsbbnIDSEgBISAEBACQkAILDECIsiWGGrJSAgIASEgBDqWgFRcCLwDARFk7wBIbgsBISAEhIAQEAJCYHETEEG2uAlL+kKgMwhILYWAEBACQuB9EBBB9j7gSVQhIASEgBAQAkJACCwKAiLIFpaihBMCQkAICAEhIASEwGIiIIJsMYGVZIWAEBACQkAIvBcCEqczCYgg68x2l1oLASEgBISAEBACI4iACLIR1BhSFCHQGQSklkJACAgBIfBWAiLI3kpEzoWAEBACQkAICAEhsIQJiCBbDMAlSSEgBISAEBACQkAIvBsCIsjeDS0JKwSEgBAQAkJg5BCQkowiAiLIRlFjSlWEgBAQAkJACAiBZZOACLJls92k1EKgMwhILYWAEBACHUJABFmHNLRUUwgIASEgBISAEBi5BESQLd22kdyFgBAQAkJACAgBIQARZNIJhIAQEAJCQAiMegJSwZFOQATZSG8hKZ8QEAJCQAgIASEw6gmIIBv1TSwVFAKdQUBqKQSEgBBYlgmIIFuWW0/KLgSEgBAQAkJACIwKAiLIlplmlIIKASEgBISAEBACo5WACLLR2rJSLyEgBISAEBAC74WAxFkqBESQLRXskqkQEAJCQAgIASEgBP5NQATZv1nIkRAQAp1BQGopBISAEBhxBESQjbgmkQIJASEgBISAEBACnUZABNlobHGpkxAQAkJACAgBIbBMERBBtkw1lxRWCAgBISAEhMDIISAlWXQERJAtOpaSkhAQAkJACAgBISAE3hMBEWTvCZtEEgJCoDMISC2FgBAQAkuGgAiyJcNZchECQkAICAEhIASEwNsSEEH2tmg644bUUggIASEgBISAEFj6BESQLf02kBIIASEgBISAEBjtBKR+70BABNk7AJLbQkAICAEhIASEgBBY3AREkC1uwpK+EBACnUFAaikEhIAQeB8ERJC9D3gSVQgIASEgBISAEBACi4KACLJFQbEz0pBaCgEhIASEgBAQAouJgAiyxQRWkhUCQkAICAEhIATeC4HOjCOCrDPbXWotBISAEBACQkAIjCACIshGUGNIUYSAEOgMAlJLISAEhMBbCYggeysRORcCQkAICAEhIASEwBImIIJsCQPvjOyklkJACAgBISAEhMC7ISCC7N3QkrBCQAgIASEgBITAyCEwikoigmwUNaZURQgIASEgBISAEFg2CYggWzbbTUotBIRAZxCQWgoBIdAhBESQdUhDSzWFgBAQAkJACAiBkUtABNnIbZvOKJnUUggIASEgBISAEIAIMukEQkAICAEhIASEwKgnMNIrKIJspLeQlE8ICAEhIASEgBAY9QREkI36JpYKCgEh0BkEpJZCQAgsywREkC3LrSdlFwJCQAgIASEgBEYFARFko6IZO6MSUkshIASEgBAQAqOVgAiy0dqyUi8hIASEgBAQAkLgvRBYKnFEkC0V7JKpEBACQkAICAEhIAT+TUAE2b9ZyJEQEAJCoDMISC2FgBAYcQREkI24JpECCQEhIASEgBAQAp1GQARZp7V4Z9RXaikEhIAQEAJCYJkiIIJsmWouKawQEAJCQAgIASEwcggsupKIIFt0LCUlISAEhIAQEAJCQAi8JwIiyN4TNokkBISAEOgMAlJLISAElgwBEWRLhrPkIgSEgBAQAkJACAiBtyUgguxt0ciNziAgtRQCQkAICAEhsPQJiCBb+m0gJRACQkAICAEhIARGO4F3qJ8IsncAJLeFgBAQAkJACAgBIbC4CYggW9yEJX0hIASEQGcQkFoKASHwPgiIIHsf8CSqEBACQkAICAEhIAQWBQERZIuCoqTRGQSklkJACAgBISAEFhMBEWSLCawkKwSEgBAQAkJACAiBhSXwn4JsYeNIOCEgBISAEBACQkAICIFFSEAE2SKEKUkJASEgBITAwhCQMEJACLyVgAiytxKRcyEgBISAEBACQkAILGECIsiWMHDJrjMISC2FgBAQAkJACLwbAiLI3g0tCSsEhIAQEAJCQAgIgcVA4D0KssVQEklSCAgBISAEhIAQEAIdSkAEWYc2vFRbCAgBIbBMEJBCCoEOISCCrEMaWqopBISAEBACQkAIjFwCIshGbttIyTqDgNRSCAgBISAEhABEkEknEAJCQAgIASEgBITAUiaw+AXZUq6gZC8EhIAQEAJCQAgIgZFOQATZSG8hKZ8QEAJCQAgsFAEJJASWZQIiyJbl1pOyCwEhIASEgBAQAqOCgAiyUdGMUonOICC1FAJCQAgIgdFKQATZaG1ZqZcQEAJCQAgIASGwzBAYUYJsmaEmBRUCQkAICAEhIASEwCIkIIJsEcKUpISAEBACQmCZICCFFAIjjoAIshHXJFIgISAEhIAQEAJCoNMIiCDrtBaX+nYGAamlEBACQkAILFMERJAtU80lhRUCQkAICAEhIARGI4FlVZCNxraQOgkBISAEhIAQEAIdSkAEWYc2vFRbCAgBISAEFoaAhBECS4aACLIlw1lyEQJCQAgIASEgBITA2xIQQfa2aOSGEOgMAlJLISAEhIAQWPoERJAt/TaQEggBISAEhIAQEAIdTqADBFmHt7BUXwgIASEgBISAEBjxBESQjfgmkgIKASEgBITAMkFACikE3gcBEWTvA55EFQJCQAgIASEgBITAoiAggmxRUJQ0hEBnEJBaCgEhIASEwGIiIIJsMYGVZIWAEBACQkAICAEhsLAERJD9Jyk5FgJCQAgIASEgBITAUiAggmwpQJcshYAQEAJCoLMJSO2FwFsJiCB7KxE5FwJCQAgIASEgBITAEiYggmwJA5fshEBnEJBaCgEhIASEwLshIILs3dCSsEJACAgBISAEhIAQWAwERJC9R6gSTQgIASEgBISAEBACi4qACLJFRVLSEQJCQAgIASGw6AlIih1CQARZhzS0VFMICAEhIASEgBAYuQREkI3ctpGSCYHOICC1FAJCQAgIAYggk04gBISAEBACQkAICIGlTEAE2eJvAMlBCAgBISAEhIAQEAL/JwERZP8nHrkpBISAEBACQmBZISDlXJYJiCBblltPyi4EhIAQEAJCQAiMCgIiyEZFM0olhEBnEJBaCgEhIARGKwERZKO1ZaVeQkAICAEhIASEwDJD4P8DAAD///RIpg8AAAAGSURBVAMAx7b2ZnocvSUAAAAASUVORK5CYII=\"","import { useEffect, useRef, useState } from 'react'\nimport Editor from '@monaco-editor/react'\nimport { Terminal as XTerm } from '@xterm/xterm'\nimport '@xterm/xterm/css/xterm.css'\nimport { Tooltip } from 'react-tooltip'\nimport 'react-tooltip/dist/react-tooltip.css'\nimport {\n RotateCcw,\n Copy,\n Moon,\n Sun,\n Check,\n AlertCircle\n} from 'lucide-react'\nimport notjsLogo from './assets/notjslogo.png'\n\n// Default code templates\nconst DEFAULT_CODE: Record<string, string> = {\n java: `void main() {\n System.out.println(\"Hello from NotJS!\");\n System.out.println(\"Enter your name:\");\n\n var scanner = new java.util.Scanner(System.in);\n var name = scanner.nextLine();\n\n System.out.println(\"Hello, \" + name + \"!\");\n}\n`,\n cpp: `#include <iostream>\n#include <string>\n\nint main() {\n std::cout << \"Hello from NotJS C++!\" << std::endl;\n std::cout << \"Enter your name: \";\n\n std::string name;\n std::getline(std::cin, name);\n\n std::cout << \"Hello, \" << name << \"!\" << std::endl;\n\n return 0;\n}\n`,\n c: `#include <stdio.h>\n#include <string.h>\n\nint main() {\n printf(\"Hello from NotJS C!\\\\n\");\n printf(\"Enter your name: \");\n\n char name[100];\n if (fgets(name, sizeof(name), stdin) != NULL) {\n // Remove trailing newline\n name[strcspn(name, \"\\\\n\")] = '\\\\0';\n printf(\"Hello, %s!\\\\n\", name);\n }\n\n return 0;\n}\n`,\n rust: `use std::io::{self, Write};\n\nfn main() {\n println!(\"Hello from NotJS Rust!\");\n print!(\"Enter your name: \");\n io::stdout().flush().unwrap();\n\n let mut name = String::new();\n io::stdin()\n .read_line(&mut name)\n .expect(\"Failed to read line\");\n\n let name = name.trim();\n println!(\"Hello, {}!\", name);\n}\n`,\n go: `package main\n\nimport (\n \"bufio\"\n \"fmt\"\n \"os\"\n \"strings\"\n)\n\nfunc main() {\n fmt.Println(\"Hello from NotJS Go!\")\n fmt.Print(\"Enter your name: \")\n\n reader := bufio.NewReader(os.Stdin)\n name, _ := reader.ReadString('\\\\n')\n\n // Remove trailing newline\n name = strings.TrimSpace(name)\n\n fmt.Printf(\"Hello, %s!\\\\n\", name)\n}\n`\n}\n\nexport interface ExecutionRequest {\n language: string\n code: string\n version: string | null\n arguments: string[]\n}\n\nexport interface NotJSProps {\n websocketUrl?: string\n apiBaseUrl?: string\n initialCode?: string\n initialLanguage?: string\n initialVersion?: string\n initialDarkMode?: boolean\n hideHeader?: boolean\n editorWidthPercent?: number\n}\n\nexport default function NotJS({\n websocketUrl = 'ws://localhost:8080/terminal',\n apiBaseUrl = 'http://localhost:8080/api',\n initialCode,\n initialLanguage = 'java',\n initialVersion = '25',\n initialDarkMode = true,\n hideHeader = false,\n editorWidthPercent = 50\n}: NotJSProps) {\n // State\n const [code, setCode] = useState(initialCode || DEFAULT_CODE[initialLanguage] || DEFAULT_CODE.java)\n const [languages, setLanguages] = useState<string[]>([])\n const [selectedLanguage, setSelectedLanguage] = useState(initialLanguage)\n const [languageInfo, setLanguageInfo] = useState<{versions: string[], default: string | null, code: string}>({\n default: null,\n code: '',\n versions: []\n })\n const [versions, setVersions] = useState<string[]>([])\n const [selectedVersion, setSelectedVersion] = useState<string | null>(initialVersion)\n const [defaultVersion, setDefaultVersion] = useState<string | null>(null)\n const [isDarkMode, setIsDarkMode] = useState(initialDarkMode)\n const [codeCopied, setCodeCopied] = useState(false)\n const [consoleCopied, setConsoleCopied] = useState(false)\n const [leftPanelWidth, setLeftPanelWidth] = useState(editorWidthPercent) // percentage\n const [isResizing, setIsResizing] = useState(false)\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n const [errorMessage, setErrorMessage] = useState<string>('')\n\n // Refs\n const terminalRef = useRef<HTMLDivElement>(null)\n const xtermRef = useRef<XTerm | null>(null)\n const wsRef = useRef<WebSocket | null>(null)\n const inputBufferRef = useRef<string>('')\n const containerRef = useRef<HTMLDivElement>(null)\n\n // Check API availability for initial language and version\n useEffect(() => {\n const checkAvailability = async () => {\n try {\n const response = await fetch(`${apiBaseUrl}/language/info/${initialLanguage}`)\n if (!response.ok) {\n throw new Error('Language not supported')\n }\n const info = await response.json()\n\n if (!info.availableVersions.includes(initialVersion)) {\n setIsAvailable(false)\n setErrorMessage(\n `${initialLanguage.toUpperCase()} version ${initialVersion} is not available. Available versions: ${info.availableVersions.join(', ')}`\n )\n } else {\n setIsAvailable(true)\n }\n } catch (error) {\n setIsAvailable(false)\n setErrorMessage(\n `Failed to connect to NotJS API at ${apiBaseUrl}. Please ensure the Spring Boot backend is running.`\n )\n }\n }\n\n checkAvailability()\n }, [apiBaseUrl, initialLanguage, initialVersion])\n\n // Fetch supported languages on mount\n useEffect(() => {\n fetch(`${apiBaseUrl}/language/supported`)\n .then(res => res.json())\n .then((langs: string[]) => {\n setLanguages(langs)\n })\n .catch(err => {\n console.error('Failed to fetch languages:', err)\n })\n }, [apiBaseUrl])\n\n // Fetch versions when language changes\n useEffect(() => {\n if (!selectedLanguage) return\n\n fetch(`${apiBaseUrl}/language/info/${selectedLanguage}`)\n .then(res => res.json())\n .then((info: { availableVersions: string[]; defaultVersion: string }) => {\n setVersions(info.availableVersions)\n setDefaultVersion(info.defaultVersion)\n setSelectedVersion(info.defaultVersion)\n setLanguageInfo({\n default: info.defaultVersion,\n versions: info.availableVersions,\n code: DEFAULT_CODE[selectedLanguage]\n })\n setCode(initialCode || DEFAULT_CODE[selectedLanguage])\n })\n .catch(err => {\n console.error('Failed to fetch language info:', err)\n })\n }, [selectedLanguage, apiBaseUrl])\n\n // Initialize xterm and WebSocket\n useEffect(() => {\n if (!terminalRef.current || isAvailable !== true) return\n\n // Wait for versions to be loaded before connecting\n // (except on initial mount where defaultVersion may not be set yet)\n if (defaultVersion === null && versions.length === 0) return\n\n // Create terminal\n const term = new XTerm({\n cursorBlink: true,\n fontSize: 14,\n fontFamily: 'Menlo, Monaco, \"Courier New\", monospace',\n theme: isDarkMode ? {\n background: '#0a0a0a',\n foreground: '#d4d4d4',\n cursor: '#ffffff',\n } : {\n background: '#ffffff',\n foreground: '#000000',\n cursor: '#000000',\n },\n scrollback: 1000,\n convertEol: true,\n })\n\n xtermRef.current = term\n term.open(terminalRef.current)\n\n // Fit terminal to container\n const fitTerminal = () => {\n if (terminalRef.current && xtermRef.current) {\n const rect = terminalRef.current.getBoundingClientRect()\n const cols = Math.floor((rect.width - 20) / 9)\n const rows = Math.floor((rect.height - 20) / 17)\n xtermRef.current.resize(cols, rows)\n }\n }\n\n setTimeout(fitTerminal, 100)\n window.addEventListener('resize', fitTerminal)\n\n // Connect WebSocket\n const ws = new WebSocket(websocketUrl)\n wsRef.current = ws\n\n ws.onopen = () => {\n console.log('WebSocket connected')\n term.write('\\x1b[1;32m> Connected\\x1b[0m\\r\\n')\n\n // Send initial execution request\n const executionRequest: ExecutionRequest = {\n language: selectedLanguage,\n code: initialCode || languageInfo.code,\n version: languageInfo.default || selectedVersion || null,\n arguments: []\n }\n\n ws.send(JSON.stringify(executionRequest))\n term.write(`\\x1b[1;36m> Running ${selectedLanguage} ${languageInfo.default || defaultVersion || ''}...\\x1b[0m\\r\\n`)\n }\n\n ws.onmessage = (event) => {\n const data = event.data.replace(/\\n/g, '\\r\\n')\n term.write(data)\n }\n\n ws.onerror = (error) => {\n console.error('WebSocket error:', error)\n term.write('\\x1b[1;31m\\r\\n[ERROR] WebSocket connection error\\x1b[0m\\r\\n')\n }\n\n ws.onclose = () => {\n console.log('WebSocket closed')\n term.write('\\x1b[1;33m\\r\\n[DISCONNECTED]\\x1b[0m\\r\\n')\n }\n\n // Handle terminal input\n term.onData((data) => {\n if (ws.readyState === WebSocket.OPEN) {\n if (data === '\\x7f' || data === '\\b') {\n // Backspace\n if (inputBufferRef.current.length > 0) {\n inputBufferRef.current = inputBufferRef.current.slice(0, -1)\n term.write('\\b \\b')\n }\n } else if (data === '\\r') {\n // Enter - send line\n term.write('\\r\\n')\n ws.send(inputBufferRef.current + '\\n')\n inputBufferRef.current = ''\n } else if (data === '\\x03') {\n // Ctrl+C\n term.write('^C\\r\\n')\n inputBufferRef.current = ''\n } else {\n // Normal character\n inputBufferRef.current += data\n term.write(data)\n }\n }\n })\n\n return () => {\n window.removeEventListener('resize', fitTerminal)\n term.dispose()\n if (ws.readyState === WebSocket.OPEN) {\n ws.close()\n }\n }\n }, [isAvailable, websocketUrl, languageInfo, isDarkMode])\n\n // Update terminal theme when dark mode changes\n useEffect(() => {\n if (xtermRef.current) {\n xtermRef.current.options.theme = isDarkMode ? {\n background: '#0a0a0a',\n foreground: '#d4d4d4',\n cursor: '#ffffff',\n } : {\n background: '#ffffff',\n foreground: '#000000',\n cursor: '#000000',\n }\n }\n }, [isDarkMode])\n\n // Handle run/restart\n const handleRun = () => {\n if (!xtermRef.current || !terminalRef.current) return\n\n // Close existing connection and remove its handlers to prevent them from writing to terminal\n if (wsRef.current) {\n const oldWs = wsRef.current\n // Remove all event handlers before closing\n oldWs.onopen = null\n oldWs.onmessage = null\n oldWs.onerror = null\n oldWs.onclose = null\n oldWs.close()\n }\n\n // Clear terminal completely (including scrollback buffer)\n xtermRef.current.reset()\n xtermRef.current.clear()\n inputBufferRef.current = ''\n\n // Reconnect\n const ws = new WebSocket(websocketUrl)\n wsRef.current = ws\n\n ws.onopen = () => {\n console.log('WebSocket reconnected')\n xtermRef.current?.write('\\x1b[1;32m> Connected\\x1b[0m\\r\\n')\n\n const executionRequest: ExecutionRequest = {\n language: selectedLanguage,\n code: code,\n version: selectedVersion || languageInfo.default || null,\n arguments: []\n }\n\n ws.send(JSON.stringify(executionRequest))\n xtermRef.current?.write(`\\x1b[1;36m> Running ${selectedLanguage} ${selectedVersion || languageInfo.default || defaultVersion || ''}...\\x1b[0m\\r\\n`)\n }\n\n ws.onmessage = (event) => {\n const data = event.data.replace(/\\n/g, '\\r\\n')\n xtermRef.current?.write(data)\n }\n\n ws.onerror = (error) => {\n console.error('WebSocket error:', error)\n xtermRef.current?.write('\\x1b[1;31m\\r\\n[ERROR] WebSocket connection error\\x1b[0m\\r\\n')\n }\n\n ws.onclose = () => {\n console.log('WebSocket closed')\n xtermRef.current?.write('\\x1b[1;33m\\r\\n[DISCONNECTED]\\x1b[0m\\r\\n')\n }\n\n // Handle terminal input\n xtermRef.current?.onData((data) => {\n if (ws.readyState === WebSocket.OPEN) {\n if (data === '\\x7f' || data === '\\b') {\n if (inputBufferRef.current.length > 0) {\n inputBufferRef.current = inputBufferRef.current.slice(0, -1)\n xtermRef.current?.write('\\b \\b')\n }\n } else if (data === '\\r') {\n xtermRef.current?.write('\\r\\n')\n ws.send(inputBufferRef.current + '\\n')\n inputBufferRef.current = ''\n } else if (data === '\\x03') {\n xtermRef.current?.write('^C\\r\\n')\n inputBufferRef.current = ''\n } else {\n inputBufferRef.current += data\n xtermRef.current?.write(data)\n }\n }\n })\n }\n\n // Handle copy to clipboard\n const copyToClipboard = (text: string, type: 'code' | 'console') => {\n navigator.clipboard.writeText(text).then(() => {\n if (type === 'code') {\n setCodeCopied(true)\n setTimeout(() => setCodeCopied(false), 2000)\n } else {\n setConsoleCopied(true)\n setTimeout(() => setConsoleCopied(false), 2000)\n }\n })\n }\n\n const copyConsoleOutput = () => {\n if (xtermRef.current) {\n const buffer = xtermRef.current.buffer.active\n let text = ''\n for (let i = 0; i < buffer.length; i++) {\n const line = buffer.getLine(i)\n if (line) {\n text += line.translateToString(true) + '\\n'\n }\n }\n copyToClipboard(text, 'console')\n }\n }\n\n // Toggle theme\n const toggleTheme = () => {\n setIsDarkMode(prev => !prev)\n if (isDarkMode) {\n document.documentElement.classList.remove('dark')\n } else {\n document.documentElement.classList.add('dark')\n }\n }\n\n // Initialize dark mode\n useEffect(() => {\n if (isDarkMode) {\n if (!hideHeader) {\n document.documentElement.classList.add('dark')\n }\n\n }\n }, [])\n\n // Handle resizing panels\n const handleMouseDown = (e: React.MouseEvent) => {\n e.preventDefault()\n setIsResizing(true)\n }\n\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n if (!isResizing || !containerRef.current) return\n\n const container = containerRef.current\n const containerRect = container.getBoundingClientRect()\n const newLeftWidth = ((e.clientX - containerRect.left) / containerRect.width) * 100\n\n // Constrain between 20% and 80%\n if (newLeftWidth >= 20 && newLeftWidth <= 80) {\n setLeftPanelWidth(newLeftWidth)\n }\n }\n\n const handleMouseUp = () => {\n setIsResizing(false)\n }\n\n if (isResizing) {\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = 'col-resize'\n document.body.style.userSelect = 'none'\n }\n\n return () => {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n document.body.style.cursor = ''\n document.body.style.userSelect = ''\n }\n }, [isResizing])\n\n // Refit terminal when panel width changes\n useEffect(() => {\n if (xtermRef.current && terminalRef.current) {\n setTimeout(() => {\n if (terminalRef.current && xtermRef.current) {\n const rect = terminalRef.current.getBoundingClientRect()\n const cols = Math.floor((rect.width - 20) / 9)\n const rows = Math.floor((rect.height - 20) / 17)\n xtermRef.current.resize(cols, rows)\n }\n }, 10)\n }\n }, [leftPanelWidth])\n\n // Show error fallback if API is not available\n if (isAvailable === false) {\n return (\n <div className=\"flex flex-col items-center justify-center h-screen w-screen bg-neutral-50 dark:bg-neutral-950 p-8\">\n <div className=\"max-w-2xl w-full border-2 border-red-500 rounded-2xl p-8 bg-white dark:bg-neutral-900\">\n <div className=\"flex items-start gap-4\">\n <AlertCircle className=\"w-8 h-8 text-red-500 flex-shrink-0 mt-1\" />\n <div>\n <h2 className=\"text-2xl font-bold text-red-600 dark:text-red-500 mb-3\">\n NotJS Configuration Error\n </h2>\n <p className=\"text-red-700 dark:text-red-400 text-lg leading-relaxed\">\n {errorMessage}\n </p>\n </div>\n </div>\n </div>\n </div>\n )\n }\n\n // Show loading state while checking availability\n if (isAvailable === null) {\n return (\n <div className=\"flex flex-col items-center justify-center h-screen w-screen bg-neutral-50 dark:bg-neutral-950\">\n <div className=\"text-neutral-600 dark:text-neutral-400 text-lg\">\n Loading NotJS...\n </div>\n </div>\n )\n }\n\n return (\n <div className=\"notjs-container\">\n <div className=\"flex flex-col h-full w-full bg-neutral-50 dark:bg-neutral-950\">\n {/* Header */}\n {!hideHeader && (\n <div className=\"flex items-center justify-between px-8 py-3 bg-white/80 dark:bg-neutral-900/80 backdrop-blur border-b border-black/5 dark:border-white/5\">\n <div className=\"flex items-center gap-6\">\n <div className=\"flex items-center gap-4\">\n <h1 className=\"text-2xl font-semibold text-neutral-900 dark:text-white\">\n NotJS\n </h1>\n <img\n src={notjsLogo}\n alt=\"NotJS Logo\"\n className=\"h-10 object-contain rounded-xl\"\n />\n </div>\n\n <select\n value={selectedLanguage}\n onChange={(e) => setSelectedLanguage(e.target.value)}\n className=\"px-4 py-2 rounded-xl bg-neutral-100 dark:bg-neutral-800 text-neutral-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500/40 transition\"\n >\n {languages.map(lang => (\n <option key={lang} value={lang}>\n {lang.toUpperCase()}\n </option>\n ))}\n </select>\n\n {versions.length > 0 && (\n <select\n value={selectedVersion || defaultVersion || ''}\n onChange={(e) => setSelectedVersion(e.target.value || null)}\n className=\"px-4 py-2 rounded-xl bg-neutral-100 dark:bg-neutral-800 text-neutral-900 dark:text-white text-sm focus:outline-none focus:ring-2 focus:ring-blue-500/40 transition\"\n >\n {versions.map(version => (\n <option key={version} value={version}>\n v{version} {version === defaultVersion ? '(default)' : ''}\n </option>\n ))}\n </select>\n )}\n </div>\n\n <button\n onClick={toggleTheme}\n className=\"p-3 rounded-xl bg-neutral-100 dark:bg-neutral-800 hover:bg-neutral-200 dark:hover:bg-neutral-700 transition\"\n >\n {isDarkMode ? (\n <Sun className=\"w-5 h-5 text-yellow-500\" />\n ) : (\n <Moon className=\"w-5 h-5 text-neutral-700\" />\n )}\n </button>\n </div>\n )}\n\n {/* Main Content */}\n <div ref={containerRef} className=\"flex flex-1 overflow-hidden relative\">\n {/* Code Panel */}\n <div\n className=\"flex flex-col bg-white dark:bg-neutral-900\"\n style={{ width: `${leftPanelWidth}%`, flexShrink: 0 }}\n >\n {/* Code Header */}\n <div className={`flex items-center justify-between px-8 bg-neutral-100/70 dark:bg-neutral-900 border-b border-black/5 dark:border-white/5 ${hideHeader ? 'py-2' : 'py-1'}`}>\n <h2 className=\"text-sm font-semibold tracking-wide text-neutral-600 dark:text-neutral-400\">\n CODE\n </h2>\n\n <div className=\"flex items-center gap-2\">\n {/* Restart */}\n <button\n onClick={handleRun}\n className=\"p-1.5 rounded-lg transition bg-orange-500/90 hover:bg-orange-500 text-white\"\n data-tooltip-id=\"restart-tooltip\"\n data-tooltip-content=\"Restart program\"\n >\n <RotateCcw className=\"w-3.5 h-3.5\" />\n </button>\n\n {/* Copy Code */}\n <button\n onClick={() => copyToClipboard(code, 'code')}\n className=\"p-1.5 rounded-lg bg-neutral-200 dark:bg-neutral-800 hover:bg-neutral-300 dark:hover:bg-neutral-700 transition\"\n data-tooltip-id=\"copy-code-tooltip\"\n data-tooltip-content=\"Copy code\"\n >\n {codeCopied ? (\n <Check className=\"w-3.5 h-3.5 text-emerald-600\" />\n ) : (\n <Copy className=\"w-3.5 h-3.5 text-neutral-700 dark:text-neutral-300\" />\n )}\n </button>\n </div>\n </div>\n\n <div className=\"flex-1 overflow-hidden rounded-b-2xl\">\n <Editor\n height=\"100%\"\n language={selectedLanguage}\n value={code}\n onChange={(value) => setCode(value || '')}\n theme={isDarkMode ? 'vs-dark' : 'light'}\n options={{\n minimap: { enabled: false },\n fontSize: 14,\n lineNumbers: 'on',\n scrollBeyondLastLine: false,\n automaticLayout: true,\n tabSize: 2,\n wordWrap: 'on',\n padding: { top: 12, bottom: 12 }\n }}\n />\n </div>\n </div>\n\n {/* Resize Handle */}\n <div\n className={`w-1 shrink-0 bg-black/5 dark:bg-white/5 hover:bg-blue-500 cursor-col-resize transition ${\n isResizing ? 'bg-blue-500' : ''\n }`}\n onMouseDown={handleMouseDown}\n />\n\n {/* Console Panel */}\n <div className=\"flex-1 min-w-0 flex flex-col bg-white dark:bg-neutral-950\">\n <div className={`flex items-center justify-between px-8 bg-neutral-100/70 dark:bg-neutral-900 border-b border-black/5 dark:border-white/5 shrink-0 ${hideHeader ? 'py-2' : 'py-1'}`}>\n <h2 className=\"text-sm font-semibold tracking-wide text-neutral-600 dark:text-neutral-400\">\n CONSOLE\n </h2>\n\n <button\n onClick={copyConsoleOutput}\n className=\"p-1.5 rounded-lg bg-neutral-200 dark:bg-neutral-800 hover:bg-neutral-300 dark:hover:bg-neutral-700 transition\"\n data-tooltip-id=\"copy-output-tooltip\"\n data-tooltip-content=\"Copy output\"\n >\n {consoleCopied ? (\n <Check className=\"w-3.5 h-3.5 text-emerald-600\" />\n ) : (\n <Copy className=\"w-3.5 h-3.5 text-neutral-700 dark:text-neutral-300\" />\n )}\n </button>\n </div>\n\n <div\n ref={terminalRef}\n className=\"flex-1 overflow-hidden rounded-b-2xl bg-white dark:bg-neutral-950 p-3\"\n />\n </div>\n </div>\n </div>\n <Tooltip\n id=\"restart-tooltip\"\n className=\"!rounded-lg !bg-slate-800/95 !backdrop-blur-sm !px-3 !py-2 !shadow-xl !border !border-slate-700/50\"\n style={{\n fontSize: '0.75rem',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n color: '#ffffff',\n zIndex: 9999\n }}\n place=\"bottom\"\n offset={8}\n />\n <Tooltip\n id=\"copy-code-tooltip\"\n className=\"!rounded-lg !bg-slate-800/95 !backdrop-blur-sm !px-3 !py-2 !shadow-xl !border !border-slate-700/50\"\n style={{\n fontSize: '0.75rem',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n color: '#ffffff',\n zIndex: 9999\n }}\n place=\"bottom\"\n offset={8}\n />\n <Tooltip\n id=\"copy-output-tooltip\"\n className=\"!rounded-lg !bg-slate-800/95 !backdrop-blur-sm !px-3 !py-2 !shadow-xl !border !border-slate-700/50\"\n style={{\n fontSize: '0.75rem',\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif',\n color: '#ffffff',\n zIndex: 9999\n }}\n place=\"bottom\"\n offset={8}\n />\n </div>\n )\n}"],"names":["_arrayLikeToArray","r","a","e","n","_arrayWithHoles","_defineProperty","t","_toPropertyKey","_iterableToArrayLimit","l","i","u","f","o","_nonIterableRest","ownKeys","_objectSpread2","_objectWithoutProperties","_objectWithoutPropertiesLoose","_slicedToArray","_unsupportedIterableToArray","_toPrimitive","obj","key","value","object","enumerableOnly","keys","symbols","sym","target","source","compose","_len","fns","_key","x","y","curry","fn","curried","_this","_len2","args","_key2","_len3","nextArgs","_key3","isObject","isEmpty","isFunction","hasOwnProperty","property","validateChanges","initial","changes","errorHandler","field","validateSelector","selector","validateHandler","handler","_handler","validateInitial","throwError","errorMessages","type","validators","create","state","didUpdate","didStateUpdate","update","updateState","validate","getChanges","extractChanges","getState","setState","causedChanges","_handler$field","index","config","validateConfig","informAboutDeprecation","merge","CANCELATION_MESSAGE","makeCancelable","promise","hasCanceled_","wrappedPromise","resolve","reject","val","_excluded","_state$create","config$1","_state$create2","globalConfig","_validators$config","monaco","init","_ref","isInitialized","wrapperPromise","storeMonacoInstance","injectScripts","getMonacoLoaderScript","configureLoader","script","createScript","src","_ref2","loaderScript","_ref3","require","loaded","error","__getMonacoInstance","_ref4","loader","le","v","ae","Y","Me","me","Z","$","Ee","m","E","K","ee","H","ye","Ce","xe","k","he","Re","ge","D","h","De","be","te","Oe","g","N","P","V","z","F","j","A","q","M","O","re","T","s","S","c","w","d","b","Se","I","_b","_a","L","oe","U","ne","_c","_d","ke","ie","Te","He","ve","Ue","se","_","Ve","ue","C","B","p","Ne","R","pe","X","_e","W","G","J","We","fe","de","ze","Ft","module","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","side","isStart","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","width","height","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","name","nextX","nextY","data","reset","detectOverflow","options","_await$platform$isEle","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflow","overflows","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","acc","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","hasWindow","getNodeName","node","isNode","getWindow","_node$ownerDocument","getDocumentElement","isElement","isHTMLElement","isShadowRoot","invalidOverflowDisplayValues","isOverflowElement","overflowX","overflowY","display","getComputedStyle","tableElements","isTableElement","topLayerSelectors","isTopLayer","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","css","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","lastTraversableNodeNames","getNodeScroll","result","getNearestOverflowAncestor","parentNode","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getCssDimensions","getComputedStyle$1","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","offsets","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","doc","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cache","cachedResult","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","root","cleanup","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","arrow$1","mergedOptions","platformWithCache","computePosition$1","hasOwn","classNames","classes","arg","appendClass","parseValue","newClass","Q","ce","we","Ae","Le","$e","je","Ie","Be","qe","Pe","Fe","Ke","Xe","Ye","Ge","toKebabCase","string","mergeClasses","className","array","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","rest","ref","createElement","tag","attrs","createLucideIcon","iconName","Component","props","Check","CircleAlert","Copy","Moon","RotateCcw","Sun","notjsLogo","DEFAULT_CODE","NotJS","websocketUrl","apiBaseUrl","initialCode","initialLanguage","initialVersion","initialDarkMode","hideHeader","editorWidthPercent","code","setCode","useState","languages","setLanguages","selectedLanguage","setSelectedLanguage","languageInfo","setLanguageInfo","versions","setVersions","selectedVersion","setSelectedVersion","defaultVersion","setDefaultVersion","isDarkMode","setIsDarkMode","codeCopied","setCodeCopied","consoleCopied","setConsoleCopied","leftPanelWidth","setLeftPanelWidth","isResizing","setIsResizing","isAvailable","setIsAvailable","errorMessage","setErrorMessage","terminalRef","useRef","xtermRef","wsRef","inputBufferRef","containerRef","useEffect","response","info","res","langs","err","term","XTerm","fitTerminal","cols","rows","ws","executionRequest","event","handleRun","oldWs","copyToClipboard","text","copyConsoleOutput","buffer","line","toggleTheme","prev","handleMouseDown","handleMouseMove","containerRect","newLeftWidth","handleMouseUp","jsx","jsxs","AlertCircle","lang","version","Editor","Tooltip"],"mappings":"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E,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAAE,CAAC,MAAK,IAAI,GAA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]}