/*!-----------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Version: 0.10.1(ebbf400719be21761361804bf63fb3916e64a845)
 * Released under the MIT license
 * https://github.com/Microsoft/vscode/blob/master/LICENSE.txt
 *-----------------------------------------------------------*/
(function () {
  function e(e) {
    this.tokens = [], this.tokens.links = {}, this.options = e
        || l.defaults, this.rules = g.normal, this.options.gfm
    && (this.options.tables ? this.rules = g.tables : this.rules = g.gfm)
  }

  function t(e, t) {
    if (this.options = t
        || l.defaults, this.links = e, this.rules = m.normal, this.renderer = this.options.renderer
        || new n, this.renderer.options = this.options, !this.links) {
      throw new Error(
          "Tokens array requires a `links` property.");
    }
    this.options.gfm ? this.options.breaks ? this.rules = m.breaks
        : this.rules = m.gfm : this.options.pedantic
        && (this.rules = m.pedantic)
  }

  function n(e) {
    this.options = e || {}
  }

  function i(e) {
    this.tokens = [], this.token = null, this.options = e
        || l.defaults, this.options.renderer = this.options.renderer
        || new n, this.renderer = this.options.renderer, this.renderer.options = this.options
  }

  function o(e, t) {
    return e.replace(t ? /&/g : /&(?!#?\w+;)/g, "&amp;").replace(/</g,
        "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g,
        "&#39;")
  }

  function r(e) {
    return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/g,
        function (e, t) {
          return "colon" === (t = t.toLowerCase()) ? ":" : "#" === t.charAt(0)
              ? "x" === t.charAt(1) ? String.fromCharCode(
                  parseInt(t.substring(2), 16)) : String.fromCharCode(
                  +t.substring(1)) : ""
        })
  }

  function s(e, t) {
    return e = e.source, t = t || "", function n(i, o) {
      return i ? (o = o.source || o, o = o.replace(/(^|[^\[])\^/g,
          "$1"), e = e.replace(i, o), n) : new RegExp(e, t)
    }
  }

  function a() {
  }

  function u(e) {
    for (var t, n, i = 1; i < arguments.length; i++) {
      t = arguments[i];
      for (n in t) {
        Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n])
      }
    }
    return e
  }

  function l(t, n, r) {
    if (r || "function" == typeof n) {
      r || (r = n, n = null);
      var s, a, c = (n = u({}, l.defaults, n || {})).highlight, d = 0;
      try {
        s = e.lex(t, n)
      } catch (e) {
        return r(e)
      }
      a = s.length;
      var h = function (e) {
        if (e) {
          return n.highlight = c, r(e);
        }
        var t;
        try {
          t = i.parse(s, n)
        } catch (t) {
          e = t
        }
        return n.highlight = c, e ? r(e) : r(null, t)
      };
      if (!c || c.length < 3) {
        return h();
      }
      if (delete n.highlight, !a) {
        return h();
      }
      for (; d < s.length; d++) {
        !function (e) {
          "code" !== e.type ? --a || h() : c(e.text, e.lang, function (t, n) {
            return t ? h(t) : null == n || n === e.text ? --a || h()
                : (e.text = n, e.escaped = !0, void (--a || h()))
          })
        }(s[d])
      }
    } else {
      try {
        return n && (n = u({}, l.defaults, n)), i.parse(e.lex(t, n), n)
      } catch (e) {
        if (e.message += "\nPlease report this to https://github.com/chjj/marked.", (n
            || l.defaults).silent) {
          return "<p>An error occurred:</p><pre>" + o(
              e.message + "", !0) + "</pre>";
        }
        throw e
      }
    }
  }

  var c, d = ["exports", "require", "vs/editor/common/core/range",
    "vs/base/common/lifecycle", "vs/base/browser/dom",
    "vs/css!vs/editor/editor.main", "vs/nls", "vs/base/common/winjs.base",
    "vs/nls!vs/editor/editor.main", "vs/base/common/strings",
    "vs/base/common/errors", "vs/base/common/event",
    "vs/editor/common/core/position", "vs/editor/common/editorCommonExtensions",
    "vs/platform/theme/common/themeService", "vs/base/common/platform",
    "vs/platform/instantiation/common/instantiation", "vs/editor/common/modes",
    "vs/base/common/async", "vs/platform/contextkey/common/contextkey",
    "vs/editor/common/editorCommon", "vs/editor/common/editorContextKeys",
    "vs/editor/common/core/selection", "vs/platform/theme/common/colorRegistry",
    "vs/base/common/uri", "vs/editor/browser/editorBrowser",
    "vs/base/common/objects", "vs/base/browser/fastDomNode",
    "vs/base/browser/browser", "vs/base/common/types",
    "vs/editor/browser/editorBrowserExtensions",
    "vs/platform/commands/common/commands", "vs/base/common/color",
    "vs/base/common/arrays", "vs/editor/common/model/textModelWithDecorations",
    "vs/editor/browser/view/viewPart", "vs/base/common/severity",
    "vs/editor/common/view/editorColorRegistry", "vs/base/common/eventEmitter",
    "vs/editor/common/controller/cursorCommon", "vs/base/common/keyCodes",
    "vs/base/browser/ui/widget", "vs/editor/common/services/codeEditorService",
    "vs/editor/common/modes/languageConfigurationRegistry",
    "vs/platform/registry/common/platform", "vs/base/common/paths",
    "vs/platform/keybinding/common/keybinding", "vs/base/browser/mouseEvent",
    "vs/base/common/scrollable", "vs/editor/common/config/editorOptions",
    "vs/platform/message/common/message", "vs/base/browser/ui/aria/aria",
    "vs/base/browser/builder", "vs/base/common/actions",
    "vs/editor/common/controller/cursorEvents",
    "vs/editor/common/model/textModelEvents",
    "vs/editor/common/services/modelService",
    "vs/editor/common/view/viewEvents",
    "vs/platform/telemetry/common/telemetry",
    "vs/editor/common/core/editOperation",
    "vs/editor/common/modes/languageConfiguration",
    "vs/editor/common/services/editorWorkerService",
    "vs/platform/configuration/common/configuration",
    "vs/base/browser/ui/scrollbar/scrollableElement",
    "vs/platform/editor/common/editor", "vs/base/browser/keyboardEvent",
    "vs/editor/browser/config/configuration",
    "vs/editor/browser/view/dynamicViewOverlay",
    "vs/editor/common/modes/nullMode",
    "vs/platform/contextview/browser/contextView", "vs/base/common/network",
    "vs/platform/opener/common/opener", "vs/base/common/assert",
    "vs/editor/common/commands/replaceCommand", "vs/base/browser/touch",
    "vs/base/browser/ui/actionbar/actionbar",
    "vs/platform/storage/common/storage",
    "vs/editor/standalone/common/standaloneThemeService",
    "vs/editor/common/view/renderingContext", "vs/base/common/events",
    "vs/base/common/map", "vs/base/common/filters",
    "vs/editor/common/viewModel/viewEventHandler",
    "vs/base/browser/globalMouseMoveMonitor",
    "vs/platform/instantiation/common/serviceCollection",
    "vs/platform/actions/common/actions",
    "vs/editor/common/viewModel/viewModel",
    "vs/editor/common/services/resolverService",
    "vs/editor/common/services/modeService",
    "vs/editor/common/core/characterClassifier",
    "vs/editor/common/core/viewLineToken", "vs/editor/common/modes/supports",
    "vs/editor/contrib/zoneWidget/browser/peekViewWidget",
    "vs/editor/common/model/textModel",
    "vs/editor/common/controller/wordCharacterClassifier",
    "vs/editor/common/model/wordHelper", "vs/editor/common/core/uint",
    "vs/editor/common/core/token",
    "vs/editor/common/modes/supports/richEditBrackets",
    "vs/base/browser/ui/sash/sash", "vs/base/parts/quickopen/common/quickOpen",
    "vs/editor/common/model/textSource", "vs/base/browser/htmlContentRenderer",
    "vs/platform/markers/common/markers",
    "vs/editor/common/viewModel/prefixSumComputer",
    "vs/platform/keybinding/common/keybindingsRegistry",
    "vs/editor/common/viewLayout/viewLineRenderer", "vs/base/common/iterator",
    "vs/base/common/idGenerator", "vs/editor/contrib/suggest/browser/suggest",
    "vs/base/browser/ui/highlightedlabel/highlightedLabel",
    "vs/editor/common/view/minimapCharRenderer",
    "vs/editor/browser/view/viewLayer",
    "vs/editor/browser/viewParts/glyphMargin/glyphMargin",
    "vs/editor/browser/editorDom", "vs/base/browser/ui/inputbox/inputBox",
    "vs/editor/common/model/tokensBinaryEncoding",
    "vs/base/browser/ui/scrollbar/scrollbarArrow",
    "vs/editor/common/model/modelLine",
    "vs/editor/common/controller/cursorTypeOperations",
    "vs/base/parts/quickopen/browser/quickOpenModel",
    "vs/editor/contrib/find/common/findModel",
    "vs/editor/common/modes/textToHtmlTokenizer", "vs/base/common/cancellation",
    "vs/base/browser/event",
    "vs/editor/contrib/referenceSearch/browser/referencesModel",
    "vs/editor/common/modes/modesRegistry",
    "vs/platform/configuration/common/configurationRegistry",
    "vs/base/parts/tree/browser/treeDefaults",
    "vs/editor/standalone/browser/simpleServices",
    "vs/editor/common/core/lineTokens", "vs/editor/common/core/editorState",
    "vs/editor/common/config/fontInfo", "vs/base/common/htmlContent",
    "vs/editor/common/controller/coreCommands",
    "vs/editor/common/config/editorZoom", "vs/base/common/functional",
    "vs/platform/theme/common/styler",
    "vs/editor/common/viewLayout/lineDecorations", "vs/base/common/diff/diff",
    "vs/editor/common/view/overviewZoneManager", "vs/editor/browser/codeEditor",
    "vs/editor/contrib/snippet/browser/snippetParser",
    "vs/editor/standalone/browser/quickOpen/editorQuickOpen",
    "vs/platform/workspace/common/workspace",
    "vs/editor/standalone/common/monarch/monarchCommon",
    "vs/editor/common/services/resourceConfiguration",
    "vs/editor/common/services/editorWorkerServiceImpl",
    "vs/base/browser/iframe", "vs/editor/common/editorAction",
    "vs/base/browser/ui/scrollbar/scrollbarState",
    "vs/editor/browser/controller/textAreaState",
    "vs/editor/common/standalone/standaloneBase",
    "vs/base/browser/ui/findinput/findInputCheckboxes",
    "vs/editor/browser/controller/textAreaInput",
    "vs/base/common/keybindingLabels",
    "vs/platform/environment/common/environment", "vs/base/common/collections",
    "vs/editor/common/model/textModelSearch",
    "vs/platform/keybinding/common/keybindingResolver",
    "vs/base/browser/ui/contextview/contextview",
    "vs/base/parts/tree/browser/treeImpl",
    "vs/base/browser/ui/iconLabel/iconLabel",
    "vs/platform/progress/common/progress",
    "vs/editor/browser/widget/diffNavigator", "vs/base/common/glob",
    "vs/base/common/mime", "vs/editor/common/commands/shiftCommand",
    "vs/editor/common/config/commonEditorConfig",
    "vs/editor/common/controller/cursorMoveOperations",
    "vs/editor/common/controller/cursorDeleteOperations",
    "vs/css!vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse",
    "vs/editor/common/controller/cursorWordOperations",
    "vs/editor/common/controller/cursorMoveCommands", "vs/base/common/labels",
    "vs/editor/common/model/model",
    "vs/editor/contrib/find/common/findController",
    "vs/editor/contrib/goToDeclaration/browser/goToDeclaration",
    "vs/editor/contrib/parameterHints/common/parameterHints",
    "vs/editor/common/viewModel/splitLinesCollection",
    "vs/editor/contrib/snippet/browser/snippetController2",
    "vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode",
    "vs/editor/browser/viewParts/margin/margin",
    "vs/editor/contrib/zoneWidget/browser/zoneWidget",
    "vs/base/browser/ui/scrollbar/abstractScrollbar",
    "vs/editor/browser/viewParts/lines/viewLine",
    "vs/editor/browser/controller/mouseTarget",
    "vs/platform/instantiation/common/descriptors",
    "vs/editor/browser/viewParts/lineNumbers/lineNumbers",
    "vs/editor/contrib/comment/common/blockCommentCommand",
    "vs/editor/browser/viewParts/overviewRuler/overviewRulerImpl",
    "vs/editor/browser/widget/codeEditorWidget",
    "vs/editor/contrib/goToDeclaration/browser/clickLinkGesture",
    "vs/editor/browser/widget/diffEditorWidget",
    "vs/editor/browser/widget/embeddedCodeEditorWidget",
    "vs/editor/contrib/hover/browser/hoverOperation",
    "vs/editor/contrib/hover/browser/hoverWidgets",
    "vs/base/common/worker/simpleWorker",
    "vs/editor/contrib/referenceSearch/browser/referencesController",
    "vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands",
    "vs/editor/standalone/browser/standaloneServices",
    "vs/css!vs/base/browser/ui/countBadge/countBadge",
    "vs/editor/common/modes/supports/tokenization",
    "vs/editor/common/modes/tokenizationRegistry",
    "vs/base/browser/ui/countBadge/countBadge",
    "vs/css!vs/base/browser/ui/findinput/findInput",
    "vs/css!vs/base/browser/ui/findinput/findInputCheckboxes",
    "vs/editor/common/modes/supports/electricCharacter",
    "vs/css!vs/base/browser/ui/iconLabel/iconlabel",
    "vs/base/common/marked/marked",
    "vs/editor/common/services/abstractCodeEditorService",
    "vs/css!vs/base/browser/ui/inputbox/inputBox",
    "vs/css!vs/base/browser/ui/keybindingLabel/keybindingLabel",
    "vs/css!vs/base/browser/ui/list/list",
    "vs/editor/browser/viewParts/lines/rangeUtil",
    "vs/editor/common/view/runtimeMinimapCharRenderer",
    "vs/editor/common/view/viewContext",
    "vs/editor/common/view/viewEventDispatcher",
    "vs/css!vs/base/browser/ui/menu/menu",
    "vs/css!vs/base/browser/ui/progressbar/progressbar",
    "vs/base/browser/ui/progressbar/progressbar",
    "vs/editor/common/viewLayout/viewLinesViewportData",
    "vs/editor/common/viewLayout/whitespaceComputer",
    "vs/editor/common/viewLayout/linesLayout",
    "vs/css!vs/base/browser/ui/sash/sash", "vs/editor/common/model/mirrorModel",
    "vs/editor/common/services/editorSimpleWorker",
    "vs/editor/standalone/browser/standaloneLanguages",
    "vs/css!vs/base/browser/ui/scrollbar/media/scrollbars",
    "vs/base/common/comparers",
    "vs/editor/browser/viewParts/contentWidgets/contentWidgets",
    "vs/editor/browser/viewParts/decorations/decorations",
    "vs/base/browser/ui/list/listView",
    "vs/editor/browser/viewParts/linesDecorations/linesDecorations",
    "vs/base/browser/ui/list/listWidget",
    "vs/editor/browser/viewParts/marginDecorations/marginDecorations",
    "vs/editor/browser/viewParts/overlayWidgets/overlayWidgets",
    "vs/editor/browser/viewParts/viewZones/viewZones",
    "vs/base/parts/tree/browser/treeView",
    "vs/editor/common/viewLayout/viewLayout",
    "vs/editor/common/viewModel/viewModelDecorations",
    "vs/editor/contrib/caretOperations/common/moveCaretCommand",
    "vs/editor/contrib/colorPicker/browser/colorPickerModel",
    "vs/editor/contrib/colorPicker/browser/elements/colorPickerBody",
    "vs/editor/contrib/colorPicker/browser/elements/colorPickerHeader",
    "vs/editor/contrib/colorPicker/browser/colorPickerWidget",
    "vs/editor/contrib/colorPicker/common/color",
    "vs/editor/contrib/colorPicker/common/colorFormatter",
    "vs/editor/contrib/colorPicker/common/colorPicker",
    "vs/css!vs/base/browser/ui/selectBox/selectBox",
    "vs/editor/contrib/comment/common/lineCommentCommand",
    "vs/editor/contrib/dnd/common/dragAndDropCommand",
    "vs/editor/contrib/find/common/find",
    "vs/editor/contrib/find/common/findState",
    "vs/editor/contrib/find/common/replaceAllCommand",
    "vs/editor/contrib/find/common/replacePattern",
    "vs/editor/contrib/folding/common/folding",
    "vs/editor/contrib/folding/common/indentFoldStrategy",
    "vs/editor/contrib/format/common/formatCommand",
    "vs/base/browser/ui/selectBox/selectBox",
    "vs/css!vs/base/parts/quickopen/browser/quickopen",
    "vs/css!vs/base/parts/tree/browser/tree",
    "vs/editor/contrib/inPlaceReplace/common/inPlaceReplaceCommand",
    "vs/editor/contrib/indentation/common/indentUtils",
    "vs/editor/contrib/linesOperations/common/copyLinesCommand",
    "vs/editor/contrib/linesOperations/common/deleteLinesCommand",
    "vs/editor/contrib/linesOperations/common/sortLinesCommand",
    "vs/editor/contrib/quickFix/browser/lightBulbWidget",
    "vs/editor/contrib/quickFix/browser/quickFixWidget",
    "vs/editor/contrib/smartSelect/common/tokenTree",
    "vs/css!vs/editor/browser/controller/textAreaHandler",
    "vs/editor/contrib/snippet/browser/snippetVariables",
    "vs/editor/contrib/suggest/browser/completionModel",
    "vs/editor/standalone/browser/colorizer",
    "vs/css!vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight",
    "vs/editor/standalone/common/monarch/monarchCompile",
    "vs/editor/standalone/common/monarch/monarchLexer",
    "vs/css!vs/editor/browser/viewParts/currentLineMarginHighlight/currentLineMarginHighlight",
    "vs/css!vs/editor/browser/viewParts/decorations/decorations",
    "vs/css!vs/editor/browser/viewParts/glyphMargin/glyphMargin",
    "vs/css!vs/editor/browser/viewParts/indentGuides/indentGuides",
    "vs/base/browser/ui/menu/menu", "vs/nls!vs/base/browser/ui/aria/aria",
    "vs/css!vs/editor/browser/viewParts/lineNumbers/lineNumbers",
    "vs/nls!vs/base/browser/ui/findinput/findInput",
    "vs/nls!vs/base/browser/ui/findinput/findInputCheckboxes",
    "vs/css!vs/editor/browser/viewParts/lines/viewLines",
    "vs/nls!vs/base/browser/ui/inputbox/inputBox",
    "vs/css!vs/editor/browser/viewParts/linesDecorations/linesDecorations",
    "vs/base/browser/ui/findinput/findInput",
    "vs/nls!vs/base/common/keybindingLabels",
    "vs/css!vs/editor/browser/viewParts/marginDecorations/marginDecorations",
    "vs/base/browser/ui/keybindingLabel/keybindingLabel",
    "vs/nls!vs/base/common/severity",
    "vs/css!vs/editor/browser/viewParts/minimap/minimap",
    "vs/nls!vs/base/parts/quickopen/browser/quickOpenModel",
    "vs/css!vs/editor/browser/viewParts/overlayWidgets/overlayWidgets",
    "vs/nls!vs/base/parts/quickopen/browser/quickOpenWidget",
    "vs/nls!vs/base/parts/tree/browser/treeDefaults",
    "vs/css!vs/editor/browser/viewParts/rulers/rulers",
    "vs/css!vs/editor/browser/viewParts/scrollDecoration/scrollDecoration",
    "vs/base/parts/quickopen/browser/quickOpenWidget",
    "vs/nls!vs/editor/browser/widget/diffEditorWidget",
    "vs/nls!vs/editor/browser/widget/diffReview",
    "vs/nls!vs/editor/common/config/commonEditorConfig",
    "vs/nls!vs/editor/common/config/editorOptions",
    "vs/css!vs/editor/browser/viewParts/selections/selections",
    "vs/css!vs/editor/browser/viewParts/viewCursors/viewCursors",
    "vs/css!vs/editor/browser/widget/media/diffEditor",
    "vs/css!vs/editor/browser/widget/media/diffReview",
    "vs/css!vs/editor/browser/widget/media/editor",
    "vs/editor/common/controller/cursorColumnSelection",
    "vs/css!vs/editor/browser/widget/media/tokens",
    "vs/css!vs/editor/contrib/bracketMatching/browser/bracketMatching",
    "vs/css!vs/editor/contrib/clipboard/browser/clipboard",
    "vs/css!vs/editor/contrib/codelens/browser/codelensWidget",
    "vs/css!vs/editor/contrib/colorPicker/browser/colorPicker",
    "vs/editor/common/controller/oneCursor",
    "vs/editor/common/controller/cursorCollection",
    "vs/editor/contrib/linesOperations/common/moveLinesCommand",
    "vs/nls!vs/editor/common/controller/cursor",
    "vs/editor/common/controller/cursor",
    "vs/nls!vs/editor/common/model/textModelWithTokens",
    "vs/editor/common/model/textModelWithTokens",
    "vs/editor/common/model/textModelWithMarkers",
    "vs/css!vs/editor/contrib/dnd/browser/dnd",
    "vs/editor/common/model/editableTextModel",
    "vs/css!vs/editor/contrib/find/browser/findWidget",
    "vs/css!vs/editor/contrib/folding/browser/folding",
    "vs/editor/common/viewModel/characterHardWrappingLineMapper",
    "vs/editor/common/viewModel/viewModelImpl",
    "vs/editor/contrib/find/common/findDecorations",
    "vs/base/common/diff/diffChange",
    "vs/editor/contrib/folding/common/foldingModel",
    "vs/editor/contrib/snippet/browser/snippetSession",
    "vs/css!vs/editor/contrib/goToDeclaration/browser/messageController",
    "vs/nls!vs/editor/common/modes/modesRegistry",
    "vs/nls!vs/editor/common/services/bulkEdit",
    "vs/editor/common/services/bulkEdit",
    "vs/nls!vs/editor/common/services/modelServiceImpl",
    "vs/nls!vs/editor/common/view/editorColorRegistry",
    "vs/nls!vs/editor/contrib/bracketMatching/common/bracketMatching",
    "vs/nls!vs/editor/contrib/caretOperations/common/caretOperations",
    "vs/nls!vs/editor/contrib/caretOperations/common/transpose",
    "vs/nls!vs/editor/contrib/clipboard/browser/clipboard",
    "vs/nls!vs/editor/contrib/comment/common/comment",
    "vs/nls!vs/editor/contrib/contextmenu/browser/contextmenu",
    "vs/nls!vs/editor/contrib/find/browser/findWidget",
    "vs/nls!vs/editor/contrib/find/common/findController",
    "vs/nls!vs/editor/contrib/folding/browser/folding",
    "vs/nls!vs/editor/contrib/format/browser/formatActions",
    "vs/nls!vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands",
    "vs/nls!vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse",
    "vs/nls!vs/editor/contrib/gotoError/browser/gotoError",
    "vs/nls!vs/editor/contrib/hover/browser/hover",
    "vs/nls!vs/editor/contrib/hover/browser/modesContentHover",
    "vs/nls!vs/editor/contrib/inPlaceReplace/common/inPlaceReplace",
    "vs/nls!vs/editor/contrib/linesOperations/common/linesOperations",
    "vs/nls!vs/editor/contrib/links/browser/links",
    "vs/nls!vs/editor/contrib/multicursor/common/multicursor",
    "vs/nls!vs/editor/contrib/parameterHints/browser/parameterHints",
    "vs/nls!vs/editor/contrib/parameterHints/browser/parameterHintsWidget",
    "vs/nls!vs/editor/contrib/quickFix/browser/quickFixCommands",
    "vs/nls!vs/editor/contrib/referenceSearch/browser/referenceSearch",
    "vs/nls!vs/editor/contrib/referenceSearch/browser/referencesController",
    "vs/nls!vs/editor/contrib/referenceSearch/browser/referencesModel",
    "vs/css!vs/editor/contrib/gotoError/browser/gotoError",
    "vs/nls!vs/editor/contrib/referenceSearch/browser/referencesWidget",
    "vs/nls!vs/editor/contrib/rename/browser/rename",
    "vs/nls!vs/editor/contrib/rename/browser/renameInputField",
    "vs/nls!vs/editor/contrib/smartSelect/common/smartSelect",
    "vs/nls!vs/editor/contrib/suggest/browser/suggestController",
    "vs/nls!vs/editor/contrib/suggest/browser/suggestWidget",
    "vs/nls!vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode",
    "vs/nls!vs/editor/contrib/wordHighlighter/common/wordHighlighter",
    "vs/nls!vs/editor/contrib/zoneWidget/browser/peekViewWidget",
    "vs/nls!vs/editor/standalone/browser/inspectTokens/inspectTokens",
    "vs/nls!vs/editor/standalone/browser/quickOpen/gotoLine",
    "vs/nls!vs/editor/standalone/browser/quickOpen/quickCommand",
    "vs/nls!vs/editor/standalone/browser/quickOpen/quickOutline",
    "vs/nls!vs/editor/standalone/browser/standaloneCodeEditor",
    "vs/nls!vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast",
    "vs/nls!vs/platform/configuration/common/configurationRegistry",
    "vs/nls!vs/platform/keybinding/common/abstractKeybindingService",
    "vs/nls!vs/platform/message/common/message",
    "vs/nls!vs/platform/theme/common/colorRegistry",
    "vs/platform/contextview/browser/contextMenuHandler",
    "vs/platform/contextview/browser/contextMenuService",
    "vs/css!vs/editor/contrib/hover/browser/hover",
    "vs/css!vs/editor/contrib/links/browser/links",
    "vs/css!vs/editor/contrib/parameterHints/browser/parameterHints",
    "vs/css!vs/editor/contrib/quickFix/browser/lightBulbWidget",
    "vs/css!vs/editor/contrib/referenceSearch/browser/referencesWidget",
    "vs/css!vs/editor/contrib/rename/browser/renameInputField",
    "vs/css!vs/editor/contrib/snippet/browser/snippetSession",
    "vs/css!vs/editor/contrib/suggest/browser/media/suggest",
    "vs/css!vs/editor/contrib/zoneWidget/browser/peekViewWidget",
    "vs/editor/common/services/webWorker",
    "vs/editor/contrib/smartSelect/common/tokenSelectionSupport",
    "vs/css!vs/editor/contrib/zoneWidget/browser/zoneWidget",
    "vs/css!vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp",
    "vs/editor/contrib/links/common/links",
    "vs/css!vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard",
    "vs/css!vs/editor/standalone/browser/inspectTokens/inspectTokens",
    "vs/css!vs/editor/standalone/browser/quickOpen/gotoLine",
    "vs/css!vs/editor/standalone/browser/quickOpen/quickOutline",
    "vs/editor/common/modes/editorModeContext",
    "vs/platform/actions/common/menu",
    "vs/css!vs/editor/standalone/browser/standalone-tokens",
    "vs/css!vs/platform/contextview/browser/contextMenuHandler",
    "vs/editor/browser/config/charWidthReader",
    "vs/platform/files/common/files",
    "vs/editor/browser/config/elementSizeObserver",
    "vs/platform/instantiation/common/instantiationService",
    "vs/platform/keybinding/common/abstractKeybindingService",
    "vs/base/browser/ui/list/rangeMap", "vs/base/browser/ui/list/rowCache",
    "vs/platform/contextkey/browser/contextKeyService",
    "vs/platform/keybinding/common/resolvedKeybindingItem",
    "vs/platform/keybinding/common/usLayoutResolvedKeybinding",
    "vs/platform/lifecycle/common/lifecycle",
    "vs/platform/markers/common/markerService",
    "vs/editor/standalone/browser/standaloneEditor", "vs/base/common/scorer",
    "vs/base/common/callbackList",
    "vs/editor/contrib/hover/browser/modesGlyphHover",
    "vs/base/common/stopwatch", "vs/nls!vs/base/browser/ui/actionbar/actionbar",
    "vs/base/common/graph",
    "vs/base/browser/ui/scrollbar/scrollbarVisibilityController",
    "vs/editor/common/services/modelServiceImpl",
    "vs/editor/contrib/dnd/browser/dnd",
    "vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard",
    "vs/platform/jsonschemas/common/jsonContributionRegistry",
    "vs/base/common/history",
    "vs/editor/common/commands/trimTrailingWhitespaceCommand",
    "vs/editor/common/services/languagesRegistry",
    "vs/editor/common/services/modeServiceImpl",
    "vs/platform/configuration/common/model",
    "vs/base/browser/ui/scrollbar/horizontalScrollbar",
    "vs/base/browser/ui/scrollbar/verticalScrollbar",
    "vs/editor/common/commands/surroundSelectionCommand", "vs/base/common/json",
    "vs/editor/browser/view/viewOverlays",
    "vs/editor/browser/viewParts/viewCursors/viewCursor",
    "vs/base/parts/quickopen/browser/quickOpenViewer",
    "vs/base/common/decorators", "vs/editor/common/commonCodeEditor",
    "vs/base/parts/tree/browser/tree", "vs/editor/browser/view/viewController",
    "vs/editor/contrib/caretOperations/common/caretOperations",
    "vs/editor/contrib/caretOperations/common/transpose",
    "vs/editor/contrib/clipboard/browser/clipboard",
    "vs/editor/contrib/codelens/browser/codelens",
    "vs/editor/contrib/comment/common/comment",
    "vs/editor/contrib/contextmenu/browser/contextmenu",
    "vs/editor/contrib/cursorUndo/browser/cursorUndo",
    "vs/editor/common/diff/diffComputer",
    "vs/editor/contrib/folding/browser/folding",
    "vs/editor/contrib/format/common/format",
    "vs/editor/contrib/format/browser/formatActions",
    "vs/base/parts/tree/browser/treeDnd",
    "vs/editor/contrib/hover/common/hover",
    "vs/editor/contrib/hover/browser/modesContentHover",
    "vs/editor/contrib/linesOperations/common/linesOperations",
    "vs/editor/contrib/multicursor/common/multicursor",
    "vs/base/parts/tree/browser/treeModel",
    "vs/editor/contrib/quickFix/browser/quickFix",
    "vs/editor/contrib/quickFix/browser/quickFixModel",
    "vs/editor/contrib/quickFix/browser/quickFixCommands",
    "vs/editor/contrib/quickOpen/common/quickOpen",
    "vs/editor/contrib/smartSelect/common/smartSelect",
    "vs/base/parts/tree/browser/treeViewModel",
    "vs/base/worker/defaultWorkerFactory",
    "vs/editor/contrib/suggest/browser/suggestModel",
    "vs/editor/common/model/editStack",
    "vs/editor/contrib/wordOperations/common/wordOperations",
    "vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast",
    "vs/platform/contextview/browser/contextViewService",
    "vs/platform/telemetry/common/telemetryUtils",
    "vs/platform/opener/browser/openerService",
    "vs/editor/common/model/indentRanges",
    "vs/editor/common/model/indentationGuesser",
    "vs/editor/standalone/browser/quickOpen/quickOpenEditorWidget",
    "vs/css!vs/base/browser/builder",
    "vs/editor/browser/services/codeEditorServiceImpl",
    "vs/editor/browser/viewParts/editorScrollbar/editorScrollbar",
    "vs/base/common/marshalling", "vs/base/common/hash",
    "vs/editor/browser/controller/mouseHandler",
    "vs/editor/browser/controller/pointerHandler",
    "vs/editor/browser/view/viewOutgoingEvents",
    "vs/editor/browser/viewParts/lines/viewLines",
    "vs/editor/browser/viewParts/minimap/minimap",
    "vs/editor/browser/viewParts/scrollDecoration/scrollDecoration",
    "vs/editor/browser/viewParts/selections/selections",
    "vs/css!vs/base/browser/ui/actionbar/actionbar",
    "vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight",
    "vs/editor/browser/viewParts/currentLineMarginHighlight/currentLineMarginHighlight",
    "vs/editor/browser/viewParts/indentGuides/indentGuides",
    "vs/css!vs/base/browser/ui/aria/aria",
    "vs/editor/browser/controller/textAreaHandler",
    "vs/editor/browser/viewParts/rulers/rulers",
    "vs/editor/browser/viewParts/viewCursors/viewCursors",
    "vs/editor/browser/widget/diffReview",
    "vs/css!vs/base/browser/ui/checkbox/checkbox",
    "vs/base/browser/ui/checkbox/checkbox",
    "vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler",
    "vs/editor/browser/viewParts/overviewRuler/overviewRuler",
    "vs/editor/browser/view/viewImpl",
    "vs/css!vs/base/browser/ui/contextview/contextview",
    "vs/editor/common/modes/abstractMode",
    "vs/base/browser/ui/octiconLabel/octiconLabel",
    "vs/editor/common/modes/languageSelector",
    "vs/editor/contrib/bracketMatching/common/bracketMatching",
    "vs/editor/contrib/codelens/browser/codelensWidget",
    "vs/editor/contrib/codelens/browser/codelensController",
    "vs/editor/contrib/colorPicker/browser/colorPicker",
    "vs/editor/contrib/find/browser/findOptionsWidget",
    "vs/editor/contrib/find/browser/findWidget",
    "vs/editor/contrib/find/browser/find",
    "vs/editor/contrib/goToDeclaration/browser/messageController",
    "vs/editor/contrib/gotoError/browser/gotoError",
    "vs/editor/contrib/hover/browser/hover",
    "vs/editor/contrib/inPlaceReplace/common/inPlaceReplace",
    "vs/editor/contrib/links/browser/links",
    "vs/editor/contrib/parameterHints/browser/parameterHintsWidget",
    "vs/editor/contrib/parameterHints/browser/parameterHints",
    "vs/editor/contrib/rename/browser/renameInputField",
    "vs/editor/contrib/rename/browser/rename",
    "vs/editor/contrib/suggest/browser/suggestWidget",
    "vs/editor/contrib/suggest/browser/suggestController",
    "vs/editor/contrib/wordHighlighter/common/wordHighlighter",
    "vs/editor/common/modes/languageFeatureRegistry",
    "vs/editor/standalone/browser/accessibilityHelp/accessibilityHelp",
    "vs/editor/standalone/browser/inspectTokens/inspectTokens",
    "vs/editor/common/modes/linkComputer",
    "vs/editor/standalone/browser/quickOpen/gotoLine",
    "vs/editor/standalone/browser/quickOpen/quickCommand",
    "vs/editor/standalone/browser/quickOpen/quickOutline",
    "vs/editor/standalone/browser/standaloneCodeEditor",
    "vs/editor/standalone/common/themes",
    "vs/editor/standalone/browser/standaloneThemeServiceImpl",
    "vs/editor/common/modes/supports/characterPair",
    "vs/editor/contrib/referenceSearch/browser/referencesWidget",
    "vs/editor/common/modes/supports/indentRules",
    "vs/editor/common/modes/supports/inplaceReplaceSupport",
    "vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse",
    "vs/editor/contrib/referenceSearch/browser/referenceSearch",
    "vs/editor/editor.all", "vs/editor/common/modes/supports/onEnter",
    "vs/base/common/winjs.base.raw", "vs/base/common/marked/raw.marked",
    "vs/editor/edcore.main"], h = function (e) {
    for (var t = [], n = 0, i = e.length; n < i; n++) {
      t[n] = d[e[n]];
    }
    return t
  };
  !function (e) {
    function t() {
      define("vs/css", new i)
    }

    var n = function () {
      function e() {
        this._pendingLoads = 0
      }

      return e.prototype.attachListeners = function (e, t, n, i) {
        var o = function () {
          t.removeEventListener("load", r), t.removeEventListener("error", s)
        }, r = function (e) {
          o(), n()
        }, s = function (e) {
          o(), i(e)
        };
        t.addEventListener("load", r), t.addEventListener("error", s)
      }, e.prototype._onLoad = function (e, t) {
        this._pendingLoads--, t()
      }, e.prototype._onLoadError = function (e, t, n) {
        this._pendingLoads--, t(n)
      }, e.prototype._insertLinkNode = function (e) {
        this._pendingLoads++;
        var t = document.head || document.getElementsByTagName("head")[0],
            n = t.getElementsByTagName("link")
                || document.head.getElementsByTagName("script");
        n.length > 0 ? t.insertBefore(e, n[n.length - 1]) : t.appendChild(e)
      }, e.prototype.createLinkTag = function (e, t, n, i) {
        var o = this, r = document.createElement("link");
        r.setAttribute("rel", "stylesheet"), r.setAttribute("type",
            "text/css"), r.setAttribute("data-name", e);
        return this.attachListeners(e, r, function () {
          return o._onLoad(e, n)
        }, function (t) {
          return o._onLoadError(e, i, t)
        }), r.setAttribute("href", t), r
      }, e.prototype._linkTagExists = function (e, t) {
        var n, i, o, r, s = document.getElementsByTagName("link");
        for (n = 0, i = s.length; n < i; n++) {
          if (o = s[n].getAttribute(
              "data-name"), r = s[n].getAttribute("href"), o === e || r
          === t) {
            return !0;
          }
        }
        return !1
      }, e.prototype.load = function (e, t, n, i) {
        if (this._linkTagExists(e, t)) {
          n();
        } else {
          var o = this.createLinkTag(e, t, n, i);
          this._insertLinkNode(o)
        }
      }, e
    }(), i = function () {
      function e() {
        this._cssLoader = new n
      }

      return e.prototype.load = function (e, t, n) {
        var i = t.toUrl(e + ".css");
        this._cssLoader.load(e, i, function (e) {
          n({})
        }, function (e) {
          "function" == typeof n.error && n.error(
              "Could not find " + i + " or it was empty")
        })
      }, e
    }();
    e.CSSPlugin = i, e.init = t, "undefined" == typeof doNotInitLoader && t()
  }(c || (c = {}));
  var p;
  !function (e) {
    function t(e, t, n) {
      var i;
      return i = 0 === t.length ? e : e.replace(/\{(\d+)\}/g, function (e, n) {
        var i = n[0];
        return void 0 !== t[i] ? t[i] : e
      }), n.isPseudo && (i = "［" + i.replace(/[aouei]/g, "$&$&") + "］"), i
    }

    function n(e, t) {
      var n = e[t];
      return n || ((n = e["*"]) || null)
    }

    function i(e, n, i) {
      for (var o = [], r = 3; r < arguments.length; r++) {
        o[r
        - 3] = arguments[r];
      }
      return t(i, o, e)
    }

    function o(e, n) {
      return function (i, o) {
        var r = Array.prototype.slice.call(arguments, 2);
        return t(e[i], r, n)
      }
    }

    function r() {
      define("vs/nls", new a(s.detect()))
    }

    var s = function () {
      function e(e) {
        this.isPseudo = e
      }

      return e.detect = function () {
        return new e("undefined" != typeof document && document.location
            && document.location.hash.indexOf("pseudo=true") >= 0)
      }, e
    }(), a = function () {
      function e(e) {
        var t = this;
        this._env = e, this.localize = function (e, n) {
          for (var o = [], r = 2; r < arguments.length; r++) {
            o[r
            - 2] = arguments[r];
          }
          return i.apply(void 0, [t._env, e, n].concat(o))
        }
      }

      return e.prototype.setPseudoTranslation = function (e) {
        this._env = new s(e)
      }, e.prototype.create = function (e, t) {
        return {localize: o(t[e], this._env)}
      }, e.prototype.load = function (t, i, r, s) {
        var a = this;
        if (s = s || {}, t && 0 !== t.length) {
          var u = s["vs/nls"] || {},
              l = u.availableLanguages ? n(u.availableLanguages, t) : null,
              c = ".nls";
          null !== l && l !== e.DEFAULT_TAG && (c = c + "." + l), i([t + c],
              function (e) {
                Array.isArray(e) ? e.localize = o(e, a._env) : e.localize = o(
                    e[t], a._env), r(e)
              })
        } else {
          r({localize: this.localize})
        }
      }, e
    }();
    a.DEFAULT_TAG = "i-default", e.NLSPlugin = a, e.init = r, "undefined"
    == typeof doNotInitLoader && r()
  }(p || (p = {})), define(d[148], h([1, 0]), function (e, t) {
    "use strict";

    function n(e) {
      if (!e.parent || e.parent === e) {
        return null;
      }
      try {
        var t = e.location, n = e.parent.location;
        if (t.protocol !== n.protocol || t.hostname !== n.hostname || t.port
            !== n.port) {
          return o = !0, null
        }
      } catch (e) {
        return o = !0, null
      }
      return e.parent
    }

    function i(e, t) {
      for (var n, i = e.document.getElementsByTagName("iframe"), o = 0,
          r = i.length; o < r; o++) {
        if ((n = i[o]).contentWindow
            === t) {
          return n;
        }
      }
      return null
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var o = !1, r = null, s = function () {
      function e() {
      }

      return e.getSameOriginWindowChain = function () {
        if (!r) {
          r = [];
          var e, t = window;
          do {
            (e = n(t)) ? r.push({window: t, iframeElement: i(e, t)}) : r.push(
                {window: t, iframeElement: null}), t = e
          } while (t)
        }
        return r.slice(0)
      }, e.hasDifferentOriginAncestor = function () {
        return r || this.getSameOriginWindowChain(), o
      }, e.getPositionOfChildWindowRelativeToAncestorWindow = function (e, t) {
        if (!t || e === t) {
          return {top: 0, left: 0};
        }
        for (var n = 0, i = 0, o = this.getSameOriginWindowChain(), r = 0;
            r < o.length; r++) {
          var s = o[r];
          if (s.window === t) {
            break;
          }
          if (!s.iframeElement) {
            break;
          }
          var a = s.iframeElement.getBoundingClientRect();
          n += a.top, i += a.left
        }
        return {top: n, left: i}
      }, e
    }();
    t.IframeUtils = s
  }), define(d[415], h([1, 0]), function (e, t) {
    "use strict";

    function n(e, t) {
      if (e.start >= t.end || t.start >= e.end) {
        return null;
      }
      var n = Math.max(e.start, t.start), i = Math.min(e.end, t.end);
      return i - n <= 0 ? null : {start: n, end: i}
    }

    function i(e) {
      return e.end - e.start <= 0
    }

    function o(e, t) {
      for (var i = [], o = 0, r = t; o < r.length; o++) {
        var s = r[o];
        if (!(e.start >= s.range.end)) {
          if (e.end < s.range.start) {
            break;
          }
          var a = n(e, s.range);
          a && i.push({range: a, size: s.size})
        }
      }
      return i
    }

    function r(e, t) {
      return {start: e.start + t, end: e.end + t}
    }

    function s(e) {
      for (var t = [], n = null, i = 0, o = e; i < o.length; i++) {
        var r = o[i], s = r.range.start, a = r.range.end, u = r.size;
        n && u === n.size ? n.range.end = a : (n = {
          range: {start: s, end: a},
          size: u
        }, t.push(n))
      }
      return t
    }

    function a() {
      for (var e = [], t = 0; t < arguments.length; t++) {
        e[t] = arguments[t];
      }
      return s(e.reduce(function (e, t) {
        return e.concat(t)
      }, []))
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.intersect = n, t.isEmpty = i, t.relativeComplement = function (e,
        t) {
      var n = [], o = {start: e.start, end: Math.min(t.start, e.end)},
          r = {start: Math.max(t.end, e.start), end: e.end};
      return i(o) || n.push(o), i(r) || n.push(r), n
    }, t.each = function (e, t) {
      for (var n = e.start; n < e.end; n++) {
        t(n)
      }
    }, t.groupIntersect = o, t.consolidate = s;
    var u = function () {
      function e() {
        this.groups = [], this._size = 0
      }

      return e.prototype.splice = function (e, t) {
        for (var n = [], i = 2; i < arguments.length; i++) {
          n[i
          - 2] = arguments[i];
        }
        var s = n.length - t, u = o({start: 0, end: e}, this.groups),
            l = o({start: e + t, end: Number.POSITIVE_INFINITY},
                this.groups).map(function (e) {
              return {range: r(e.range, s), size: e.size}
            }), c = n.map(function (t, n) {
              return {range: {start: e + n, end: e + n + 1}, size: t.size}
            });
        this.groups = a(u, c, l), this._size = this.groups.reduce(
            function (e, t) {
              return e + t.size * (t.range.end - t.range.start)
            }, 0)
      }, Object.defineProperty(e.prototype, "count", {
        get: function () {
          var e = this.groups.length;
          return e ? this.groups[e - 1].range.end : 0
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "size", {
        get: function () {
          return this._size
        }, enumerable: !0, configurable: !0
      }), e.prototype.indexAt = function (e) {
        if (e < 0) {
          return -1;
        }
        for (var t = 0, n = 0, i = 0, o = this.groups; i < o.length; i++) {
          var r = o[i], s = r.range.end - r.range.start, a = n + s * r.size;
          if (e < a) {
            return t + Math.floor((e - n) / r.size);
          }
          t += s, n = a
        }
        return t
      }, e.prototype.indexAfter = function (e) {
        return Math.min(this.indexAt(e) + 1, this.count)
      }, e.prototype.positionAt = function (e) {
        if (e < 0) {
          return -1;
        }
        for (var t = 0, n = 0, i = 0, o = this.groups; i < o.length; i++) {
          var r = o[i], s = r.range.end - r.range.start, a = n + s;
          if (e < a) {
            return t + (e - n) * r.size;
          }
          t += s * r.size, n = a
        }
        return -1
      }, e.prototype.dispose = function () {
        this.groups = null
      }, e
    }();
    t.RangeMap = u
  }), define(d[150], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e, t, n) {
        this._scrollbarSize = Math.round(
            t), this._oppositeScrollbarSize = Math.round(
            n), this._arrowSize = Math.round(
            e), this._visibleSize = 0, this._scrollSize = 0, this._scrollPosition = 0, this._computedAvailableSize = 0, this._computedIsNeeded = !1, this._computedSliderSize = 0, this._computedSliderRatio = 0, this._computedSliderPosition = 0, this._refreshComputedValues()
      }

      return e.prototype.clone = function () {
        var t = new e(this._arrowSize, this._scrollbarSize,
            this._oppositeScrollbarSize);
        return t.setVisibleSize(this._visibleSize), t.setScrollSize(
            this._scrollSize), t.setScrollPosition(this._scrollPosition), t
      }, e.prototype.setVisibleSize = function (e) {
        var t = Math.round(e);
        return this._visibleSize !== t
            && (this._visibleSize = t, this._refreshComputedValues(), !0)
      }, e.prototype.setScrollSize = function (e) {
        var t = Math.round(e);
        return this._scrollSize !== t
            && (this._scrollSize = t, this._refreshComputedValues(), !0)
      }, e.prototype.setScrollPosition = function (e) {
        var t = Math.round(e);
        return this._scrollPosition !== t
            && (this._scrollPosition = t, this._refreshComputedValues(), !0)
      }, e._computeValues = function (e, t, n, i, o) {
        var r = Math.max(0, n - e), s = Math.max(0, r - 2 * t),
            a = i > 0 && i > n;
        if (!a) {
          return {
            computedAvailableSize: Math.round(r),
            computedIsNeeded: a,
            computedSliderSize: Math.round(s),
            computedSliderRatio: 0,
            computedSliderPosition: 0
          };
        }
        var u = Math.round(Math.max(20, Math.floor(n * s / i))),
            l = (s - u) / (i - n), c = o * l;
        return {
          computedAvailableSize: Math.round(r),
          computedIsNeeded: a,
          computedSliderSize: Math.round(u),
          computedSliderRatio: l,
          computedSliderPosition: Math.round(c)
        }
      }, e.prototype._refreshComputedValues = function () {
        var t = e._computeValues(this._oppositeScrollbarSize, this._arrowSize,
            this._visibleSize, this._scrollSize, this._scrollPosition);
        this._computedAvailableSize = t.computedAvailableSize, this._computedIsNeeded = t.computedIsNeeded, this._computedSliderSize = t.computedSliderSize, this._computedSliderRatio = t.computedSliderRatio, this._computedSliderPosition = t.computedSliderPosition
      }, e.prototype.getArrowSize = function () {
        return this._arrowSize
      }, e.prototype.getScrollPosition = function () {
        return this._scrollPosition
      }, e.prototype.getRectangleLargeSize = function () {
        return this._computedAvailableSize
      }, e.prototype.getRectangleSmallSize = function () {
        return this._scrollbarSize
      }, e.prototype.isNeeded = function () {
        return this._computedIsNeeded
      }, e.prototype.getSliderSize = function () {
        return this._computedSliderSize
      }, e.prototype.getSliderPosition = function () {
        return this._computedSliderPosition
      }, e.prototype.getSliderCenter = function () {
        return this._computedSliderPosition + this._computedSliderSize / 2
      }, e.prototype.getDesiredScrollPositionFromOffset = function (e) {
        if (!this._computedIsNeeded) {
          return 0;
        }
        var t = e - this._arrowSize - this._computedSliderSize / 2;
        return Math.round(t / this._computedSliderRatio)
      }, e.prototype.getDesiredScrollPositionFromDelta = function (e) {
        if (!this._computedIsNeeded) {
          return 0;
        }
        var t = this._computedSliderPosition + e;
        return Math.round(t / this._computedSliderRatio)
      }, e
    }();
    t.ScrollbarState = n
  }), define(d[33], h([1, 0]), function (e, t) {
    "use strict";

    function n(e, t) {
      var n = 0, i = e.length;
      if (0 === i) {
        return 0;
      }
      for (; n < i;) {
        var o = Math.floor((n + i) / 2);
        t(e[o]) ? i = o : n = o + 1
      }
      return n
    }

    function i(e, t) {
      if (!(e.length <= 1)) {
        var n = e.length / 2 | 0, o = e.slice(0, n), r = e.slice(n);
        i(o, t), i(r, t);
        for (var s = 0, a = 0, u = 0; s < o.length && a < r.length;) {
          var l = t(o[s], r[a]);
          e[u++] = l <= 0 ? o[s++] : r[a++]
        }
        for (; s < o.length;) {
          e[u++] = o[s++];
        }
        for (; a < r.length;) {
          e[u++] = r[a++]
        }
      }
    }

    function o(e, t) {
      for (var n = 0; n < e.length; n++) {
        if (t(e[n])) {
          return n;
        }
      }
      return -1
    }

    Object.defineProperty(t, "__esModule", {value: !0}), t.tail = function (e,
        t) {
      return void 0 === t && (t = 0), e[e.length - (1 + t)]
    }, t.equals = function (e, t, n) {
      if (void 0 === n && (n = function (e, t) {
        return e === t
      }), e.length !== t.length) {
        return !1;
      }
      for (var i = 0, o = e.length; i < o; i++) {
        if (!n(e[i], t[i])) {
          return !1;
        }
      }
      return !0
    }, t.binarySearch = function (e, t, n) {
      for (var i = 0, o = e.length - 1; i <= o;) {
        var r = (i + o) / 2 | 0, s = n(e[r], t);
        if (s < 0) {
          i = r + 1;
        } else {
          if (!(s > 0)) {
            return r;
          }
          o = r - 1
        }
      }
      return -(i + 1)
    }, t.findFirst = n, t.mergeSort = function (e, t) {
      return i(e, t), e
    }, t.groupBy = function (e, t) {
      for (var n, i = [], o = 0, r = e.slice(0).sort(t); o < r.length; o++) {
        var s = r[o];
        n && 0 === t(n[0], s) ? n.push(s) : (n = [s], i.push(n))
      }
      return i
    }, t.delta = function (e, t, n) {
      for (var i = [], o = [], r = 0, s = 0; ;) {
        if (r === e.length) {
          o.push.apply(o, t.slice(s));
          break
        }
        if (s === t.length) {
          i.push.apply(i, e.slice(r));
          break
        }
        var a = e[r], u = t[s], l = n(a, u);
        0 === l ? (r += 1, s += 1) : l < 0 ? (i.push(a), r += 1) : l > 0
            && (o.push(u), s += 1)
      }
      return {removed: i, added: o}
    }, t.top = function (e, t, i) {
      if (0 === i) {
        return [];
      }
      for (var o = e.slice(0, i).sort(t), r = i, s = e.length; r < s;
          r++) {
        !function (r, s) {
          var a = e[r];
          if (t(a, o[i - 1]) < 0) {
            o.pop();
            var u = n(o, function (e) {
              return t(a, e) < 0
            });
            o.splice(u, 0, a)
          }
        }(r);
      }
      return o
    }, t.coalesce = function (e) {
      return e ? e.filter(function (e) {
        return !!e
      }) : e
    }, t.move = function (e, t, n) {
      e.splice(n, 0, e.splice(t, 1)[0])
    }, t.isFalsyOrEmpty = function (e) {
      return !Array.isArray(e) || 0 === e.length
    }, t.distinct = function (e, t) {
      if (!t) {
        return e.filter(function (t, n) {
          return e.indexOf(t) === n
        });
      }
      var n = Object.create(null);
      return e.filter(function (e) {
        var i = t(e);
        return !n[i] && (n[i] = !0, !0)
      })
    }, t.uniqueFilter = function (e) {
      var t = Object.create(null);
      return function (n) {
        var i = e(n);
        return !t[i] && (t[i] = !0, !0)
      }
    }, t.firstIndex = o, t.first = function (e, t, n) {
      void 0 === n && (n = null);
      var i = o(e, t);
      return i < 0 ? n : e[i]
    }, t.commonPrefixLength = function (e, t, n) {
      void 0 === n && (n = function (e, t) {
        return e === t
      });
      for (var i = 0, o = 0, r = Math.min(e.length, t.length);
          o < r && n(e[o], t[o]); o++) {
        i++;
      }
      return i
    }, t.flatten = function (e) {
      return e.reduce(function (e, t) {
        return e.concat(t)
      }, [])
    }, t.range = function (e, t) {
      void 0 === t && (t = 0);
      for (var n = [], i = t; i < e; i++) {
        n.push(i);
      }
      return n
    }, t.fill = function (e, t, n) {
      void 0 === n && (n = []);
      for (var i = 0; i < e; i++) {
        n[i] = t();
      }
      return n
    }, t.index = function (e, t, n) {
      return void 0 === n && (n = function (e) {
        return e
      }), e.reduce(function (e, i) {
        var o = t(i);
        return e[o] = n(i, e[o]), e
      }, Object.create(null))
    }, t.insert = function (e, t) {
      return e.push(t), function () {
        var n = e.indexOf(t);
        n > -1 && e.splice(n, 1)
      }
    }, t.arrayInsert = function (e, t, n) {
      var i = e.slice(0, t), o = e.slice(t);
      return i.concat(n, o)
    }
  }), define(d[72], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0}), t.ok = function (e,
        t) {
      if (!e || null === e) {
        throw new Error(
            t ? "Assertion failed (" + t + ")" : "Assertion Failed")
      }
    }
  }), define(d[157], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = Object.prototype.hasOwnProperty;
    t.values = function (e) {
      var t = [];
      for (var i in e) {
        n.call(e, i) && t.push(e[i]);
      }
      return t
    }, t.size = function (e) {
      var t = 0;
      for (var i in e) {
        n.call(e, i) && (t += 1);
      }
      return t
    }, t.forEach = function (e, t) {
      for (var i in e) {
        var o = function (i) {
          if (n.call(e, i) && !1 === t({key: i, value: e[i]}, function () {
            delete e[i]
          })) {
            return {value: void 0}
          }
        }(i);
        if ("object" == typeof o) {
          return o.value
        }
      }
    }, t.remove = function (e, t) {
      return !!n.call(e, t) && (delete e[t], !0)
    }, t.groupBy = function (e, t) {
      for (var n = Object.create(null), i = 0, o = e; i < o.length; i++) {
        var r = o[i], s = t(r), a = n[s];
        a || (a = n[s] = []), a.push(r)
      }
      return n
    }
  }), define(d[32], h([1, 0]), function (e, t) {
    "use strict";

    function n(e) {
      if (!e) {
        return null;
      }
      var t = e.length;
      if (0 === t) {
        return null;
      }
      if (35 !== e.charCodeAt(0)) {
        return null;
      }
      if (7 === t) {
        var n = 16 * i(e.charCodeAt(1)) + i(e.charCodeAt(2)),
            o = 16 * i(e.charCodeAt(3)) + i(e.charCodeAt(4)),
            r = 16 * i(e.charCodeAt(5)) + i(e.charCodeAt(6));
        return new a(n, o, r, 255)
      }
      if (9 === t) {
        var n = 16 * i(e.charCodeAt(1)) + i(e.charCodeAt(2)),
            o = 16 * i(e.charCodeAt(3)) + i(e.charCodeAt(4)),
            r = 16 * i(e.charCodeAt(5)) + i(e.charCodeAt(6)),
            s = 16 * i(e.charCodeAt(7)) + i(e.charCodeAt(8));
        return new a(n, o, r, s)
      }
      if (4 === t) {
        var n = i(e.charCodeAt(1)), o = i(e.charCodeAt(2)),
            r = i(e.charCodeAt(3));
        return new a(16 * n + n, 16 * o + o, 16 * r + r)
      }
      if (5 === t) {
        var n = i(e.charCodeAt(1)), o = i(e.charCodeAt(2)),
            r = i(e.charCodeAt(3)), s = i(e.charCodeAt(4));
        return new a(16 * n + n, 16 * o + o, 16 * r + r, 16 * s + s)
      }
      return null
    }

    function i(e) {
      switch (e) {
        case 48:
          return 0;
        case 49:
          return 1;
        case 50:
          return 2;
        case 51:
          return 3;
        case 52:
          return 4;
        case 53:
          return 5;
        case 54:
          return 6;
        case 55:
          return 7;
        case 56:
          return 8;
        case 57:
          return 9;
        case 97:
        case 65:
          return 10;
        case 98:
        case 66:
          return 11;
        case 99:
        case 67:
          return 12;
        case 100:
        case 68:
          return 13;
        case 101:
        case 69:
          return 14;
        case 102:
        case 70:
          return 15
      }
      return 0
    }

    function o(e) {
      var t = e.r / 255, n = e.g / 255, i = e.b / 255, o = e.a / 255,
          r = Math.max(t, n, i), s = Math.min(t, n, i), a = 0, l = 0,
          c = Math.round((s + r) / 2 * 1e3) / 1e3, d = r - s;
      if (d > 0) {
        switch (l = Math.min(
            Math.round(1e3 * (c <= .5 ? d / (2 * c) : d / (2 - 2 * c))) / 1e3,
            1), r) {
          case t:
            a = (n - i) / d + (n < i ? 6 : 0);
            break;
          case n:
            a = (i - t) / d + 2;
            break;
          case i:
            a = (t - n) / d + 4
        }
        a *= 60, a = Math.round(a)
      }
      return new u(a, l, c, o)
    }

    function r(e) {
      var t, n, i, o = e.h / 360, r = Math.min(e.s, 1), u = Math.min(e.l, 1),
          l = e.a;
      if (0 === r) {
        t = n = i = u;
      } else {
        var c = u < .5 ? u * (1 + r) : u + r - u * r, d = 2 * u - c;
        t = s(d, c, o + 1 / 3), n = s(d, c, o), i = s(d, c, o - 1 / 3)
      }
      return new a(Math.round(255 * t), Math.round(255 * n),
          Math.round(255 * i), Math.round(255 * l))
    }

    function s(e, t, n) {
      return n < 0 && (n += 1), n > 1 && (n -= 1), n < 1 / 6 ? e + 6 * (t - e)
          * n : n < .5 ? t : n < 2 / 3 ? e + (t - e) * (2 / 3 - n) * 6 : e
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var a = function () {
      function e(t, n, i, o) {
        void 0 === o && (o = 255), this.r = e._clampInt_0_255(
            t), this.g = e._clampInt_0_255(n), this.b = e._clampInt_0_255(
            i), this.a = e._clampInt_0_255(o)
      }

      return e.equals = function (e, t) {
        return e.r === t.r && e.g === t.g && e.b === t.b && e.a === t.a
      }, e._clampInt_0_255 = function (e) {
        return e < 0 ? 0 : e > 255 ? 255 : 0 | e
      }, e.prototype.toString = function () {
        return 255 === this.a ? "rgb(" + this.r + ", " + this.g + ", " + this.b
            + ")" : "rgba(" + this.r + ", " + this.g + ", " + this.b + ", "
            + (this.a / 255).toFixed(2) + ")"
      }, e
    }();
    t.RGBA = a;
    var u = function () {
      function e(t, n, i, o) {
        this.h = e._clampFloat_0_360(t), this.s = e._clampFloat_0_1(
            n), this.l = e._clampFloat_0_1(i), this.a = e._clampFloat_0_1(o)
      }

      return e._clampFloat_0_360 = function (e) {
        return e < 0 ? 0 : e > 360 ? 360 : e
      }, e._clampFloat_0_1 = function (e) {
        return e < 0 ? 0 : e > 1 ? 1 : e
      }, e.prototype.toString = function () {
        var e = (100 * this.s).toFixed(2), t = (100 * this.l).toFixed(2);
        return 1 === this.a ? "hsl(" + this.h + ", " + e + "%, " + t + "%)"
            : "hsla(" + this.h + ", " + e + "%, " + t + "%, " + this.a.toFixed(
            2) + ")"
      }, e
    }();
    t.HSLA = u;
    var l = /^#[0-9A-Fa-f]{3,8}$/i;
    t.isValidHexColor = function (e) {
      return l.test(e) && 6 !== e.length && 8 !== e.length
    };
    var c = function () {
      function e(e) {
        this.rgba = e
      }

      return e.fromRGBA = function (t) {
        return new e(t)
      }, e.fromHex = function (t, i) {
        void 0 === i && (i = e.red);
        var o = n(t);
        return o ? new e(o) : i
      }, e.fromHSLA = function (t) {
        return new e(r(t))
      }, e.fromHSV = function (t, n, i, o, r) {
        if (void 0 === o && (o = 255), void 0 === r && (r = e.red), t < 0 || t
        >= 360 || n < 0 || n > 1 || i < 0 || i > 1) {
          return r;
        }
        var s = i * n, u = s * (1 - Math.abs(t / 60 % 2 - 1)), l = i - s,
            c = [0, 0, 0], d = c[0], h = c[1], p = c[2];
        return t < 60 ? (d = s, h = u) : t < 120 ? (d = u, h = s) : t < 180
            ? (h = s, p = u) : t < 240 ? (h = u, p = s) : t < 300
                ? (d = u, p = s) : t < 360 && (d = s, p = u), d = 255 * (d
            + l), h = 255 * (h + l), p = 255 * (p + l), e.fromRGBA(
            new a(d, h, p, o))
      }, e.prototype.equals = function (e) {
        return !!e && a.equals(this.rgba, e.rgba)
      }, e.prototype.getLuminosity = function () {
        var t = .2126 * e._luminosityFor(this.rgba.r) + .7152
            * e._luminosityFor(this.rgba.g) + .0722 * e._luminosityFor(
                this.rgba.b);
        return Math.round(1e4 * t) / 1e4
      }, e._luminosityFor = function (e) {
        var t = e / 255;
        return t <= .03928 ? t / 12.92 : Math.pow((t + .055) / 1.055, 2.4)
      }, e.prototype.getContrast = function (e) {
        var t = this.getLuminosity(), n = e.getLuminosity();
        return t > n ? (t + .05) / (n + .05) : (n + .05) / (t + .05)
      }, e.prototype.getHue = function () {
        var e, t = [this.rgba.r / 255, this.rgba.g / 255, this.rgba.b / 255],
            n = t[0], i = t[1], o = t[2], r = Math.max(n, i, o),
            s = r - Math.min(n, i, o);
        return (e = 0 === s ? 0 : r === n ? (i - o) / s % 6 * 60 : r === i ? 60
            * ((o - n) / s + 2) : 60 * ((n - i) / s + 4)) < 0 && (e += 360), e
      }, e.prototype.getSaturation = function () {
        var e = [this.rgba.r / 255, this.rgba.g / 255, this.rgba.b / 255],
            t = e[0], n = e[1], i = e[2], o = Math.max(t, n, i),
            r = Math.min(t, n, i);
        return 0 === o ? 0 : (o - r) / o
      }, e.prototype.getValue = function () {
        return Math.max(this.rgba.r / 255, this.rgba.g / 255, this.rgba.b / 255)
      }, e.prototype.isDarker = function () {
        return (299 * this.rgba.r + 587 * this.rgba.g + 114 * this.rgba.b) / 1e3
            < 128
      }, e.prototype.isLighter = function () {
        return (299 * this.rgba.r + 587 * this.rgba.g + 114 * this.rgba.b) / 1e3
            >= 128
      }, e.prototype.isLighterThan = function (e) {
        return this.getLuminosity() > e.getLuminosity()
      }, e.prototype.isDarkerThan = function (e) {
        return this.getLuminosity() < e.getLuminosity()
      }, e.prototype.lighten = function (t) {
        var n = this.toHSLA();
        return new e(r(new u(n.h, n.s, n.l + n.l * t, n.a)))
      }, e.prototype.darken = function (t) {
        var n = this.toHSLA();
        return new e(r(new u(n.h, n.s, n.l - n.l * t, n.a)))
      }, e.prototype.transparent = function (t) {
        var n = this.rgba;
        return new e(new a(n.r, n.g, n.b, Math.round(n.a * t)))
      }, e.prototype.isTransparent = function () {
        return 0 === this.rgba.a
      }, e.prototype.opposite = function () {
        return new e(
            new a(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b,
                this.rgba.a))
      }, e.prototype.blend = function (t) {
        var n = t.toRGBA(), i = this.rgba.a / 255, o = n.a / 255,
            r = i + o * (1 - i);
        if (r < 1e-6) {
          return e.transparent;
        }
        var s = this.rgba.r * i / r + n.r * o * (1 - i) / r,
            u = this.rgba.g * i / r + n.g * o * (1 - i) / r,
            l = this.rgba.b * i / r + n.b * o * (1 - i) / r;
        return r *= 255, new e(new a(s, u, l, r))
      }, e.prototype.toString = function () {
        var e = this.rgba;
        return 255 === e.a ? this.toRGBHex() : "rgba(" + e.r + ", " + e.g + ", "
            + e.b + ", " + +(e.a / 255).toFixed(2) + ")"
      }, e.prototype.toRGBHex = function () {
        var t = this.rgba;
        return "#" + e._toTwoDigitHex(t.r) + e._toTwoDigitHex(t.g)
            + e._toTwoDigitHex(t.b)
      }, e.prototype.toRGBAHex = function (t) {
        void 0 === t && (t = !1);
        var n = this.rgba;
        return t && 255 === n.a ? this.toRGBHex() : "#" + e._toTwoDigitHex(n.r)
            + e._toTwoDigitHex(n.g) + e._toTwoDigitHex(n.b) + e._toTwoDigitHex(
                n.a)
      }, e._toTwoDigitHex = function (e) {
        var t = e.toString(16);
        return 2 !== t.length ? "0" + t : t
      }, e.prototype.toHSLA = function () {
        return o(this.rgba)
      }, e.prototype.toRGBA = function () {
        return this.rgba
      }, e.getLighterColor = function (e, t, n) {
        if (e.isLighterThan(t)) {
          return e;
        }
        n = n || .5;
        var i = e.getLuminosity(), o = t.getLuminosity();
        return n = n * (o - i) / o, e.lighten(n)
      }, e.getDarkerColor = function (e, t, n) {
        if (e.isDarkerThan(t)) {
          return e;
        }
        n = n || .5;
        var i = e.getLuminosity();
        return n = n * (i - t.getLuminosity()) / i, e.darken(n)
      }, e.white = new e(new a(255, 255, 255, 255)), e.black = new e(
          new a(0, 0, 0, 255)), e.red = new e(
          new a(255, 0, 0, 255)), e.blue = new e(
          new a(0, 0, 255, 255)), e.green = new e(
          new a(0, 255, 0, 255)), e.cyan = new e(
          new a(0, 255, 255, 255)), e.lightgrey = new e(
          new a(211, 211, 211, 255)), e.transparent = new e(
          new a(0, 0, 0, 0)), e
    }();
    t.Color = c
  }), define(d[446], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.createDecorator = function (e) {
      return function (t, n, i) {
        var o = null, r = null;
        if ("function" == typeof i.value ? (o = "value", r = i.value)
            : "function" == typeof i.get
            && (o = "get", r = i.get), !r) {
          throw new Error("not supported");
        }
        i[o] = e(r)
      }
    }, t.memoize = function (e, t, n) {
      var i = null, o = null;
      if ("function" == typeof n.value ? (i = "value", o = n.value) : "function"
          == typeof n.get && (i = "get", o = n.get), !o) {
        throw new Error(
            "not supported");
      }
      var r = "$memoize$" + t;
      n[i] = function () {
        for (var e = [], t = 0; t < arguments.length; t++) {
          e[t] = arguments[t];
        }
        return this.hasOwnProperty(r) || Object.defineProperty(this, r, {
          configurable: !1,
          enumerable: !1,
          writable: !1,
          value: o.apply(this, e)
        }), this[r]
      }
    }
  }), define(d[332], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.DifferenceType = {Add: 0, Remove: 1, Change: 2};
    var n = function () {
      function e(e, t, n, i) {
        this.originalStart = e, this.originalLength = t, this.modifiedStart = n, this.modifiedLength = i
      }

      return e.prototype.getChangeType = function () {
        return 0 === this.originalLength ? t.DifferenceType.Add : 0
        === this.modifiedLength ? t.DifferenceType.Remove
            : t.DifferenceType.Change
      }, e.prototype.getOriginalEnd = function () {
        return this.originalStart + this.originalLength
      }, e.prototype.getModifiedEnd = function () {
        return this.modifiedStart + this.modifiedLength
      }, e
    }();
    t.DiffChange = n
  }), define(d[139], h([1, 0, 332]), function (e, t, n) {
    "use strict";

    function i(e) {
      return {
        getLength: function () {
          return e.length
        }, getElementHash: function (t) {
          return e[t]
        }
      }
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.stringDiff = function (e, t, n) {
      return new u(i(e), i(t)).ComputeDiff(n)
    };
    var o = function () {
      function e() {
      }

      return e.Assert = function (e, t) {
        if (!e) {
          throw new Error(t)
        }
      }, e
    }();
    t.Debug = o;
    var r = function () {
      function e() {
      }

      return e.Copy = function (e, t, n, i, o) {
        for (var r = 0; r < o; r++) {
          n[i + r] = e[t + r]
        }
      }, e
    }();
    t.MyArray = r;
    var s = function () {
      function e() {
        this.m_changes = [], this.m_originalStart = Number.MAX_VALUE, this.m_modifiedStart = Number.MAX_VALUE, this.m_originalCount = 0, this.m_modifiedCount = 0
      }

      return e.prototype.MarkNextChange = function () {
        (this.m_originalCount > 0 || this.m_modifiedCount > 0)
        && this.m_changes.push(
            new n.DiffChange(this.m_originalStart, this.m_originalCount,
                this.m_modifiedStart,
                this.m_modifiedCount)), this.m_originalCount = 0, this.m_modifiedCount = 0, this.m_originalStart = Number.MAX_VALUE, this.m_modifiedStart = Number.MAX_VALUE
      }, e.prototype.AddOriginalElement = function (e, t) {
        this.m_originalStart = Math.min(this.m_originalStart,
            e), this.m_modifiedStart = Math.min(this.m_modifiedStart,
            t), this.m_originalCount++
      }, e.prototype.AddModifiedElement = function (e, t) {
        this.m_originalStart = Math.min(this.m_originalStart,
            e), this.m_modifiedStart = Math.min(this.m_modifiedStart,
            t), this.m_modifiedCount++
      }, e.prototype.getChanges = function () {
        return (this.m_originalCount > 0 || this.m_modifiedCount > 0)
        && this.MarkNextChange(), this.m_changes
      }, e.prototype.getReverseChanges = function () {
        return (this.m_originalCount > 0 || this.m_modifiedCount > 0)
        && this.MarkNextChange(), this.m_changes.reverse(), this.m_changes
      }, e
    }(), a = Object.prototype.hasOwnProperty, u = function () {
      function e(e, t, n) {
        void 0 === n
        && (n = null), this.OriginalSequence = e, this.ModifiedSequence = t, this.ContinueProcessingPredicate = n, this.m_originalIds = [], this.m_modifiedIds = [], this.m_forwardHistory = [], this.m_reverseHistory = [], this.ComputeUniqueIdentifiers()
      }

      return e.prototype.ComputeUniqueIdentifiers = function () {
        var e = this.OriginalSequence.getLength(),
            t = this.ModifiedSequence.getLength();
        this.m_originalIds = new Array(e), this.m_modifiedIds = new Array(t);
        var n, i = {}, o = 1;
        for (n = 0; n < e; n++) {
          var r = this.OriginalSequence.getElementHash(n);
          a.call(i, r) ? this.m_originalIds[n] = i[r]
              : (this.m_originalIds[n] = o++, i[r] = this.m_originalIds[n])
        }
        for (n = 0; n < t; n++) {
          var s = this.ModifiedSequence.getElementHash(n);
          a.call(i, s) ? this.m_modifiedIds[n] = i[s]
              : (this.m_modifiedIds[n] = o++, i[s] = this.m_modifiedIds[n])
        }
      }, e.prototype.ElementsAreEqual = function (e, t) {
        return this.m_originalIds[e] === this.m_modifiedIds[t]
      }, e.prototype.OriginalElementsAreEqual = function (e, t) {
        return this.m_originalIds[e] === this.m_originalIds[t]
      }, e.prototype.ModifiedElementsAreEqual = function (e, t) {
        return this.m_modifiedIds[e] === this.m_modifiedIds[t]
      }, e.prototype.ComputeDiff = function (e) {
        return this._ComputeDiff(0, this.OriginalSequence.getLength() - 1, 0,
            this.ModifiedSequence.getLength() - 1, e)
      }, e.prototype._ComputeDiff = function (e, t, n, i, o) {
        var r = [!1], s = this.ComputeDiffRecursive(e, t, n, i, r);
        return o ? this.ShiftChanges(s) : s
      }, e.prototype.ComputeDiffRecursive = function (e, t, i, r, s) {
        for (s[0] = !1;
            e <= t && i <= r && this.ElementsAreEqual(e, i);) {
          e++, i++;
        }
        for (; t >= e && r >= i && this.ElementsAreEqual(t, r);) {
          t--, r--;
        }
        if (e > t || i > r) {
          var a = void 0;
          return i <= r ? (o.Assert(e === t + 1,
              "originalStart should only be one more than originalEnd"), a = [new n.DiffChange(
              e, 0, i, r - i + 1)]) : e <= t ? (o.Assert(i === r + 1,
              "modifiedStart should only be one more than modifiedEnd"), a = [new n.DiffChange(
              e, t - e + 1, i, 0)]) : (o.Assert(e === t + 1,
              "originalStart should only be one more than originalEnd"), o.Assert(
              i === r + 1,
              "modifiedStart should only be one more than modifiedEnd"), a = []), a
        }
        var u = [0], l = [0],
            c = this.ComputeRecursionPoint(e, t, i, r, u, l, s), d = u[0],
            h = l[0];
        if (null !== c) {
          return c;
        }
        if (!s[0]) {
          var p = this.ComputeDiffRecursive(e, d, i, h, s), f = [];
          return f = s[0] ? [new n.DiffChange(d + 1, t - (d + 1) + 1, h + 1,
              r - (h + 1) + 1)] : this.ComputeDiffRecursive(d + 1, t, h + 1, r,
              s), this.ConcatenateChanges(p, f)
        }
        return [new n.DiffChange(e, t - e + 1, i, r - i + 1)]
      }, e.prototype.WALKTRACE = function (e, t, i, o, r, a, u, l, c, d, h, p,
          f, g, m, v, _, y) {
        var C, b = null, w = null, S = new s, E = t, L = i, x = f[0] - v[0] - o,
            N = Number.MIN_VALUE, M = this.m_forwardHistory.length - 1;
        do {
          (C = x + e) === E || C < L && c[C - 1] < c[C + 1] ? (g = (h = c[C
          + 1]) - x - o, h < N
          && S.MarkNextChange(), N = h, S.AddModifiedElement(h + 1, g), x = C
              + 1 - e) : (g = (h = c[C - 1] + 1) - x - o, h < N
          && S.MarkNextChange(), N = h - 1, S.AddOriginalElement(h,
              g + 1), x = C - 1 - e), M >= 0
          && (e = (c = this.m_forwardHistory[M])[0], E = 1, L = c.length - 1)
        } while (--M >= -1);
        if (b = S.getReverseChanges(), y[0]) {
          var T = f[0] + 1, k = v[0] + 1;
          if (null !== b && b.length > 0) {
            var I = b[b.length - 1];
            T = Math.max(T, I.getOriginalEnd()), k = Math.max(k,
                I.getModifiedEnd())
          }
          w = [new n.DiffChange(T, p - T + 1, k, m - k + 1)]
        } else {
          S = new s, E = a, L = u, x = f[0] - v[0]
              - l, N = Number.MAX_VALUE, M = _ ? this.m_reverseHistory.length
              - 1 : this.m_reverseHistory.length - 2;
          do {
            (C = x + r) === E || C < L && d[C - 1] >= d[C + 1] ? (g = (h = d[C
                + 1] - 1) - x - l, h > N && S.MarkNextChange(), N = h
                    + 1, S.AddOriginalElement(h + 1, g + 1), x = C + 1 - r)
                : (g = (h = d[C - 1]) - x - l, h > N
                && S.MarkNextChange(), N = h, S.AddModifiedElement(h + 1,
                    g + 1), x = C - 1 - r), M >= 0
            && (r = (d = this.m_reverseHistory[M])[0], E = 1, L = d.length - 1)
          } while (--M >= -1);
          w = S.getChanges()
        }
        return this.ConcatenateChanges(b, w)
      }, e.prototype.ComputeRecursionPoint = function (e, t, i, o, s, a, u) {
        var l, c, d, h = 0, p = 0, f = 0, g = 0;
        e--, i--, s[0] = 0, a[0] = 0, this.m_forwardHistory = [], this.m_reverseHistory = [];
        var m = t - e + (o - i), v = m + 1, _ = new Array(v), y = new Array(v),
            C = o - i, b = t - e, w = e - i, S = t - o, E = (b - C) % 2 == 0;
        _[C] = e, y[b] = t, u[0] = !1;
        var L, x;
        for (d = 1; d <= m / 2 + 1; d++) {
          var N = 0, M = 0;
          for (h = this.ClipDiagonalBound(C - d, d, C,
              v), p = this.ClipDiagonalBound(C + d, d, C, v), L = h; L <= p;
              L += 2) {
            for (c = (l = L === h || L < p && _[L - 1] < _[L + 1] ? _[L + 1]
                : _[L - 1] + 1) - (L - C) - w, x = l;
                l < t && c < o && this.ElementsAreEqual(l + 1,
                    c + 1);) {
              l++, c++;
            }
            if (_[L] = l, l + c > N + M && (N = l, M = c), !E && Math.abs(L - b)
            <= d - 1 && l >= y[L]) {
              return s[0] = l, a[0] = c, x <= y[L] && d
              <= 1448 ? this.WALKTRACE(C, h, p, w, b, f, g, S, _, y, l, t, s, c,
                  o, a, E, u) : null
            }
          }
          var T = (N - e + (M - i) - d) / 2;
          if (null !== this.ContinueProcessingPredicate
              && !this.ContinueProcessingPredicate(N, this.OriginalSequence,
                  T)) {
            return u[0] = !0, s[0] = N, a[0] = M, T > 0 && d <= 1448
                ? this.WALKTRACE(C, h, p, w, b, f, g, S, _, y, l, t, s, c, o, a,
                    E, u) : (e++, i++, [new n.DiffChange(e, t - e + 1, i,
                    o - i + 1)]);
          }
          for (f = this.ClipDiagonalBound(b - d, d, b,
              v), g = this.ClipDiagonalBound(b + d, d, b, v), L = f; L <= g;
              L += 2) {
            for (c = (l = L === f || L < g && y[L - 1] >= y[L + 1] ? y[L + 1]
                - 1 : y[L - 1]) - (L - b) - S, x = l;
                l > e && c > i && this.ElementsAreEqual(l, c);) {
              l--, c--;
            }
            if (y[L] = l, E && Math.abs(L - C) <= d && l
            <= _[L]) {
              return s[0] = l, a[0] = c, x >= _[L] && d <= 1448
                  ? this.WALKTRACE(C, h, p, w, b, f, g, S, _, y, l, t, s, c, o,
                      a,
                      E, u) : null
            }
          }
          if (d <= 1447) {
            var k = new Array(p - h + 2);
            k[0] = C - h + 1, r.Copy(_, h, k, 1,
                p - h + 1), this.m_forwardHistory.push(k), (k = new Array(
                g - f + 2))[0] = b - f + 1, r.Copy(y, f, k, 1,
                g - f + 1), this.m_reverseHistory.push(k)
          }
        }
        return this.WALKTRACE(C, h, p, w, b, f, g, S, _, y, l, t, s, c, o, a, E,
            u)
      }, e.prototype.ShiftChanges = function (e) {
        var t;
        do {
          t = !1;
          for (l = 0; l < e.length; l++) {
            for (var n = e[l],
                i = l < e.length - 1 ? e[l + 1].originalStart
                    : this.OriginalSequence.getLength(),
                o = l < e.length - 1 ? e[l + 1].modifiedStart
                    : this.ModifiedSequence.getLength(),
                r = n.originalLength > 0,
                s = n.modifiedLength > 0;
                n.originalStart + n.originalLength < i && n.modifiedStart
                + n.modifiedLength < o && (!r || this.OriginalElementsAreEqual(
                    n.originalStart, n.originalStart + n.originalLength)) && (!s
                    || this.ModifiedElementsAreEqual(n.modifiedStart,
                        n.modifiedStart
                        + n.modifiedLength));) {
              n.originalStart++, n.modifiedStart++;
            }
          }
          for (var a = new Array, u = [null], l = 0; l < e.length; l++) {
            l
            < e.length - 1 && this.ChangesOverlap(e[l], e[l + 1], u)
                ? (t = !0, a.push(u[0]), l++) : a.push(e[l]);
          }
          e = a
        } while (t);
        for (l = e.length - 1; l >= 0; l--) {
          var n = e[l], i = 0, o = 0;
          if (l > 0) {
            var c = e[l - 1];
            c.originalLength > 0 && (i = c.originalStart
                + c.originalLength), c.modifiedLength > 0
            && (o = c.modifiedStart + c.modifiedLength)
          }
          for (var r = n.originalLength > 0, s = n.modifiedLength > 0, d = 0,
              h = this._boundaryScore(n.originalStart, n.originalLength,
                  n.modifiedStart, n.modifiedLength), p = 1; ; p++) {
            var f = n.originalStart - p, g = n.modifiedStart - p;
            if (f < i || g < g) {
              break;
            }
            if (r && !this.OriginalElementsAreEqual(f,
                f + n.originalLength)) {
              break;
            }
            if (s && !this.ModifiedElementsAreEqual(g,
                g + n.modifiedLength)) {
              break;
            }
            var m = this._boundaryScore(f, n.originalLength, g,
                n.modifiedLength);
            m > h && (h = m, d = p)
          }
          n.originalStart -= d, n.modifiedStart -= d
        }
        return e
      }, e.prototype._OriginalIsBoundary = function (e) {
        return e <= 0 || e >= this.OriginalSequence.getLength() - 1
            || /^\s*$/.test(this.OriginalSequence.getElementHash(e))
      }, e.prototype._OriginalRegionIsBoundary = function (e, t) {
        if (this._OriginalIsBoundary(e) || this._OriginalIsBoundary(
            e - 1)) {
          return !0;
        }
        if (t > 0) {
          var n = e + t;
          if (this._OriginalIsBoundary(n - 1) || this._OriginalIsBoundary(
              n)) {
            return !0
          }
        }
        return !1
      }, e.prototype._ModifiedIsBoundary = function (e) {
        return e <= 0 || e >= this.ModifiedSequence.getLength() - 1
            || /^\s*$/.test(this.ModifiedSequence.getElementHash(e))
      }, e.prototype._ModifiedRegionIsBoundary = function (e, t) {
        if (this._ModifiedIsBoundary(e) || this._ModifiedIsBoundary(
            e - 1)) {
          return !0;
        }
        if (t > 0) {
          var n = e + t;
          if (this._ModifiedIsBoundary(n - 1) || this._ModifiedIsBoundary(
              n)) {
            return !0
          }
        }
        return !1
      }, e.prototype._boundaryScore = function (e, t, n, i) {
        return (this._OriginalRegionIsBoundary(e, t) ? 1 : 0)
            + (this._ModifiedRegionIsBoundary(n, i) ? 1 : 0)
      }, e.prototype.ConcatenateChanges = function (e, t) {
        var n = [], i = null;
        return 0 === e.length || 0 === t.length ? t.length > 0 ? t : e
            : this.ChangesOverlap(e[e.length - 1], t[0], n) ? (i = new Array(
                e.length + t.length - 1), r.Copy(e, 0, i, 0,
                e.length - 1), i[e.length - 1] = n[0], r.Copy(t, 1, i, e.length,
                t.length - 1), i) : (i = new Array(e.length + t.length), r.Copy(
                e, 0, i, 0, e.length), r.Copy(t, 0, i, e.length, t.length), i)
      }, e.prototype.ChangesOverlap = function (e, t, i) {
        if (o.Assert(e.originalStart <= t.originalStart,
            "Left change is not less than or equal to right change"), o.Assert(
            e.modifiedStart <= t.modifiedStart,
            "Left change is not less than or equal to right change"), e.originalStart
        + e.originalLength >= t.originalStart || e.modifiedStart
        + e.modifiedLength >= t.modifiedStart) {
          var r = e.originalStart, s = e.originalLength, a = e.modifiedStart,
              u = e.modifiedLength;
          return e.originalStart + e.originalLength >= t.originalStart
          && (s = t.originalStart + t.originalLength
              - e.originalStart), e.modifiedStart + e.modifiedLength
          >= t.modifiedStart && (u = t.modifiedStart + t.modifiedLength
              - e.modifiedStart), i[0] = new n.DiffChange(r, s, a, u), !0
        }
        return i[0] = null, !1
      }, e.prototype.ClipDiagonalBound = function (e, t, n, i) {
        if (e >= 0 && e < i) {
          return e;
        }
        var o = n, r = i - n - 1, s = t % 2 == 0;
        return e < 0 ? s === (o % 2 == 0) ? 0 : 1 : s === (r % 2 == 0) ? i - 1
            : i - 2
      }, e
    }();
    t.LcsDiff = u
  });
  var f = this && this.__extends || function () {
    var e = Object.setPrototypeOf || {__proto__: []} instanceof Array
        && function (e, t) {
          e.__proto__ = t
        } || function (e, t) {
          for (var n in t) {
            t.hasOwnProperty(n) && (e[n] = t[n])
          }
        };
    return function (t, n) {
      function i() {
        this.constructor = t
      }

      e(t, n), t.prototype = null === n ? Object.create(n)
          : (i.prototype = n.prototype, new i)
    }
  }();
  define(d[79], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      return function (e) {
        this.time = (new Date).getTime(), this.originalEvent = e, this.source = null
      }
    }();
    t.Event = n;
    var i = function (e) {
      function t(t, n, i, o) {
        var r = e.call(this, o) || this;
        return r.key = t, r.oldValue = n, r.newValue = i, r
      }

      return f(t, e), t
    }(n);
    t.PropertyChangeEvent = i;
    var o = function (e) {
      function t(t, n) {
        var i = e.call(this, n) || this;
        return i.element = t, i
      }

      return f(t, e), t
    }(n);
    t.ViewerEvent = o, t.EventType = {
      PROPERTY_CHANGED: "propertyChanged",
      SELECTION: "selection",
      FOCUS: "focus",
      BLUR: "blur",
      HIGHLIGHT: "highlight",
      EXPAND: "expand",
      COLLAPSE: "collapse",
      TOGGLE: "toggle",
      BEFORE_RUN: "beforeRun",
      RUN: "run",
      EDIT: "edit",
      SAVE: "save",
      CANCEL: "cancel",
      CHANGE: "change",
      DISPOSE: "dispose"
    }
  }), define(d[136], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0}), t.not = function (e) {
      return function () {
        for (var t = [], n = 0; n < arguments.length; n++) {
          t[n] = arguments[n];
        }
        return !e.apply(void 0, t)
      }
    }, t.once = function (e) {
      var t, n = this, i = !1;
      return function () {
        return i ? t : (i = !0, t = e.apply(n, arguments))
      }
    }
  }), define(d[488], h([1, 0]), function (e, t) {
    "use strict";

    function n(e, t) {
      switch (void 0 === t && (t = 0), typeof e) {
        case"object":
          return null === e ? i(349, t) : Array.isArray(e) ? s(e, t) : a(e, t);
        case"string":
          return r(e, t);
        case"boolean":
          return o(e, t);
        case"number":
          return i(e, t);
        case"undefined":
          return i(e, 937);
        default:
          return i(e, 617)
      }
    }

    function i(e, t) {
      return (t << 5) - t + e | 0
    }

    function o(e, t) {
      return i(e ? 433 : 863, t)
    }

    function r(e, t) {
      t = i(149417, t);
      for (var n = 0, o = e.length; n < o; n++) {
        t = i(e.charCodeAt(n), t);
      }
      return t
    }

    function s(e, t) {
      return t = i(104579, t), e.reduce(function (e, t) {
        return n(t, e)
      }, t)
    }

    function a(e, t) {
      return t = i(181387, t), Object.keys(e).sort().reduce(function (t, i) {
        return t = r(i, t), n(e[i], t)
      }, t)
    }

    Object.defineProperty(t, "__esModule", {value: !0}), t.hash = n
  }), define(d[133], h([1, 0]), function (e, t) {
    "use strict";

    function n(e, t) {
      var n = e.length;
      if (n !== t.length) {
        return !1;
      }
      for (var o = 0; o < n; o++) {
        if (!i(e[o], t[o])) {
          return !1;
        }
      }
      return !0
    }

    function i(e, t) {
      return !e && !t || !(!e || !t) && ("string" == typeof e || "string"
      == typeof t ? "string" == typeof e && "string" == typeof t && e === t
          : e.language === t.language && e.value === t.value)
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.markedStringsEquals = function (e, t) {
      return !e && !t || !(!e || !t) && (Array.isArray(e) ? !!Array.isArray(t)
          && n(e, t) : i(e, t))
    }, t.textToMarkedString = function (e) {
      return e.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&")
    }, t.removeMarkdownEscapes = function (e) {
      return e ? e.replace(/\\([\\`*_{}[\]()#+\-.!])/g, "$1") : e
    }
  }), define(d[108], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e) {
        this._prefix = e, this._lastId = 0
      }

      return e.prototype.nextId = function () {
        return this._prefix + ++this._lastId
      }, e
    }();
    t.IdGenerator = n, t.defaultGenerator = new n("id#")
  }), define(d[107], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e, t, n) {
        void 0 === t && (t = 0), void 0 === n
        && (n = e.length), this.items = e, this.start = t, this.end = n, this.index = t
            - 1
      }

      return e.prototype.first = function () {
        return this.index = this.start, this.current()
      }, e.prototype.next = function () {
        return this.index = Math.min(this.index + 1, this.end), this.current()
      }, e.prototype.current = function () {
        return this.index === this.start - 1 || this.index === this.end ? null
            : this.items[this.index]
      }, e
    }();
    t.ArrayIterator = n;
    var i = function (e) {
      function t(t, n, i) {
        return void 0 === n && (n = 0), void 0 === i && (i = t.length), e.call(
            this, t, n, i) || this
      }

      return f(t, e), t.prototype.current = function () {
        return e.prototype.current.call(this)
      }, t.prototype.previous = function () {
        return this.index = Math.max(this.index - 1,
            this.start - 1), this.current()
      }, t.prototype.first = function () {
        return this.index = this.start, this.current()
      }, t.prototype.last = function () {
        return this.index = this.end - 1, this.current()
      }, t.prototype.parent = function () {
        return null
      }, t
    }(n);
    t.ArrayNavigator = i;
    var o = function () {
      function e(e, t) {
        this.iterator = e, this.fn = t
      }

      return e.prototype.next = function () {
        return this.fn(this.iterator.next())
      }, e
    }();
    t.MappedIterator = o;
    var r = function (e) {
      function t(t, n) {
        var i = e.call(this, t, n) || this;
        return i.navigator = t, i
      }

      return f(t, e), t.prototype.current = function () {
        return this.fn(this.navigator.current())
      }, t.prototype.previous = function () {
        return this.fn(this.navigator.previous())
      }, t.prototype.parent = function () {
        return this.fn(this.navigator.parent())
      }, t.prototype.first = function () {
        return this.fn(this.navigator.first())
      }, t.prototype.last = function () {
        return this.fn(this.navigator.last())
      }, t.prototype.next = function () {
        return this.fn(this.navigator.next())
      }, t
    }(o);
    t.MappedNavigator = r
  }), define(d[434], h([1, 0, 107]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t) {
        void 0 === e && (e = []), void 0 === t && (t = 10), this._initialize(
            e), this._limit = t, this._onChange()
      }

      return e.prototype.getHistory = function () {
        return this._elements
      }, e.prototype.add = function (e) {
        this._history.add(e), this._onChange()
      }, e.prototype.addIfNotPresent = function (e) {
        this._history.has(e) || this.add(e)
      }, e.prototype.next = function () {
        return this._navigator.next() ? this._navigator.current()
            : (this.last(), null)
      }, e.prototype.previous = function () {
        return this._navigator.previous() ? this._navigator.current()
            : (this.first(), null)
      }, e.prototype.current = function () {
        return this._navigator.current()
      }, e.prototype.parent = function () {
        return null
      }, e.prototype.first = function () {
        return this._navigator.first()
      }, e.prototype.last = function () {
        return this._navigator.last()
      }, e.prototype._onChange = function () {
        this._reduceToLimit(), this._navigator = new n.ArrayNavigator(
            this._elements), this._navigator.last()
      }, e.prototype._reduceToLimit = function () {
        var e = this._elements;
        e.length > this._limit && this._initialize(
            e.slice(e.length - this._limit))
      }, e.prototype._initialize = function (e) {
        this._history = new Set;
        for (var t = 0, n = e; t < n.length; t++) {
          var i = n[t];
          this._history.add(i)
        }
      }, Object.defineProperty(e.prototype, "_elements", {
        get: function () {
          var e = [];
          return this._history.forEach(function (t) {
            return e.push(t)
          }), e
        }, enumerable: !0, configurable: !0
      }), e
    }();
    t.HistoryNavigator = i
  }), define(d[442], h([1, 0]), function (e, t) {
    "use strict";

    function n(e, t) {
      function n(t, n) {
        for (var i = 0, o = 0; i < t || !n;) {
          var r = e.charCodeAt(h);
          if (r >= 48 && r <= 57) {
            o = 16 * o + r - 48;
          } else if (r >= 65 && r
              <= 70) {
            o = 16 * o + r - 65 + 10;
          } else {
            if (!(r >= 97 && r <= 102)) {
              break;
            }
            o = 16 * o + r - 97 + 10
          }
          h++, i++
        }
        return i < t && (o = -1), o
      }

      function s() {
        var t = h;
        if (48 === e.charCodeAt(h)) {
          h++;
        } else {
          for (h++;
              h < e.length && r(e.charCodeAt(h));) {
            h++;
          }
        }
        if (h < e.length && 46 === e.charCodeAt(h)) {
          if (!(++h < e.length && r(e.charCodeAt(
              h)))) {
            return v = l.UnexpectedEndOfNumber, e.substring(t, h);
          }
          for (h++; h < e.length && r(e.charCodeAt(h));) {
            h++
          }
        }
        var n = h;
        if (h < e.length && (69 === e.charCodeAt(h) || 101 === e.charCodeAt(
            h))) {
          if ((++h < e.length && 43 === e.charCodeAt(h) || 45
              === e.charCodeAt(h)) && h++, h < e.length && r(e.charCodeAt(h))) {
            for (h++; h < e.length && r(e.charCodeAt(h));) {
              h++;
            }
            n = h
          } else {
            v = l.UnexpectedEndOfNumber;
          }
        }
        return e.substring(t, n)
      }

      function a() {
        for (var t = "", i = h; ;) {
          if (h >= p) {
            t += e.substring(i, h), v = l.UnexpectedEndOfString;
            break
          }
          var r = e.charCodeAt(h);
          if (34 === r) {
            t += e.substring(i, h), h++;
            break
          }
          if (92 !== r) {
            if (r >= 0 && r <= 31) {
              if (o(r)) {
                t += e.substring(i, h), v = l.UnexpectedEndOfString;
                break
              }
              v = l.InvalidCharacter
            }
            h++
          } else {
            if (t += e.substring(i, h), ++h >= p) {
              v = l.UnexpectedEndOfString;
              break
            }
            switch (r = e.charCodeAt(h++)) {
              case 34:
                t += '"';
                break;
              case 92:
                t += "\\";
                break;
              case 47:
                t += "/";
                break;
              case 98:
                t += "\b";
                break;
              case 102:
                t += "\f";
                break;
              case 110:
                t += "\n";
                break;
              case 114:
                t += "\r";
                break;
              case 116:
                t += "\t";
                break;
              case 117:
                var s = n(4, !0);
                s >= 0 ? t += String.fromCharCode(s) : v = l.InvalidUnicode;
                break;
              default:
                v = l.InvalidEscapeCharacter
            }
            i = h
          }
        }
        return t
      }

      function u() {
        if (f = "", v = l.None, g = h, h >= p) {
          return g = p, m = c.EOF;
        }
        var t = e.charCodeAt(h);
        if (i(t)) {
          do {
            h++, f += String.fromCharCode(t), t = e.charCodeAt(h)
          } while (i(t));
          return m = c.Trivia
        }
        if (o(t)) {
          return h++, f += String.fromCharCode(t), 13 === t && 10
          === e.charCodeAt(h) && (h++, f += "\n"), m = c.LineBreakTrivia;
        }
        switch (t) {
          case 123:
            return h++, m = c.OpenBraceToken;
          case 125:
            return h++, m = c.CloseBraceToken;
          case 91:
            return h++, m = c.OpenBracketToken;
          case 93:
            return h++, m = c.CloseBracketToken;
          case 58:
            return h++, m = c.ColonToken;
          case 44:
            return h++, m = c.CommaToken;
          case 34:
            return h++, f = a(), m = c.StringLiteral;
          case 47:
            var n = h - 1;
            if (47 === e.charCodeAt(h + 1)) {
              for (h += 2; h < p && !o(e.charCodeAt(h));) {
                h++;
              }
              return f = e.substring(n, h), m = c.LineCommentTrivia
            }
            if (42 === e.charCodeAt(h + 1)) {
              h += 2;
              for (var u = p - 1, _ = !1; h < u;) {
                if (42 === e.charCodeAt(h) && 47 === e.charCodeAt(h + 1)) {
                  h += 2, _ = !0;
                  break
                }
                h++
              }
              return _ || (h++, v = l.UnexpectedEndOfComment), f = e.substring(
                  n, h), m = c.BlockCommentTrivia
            }
            return f += String.fromCharCode(t), h++, m = c.Unknown;
          case 45:
            if (f += String.fromCharCode(t), ++h === p || !r(
                e.charCodeAt(h))) {
              return m = c.Unknown;
            }
          case 48:
          case 49:
          case 50:
          case 51:
          case 52:
          case 53:
          case 54:
          case 55:
          case 56:
          case 57:
            return f += s(), m = c.NumericLiteral;
          default:
            for (; h < p && d(t);) {
              h++, t = e.charCodeAt(h);
            }
            if (g !== h) {
              switch (f = e.substring(g, h)) {
                case"true":
                  return m = c.TrueKeyword;
                case"false":
                  return m = c.FalseKeyword;
                case"null":
                  return m = c.NullKeyword
              }
              return m = c.Unknown
            }
            return f += String.fromCharCode(t), h++, m = c.Unknown
        }
      }

      function d(e) {
        if (i(e) || o(e)) {
          return !1;
        }
        switch (e) {
          case 125:
          case 93:
          case 123:
          case 91:
          case 34:
          case 58:
          case 44:
            return !1
        }
        return !0
      }

      void 0 === t && (t = !1);
      var h = 0, p = e.length, f = "", g = 0, m = c.Unknown, v = l.None;
      return {
        setPosition: function (e) {
          h = e, f = "", g = 0, m = c.Unknown, v = l.None
        }, getPosition: function () {
          return h
        }, scan: t ? function () {
          var e;
          do {
            e = u()
          } while (e >= c.LineCommentTrivia && e <= c.Trivia);
          return e
        } : u, getToken: function () {
          return m
        }, getTokenValue: function () {
          return f
        }, getTokenOffset: function () {
          return g
        }, getTokenLength: function () {
          return h - g
        }, getTokenError: function () {
          return v
        }
      }
    }

    function i(e) {
      return 32 === e || 9 === e || 11 === e || 12 === e || 160 === e || 5760
          === e || e >= 8192 && e <= 8203 || 8239 === e || 8287 === e || 12288
          === e || 65279 === e
    }

    function o(e) {
      return 10 === e || 13 === e || 8232 === e || 8233 === e
    }

    function r(e) {
      return e >= 48 && e <= 57
    }

    function s(e) {
      switch (typeof e) {
        case"boolean":
          return "boolean";
        case"number":
          return "number";
        case"string":
          return "string";
        default:
          return "null"
      }
    }

    function a(e) {
      if ("array" === e.type) {
        return e.children.map(a);
      }
      if ("object" === e.type) {
        for (var t = {}, n = 0, i = e.children; n < i.length; n++) {
          var o = i[n];
          t[o.children[0].value] = a(o.children[1])
        }
        return t
      }
      return e.value
    }

    function u(e, t, i) {
      function o(e) {
        return e ? function () {
          return e(m.getTokenOffset(), m.getTokenLength())
        } : function () {
          return !0
        }
      }

      function r(e) {
        return e ? function (t) {
          return e(t, m.getTokenOffset(), m.getTokenLength())
        } : function () {
          return !0
        }
      }

      function s() {
        for (; ;) {
          var e = m.scan();
          switch (e) {
            case c.LineCommentTrivia:
            case c.BlockCommentTrivia:
              L && a(h.InvalidSymbol);
              break;
            case c.Unknown:
              a(h.InvalidSymbol);
              break;
            case c.Trivia:
            case c.LineBreakTrivia:
              break;
            default:
              return e
          }
        }
      }

      function a(e, t, n) {
        if (void 0 === t && (t = []), void 0 === n && (n = []), E(e), t.length
        + n.length > 0) {
          for (var i = m.getToken(); i !== c.EOF;) {
            if (-1 !== t.indexOf(i)) {
              s();
              break
            }
            if (-1 !== n.indexOf(i)) {
              break;
            }
            i = s()
          }
        }
      }

      function u(e) {
        var t = m.getTokenValue();
        return e ? w(t) : _(t), s(), !0
      }

      function l() {
        switch (m.getToken()) {
          case c.NumericLiteral:
            var e = 0;
            try {
              "number" != typeof (e = JSON.parse(m.getTokenValue())) && (a(
                  h.InvalidNumberFormat), e = 0)
            } catch (e) {
              a(h.InvalidNumberFormat)
            }
            w(e);
            break;
          case c.NullKeyword:
            w(null);
            break;
          case c.TrueKeyword:
            w(!0);
            break;
          case c.FalseKeyword:
            w(!1);
            break;
          default:
            return !1
        }
        return s(), !0
      }

      function d() {
        return m.getToken() !== c.StringLiteral ? (a(h.PropertyNameExpected, [],
            [c.CloseBraceToken, c.CommaToken]), !1) : (u(!1), m.getToken()
        === c.ColonToken ? (S(":"), s(), g() || a(h.ValueExpected, [],
            [c.CloseBraceToken, c.CommaToken])) : a(h.ColonExpected, [],
            [c.CloseBraceToken, c.CommaToken]), !0)
      }

      function p() {
        v(), s();
        for (var e = !1;
            m.getToken() !== c.CloseBraceToken && m.getToken() !== c.EOF;) {
          if (m.getToken() === c.CommaToken) {
            if (e || a(h.ValueExpected, [], []), S(","), s(), m.getToken()
            === c.CloseBraceToken && x) {
              break
            }
          } else {
            e && a(h.CommaExpected, [], []);
          }
          d() || a(h.ValueExpected, [],
              [c.CloseBraceToken, c.CommaToken]), e = !0
        }
        return y(), m.getToken() !== c.CloseBraceToken ? a(h.CloseBraceExpected,
            [c.CloseBraceToken], []) : s(), !0
      }

      function f() {
        C(), s();
        for (var e = !1; m.getToken() !== c.CloseBracketToken && m.getToken()
        !== c.EOF;) {
          m.getToken() === c.CommaToken ? (e || a(h.ValueExpected, [],
              []), S(","), s()) : e && a(h.CommaExpected, [], []), g() || a(
              h.ValueExpected, [], [c.CloseBracketToken, c.CommaToken]), e = !0;
        }
        return b(), m.getToken() !== c.CloseBracketToken ? a(
            h.CloseBracketExpected, [c.CloseBracketToken], []) : s(), !0
      }

      function g() {
        switch (m.getToken()) {
          case c.OpenBracketToken:
            return f();
          case c.OpenBraceToken:
            return p();
          case c.StringLiteral:
            return u(!0);
          default:
            return l()
        }
      }

      var m = n(e, !1), v = o(t.onObjectBegin), _ = r(t.onObjectProperty),
          y = o(t.onObjectEnd), C = o(t.onArrayBegin), b = o(t.onArrayEnd),
          w = r(t.onLiteralValue), S = r(t.onSeparator), E = r(t.onError),
          L = i && i.disallowComments, x = i && i.allowTrailingComma;
      return s(), m.getToken() === c.EOF || (g() ? (m.getToken() !== c.EOF && a(
          h.EndOfFileExpected, [], []), !0) : (a(h.ValueExpected, [], []), !1))
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var l;
    !function (e) {
      e[e.None = 0] = "None", e[e.UnexpectedEndOfComment = 1] = "UnexpectedEndOfComment", e[e.UnexpectedEndOfString = 2] = "UnexpectedEndOfString", e[e.UnexpectedEndOfNumber = 3] = "UnexpectedEndOfNumber", e[e.InvalidUnicode = 4] = "InvalidUnicode", e[e.InvalidEscapeCharacter = 5] = "InvalidEscapeCharacter", e[e.InvalidCharacter = 6] = "InvalidCharacter"
    }(l = t.ScanError || (t.ScanError = {}));
    var c;
    !function (e) {
      e[e.Unknown = 0] = "Unknown", e[e.OpenBraceToken = 1] = "OpenBraceToken", e[e.CloseBraceToken = 2] = "CloseBraceToken", e[e.OpenBracketToken = 3] = "OpenBracketToken", e[e.CloseBracketToken = 4] = "CloseBracketToken", e[e.CommaToken = 5] = "CommaToken", e[e.ColonToken = 6] = "ColonToken", e[e.NullKeyword = 7] = "NullKeyword", e[e.TrueKeyword = 8] = "TrueKeyword", e[e.FalseKeyword = 9] = "FalseKeyword", e[e.StringLiteral = 10] = "StringLiteral", e[e.NumericLiteral = 11] = "NumericLiteral", e[e.LineCommentTrivia = 12] = "LineCommentTrivia", e[e.BlockCommentTrivia = 13] = "BlockCommentTrivia", e[e.LineBreakTrivia = 14] = "LineBreakTrivia", e[e.Trivia = 15] = "Trivia", e[e.EOF = 16] = "EOF"
    }(c = t.SyntaxKind || (t.SyntaxKind = {})), t.createScanner = n;
    var d;
    !function (e) {
      e[e.nullCharacter = 0] = "nullCharacter", e[e.maxAsciiCharacter = 127] = "maxAsciiCharacter", e[e.lineFeed = 10] = "lineFeed", e[e.carriageReturn = 13] = "carriageReturn", e[e.lineSeparator = 8232] = "lineSeparator", e[e.paragraphSeparator = 8233] = "paragraphSeparator", e[e.nextLine = 133] = "nextLine", e[e.space = 32] = "space", e[e.nonBreakingSpace = 160] = "nonBreakingSpace", e[e.enQuad = 8192] = "enQuad", e[e.emQuad = 8193] = "emQuad", e[e.enSpace = 8194] = "enSpace", e[e.emSpace = 8195] = "emSpace", e[e.threePerEmSpace = 8196] = "threePerEmSpace", e[e.fourPerEmSpace = 8197] = "fourPerEmSpace", e[e.sixPerEmSpace = 8198] = "sixPerEmSpace", e[e.figureSpace = 8199] = "figureSpace", e[e.punctuationSpace = 8200] = "punctuationSpace", e[e.thinSpace = 8201] = "thinSpace", e[e.hairSpace = 8202] = "hairSpace", e[e.zeroWidthSpace = 8203] = "zeroWidthSpace", e[e.narrowNoBreakSpace = 8239] = "narrowNoBreakSpace", e[e.ideographicSpace = 12288] = "ideographicSpace", e[e.mathematicalSpace = 8287] = "mathematicalSpace", e[e.ogham = 5760] = "ogham", e[e._ = 95] = "_", e[e.$ = 36] = "$", e[e._0 = 48] = "_0", e[e._1 = 49] = "_1", e[e._2 = 50] = "_2", e[e._3 = 51] = "_3", e[e._4 = 52] = "_4", e[e._5 = 53] = "_5", e[e._6 = 54] = "_6", e[e._7 = 55] = "_7", e[e._8 = 56] = "_8", e[e._9 = 57] = "_9", e[e.a = 97] = "a", e[e.b = 98] = "b", e[e.c = 99] = "c", e[e.d = 100] = "d", e[e.e = 101] = "e", e[e.f = 102] = "f", e[e.g = 103] = "g", e[e.h = 104] = "h", e[e.i = 105] = "i", e[e.j = 106] = "j", e[e.k = 107] = "k", e[e.l = 108] = "l", e[e.m = 109] = "m", e[e.n = 110] = "n", e[e.o = 111] = "o", e[e.p = 112] = "p", e[e.q = 113] = "q", e[e.r = 114] = "r", e[e.s = 115] = "s", e[e.t = 116] = "t", e[e.u = 117] = "u", e[e.v = 118] = "v", e[e.w = 119] = "w", e[e.x = 120] = "x", e[e.y = 121] = "y", e[e.z = 122] = "z", e[e.A = 65] = "A", e[e.B = 66] = "B", e[e.C = 67] = "C", e[e.D = 68] = "D", e[e.E = 69] = "E", e[e.F = 70] = "F", e[e.G = 71] = "G", e[e.H = 72] = "H", e[e.I = 73] = "I", e[e.J = 74] = "J", e[e.K = 75] = "K", e[e.L = 76] = "L", e[e.M = 77] = "M", e[e.N = 78] = "N", e[e.O = 79] = "O", e[e.P = 80] = "P", e[e.Q = 81] = "Q", e[e.R = 82] = "R", e[e.S = 83] = "S", e[e.T = 84] = "T", e[e.U = 85] = "U", e[e.V = 86] = "V", e[e.W = 87] = "W", e[e.X = 88] = "X", e[e.Y = 89] = "Y", e[e.Z = 90] = "Z", e[e.ampersand = 38] = "ampersand", e[e.asterisk = 42] = "asterisk", e[e.at = 64] = "at", e[e.backslash = 92] = "backslash", e[e.bar = 124] = "bar", e[e.caret = 94] = "caret", e[e.closeBrace = 125] = "closeBrace", e[e.closeBracket = 93] = "closeBracket", e[e.closeParen = 41] = "closeParen", e[e.colon = 58] = "colon", e[e.comma = 44] = "comma", e[e.dot = 46] = "dot",e[e.doubleQuote = 34] = "doubleQuote",e[e.equals = 61] = "equals",e[e.exclamation = 33] = "exclamation",e[e.greaterThan = 62] = "greaterThan",e[e.lessThan = 60] = "lessThan",e[e.minus = 45] = "minus",e[e.openBrace = 123] = "openBrace",e[e.openBracket = 91] = "openBracket",e[e.openParen = 40] = "openParen",e[e.percent = 37] = "percent",e[e.plus = 43] = "plus",e[e.question = 63] = "question",e[e.semicolon = 59] = "semicolon",e[e.singleQuote = 39] = "singleQuote",e[e.slash = 47] = "slash",e[e.tilde = 126] = "tilde",e[e.backspace = 8] = "backspace",e[e.formFeed = 12] = "formFeed",e[e.byteOrderMark = 65279] = "byteOrderMark",e[e.tab = 9] = "tab",e[e.verticalTab = 11] = "verticalTab"
    }(d || (d = {})), t.stripComments = function (e, t) {
      var i, o, r = n(e), s = [], a = 0;
      do {
        switch (o = r.getPosition(), i = r.scan()) {
          case c.LineCommentTrivia:
          case c.BlockCommentTrivia:
          case c.EOF:
            a !== o && s.push(e.substring(a, o)), void 0 !== t && s.push(
                r.getTokenValue().replace(/[^\r\n]/g, t)), a = r.getPosition()
        }
      } while (i !== c.EOF);
      return s.join("")
    };
    var h;
    !function (e) {
      e[e.InvalidSymbol = 0] = "InvalidSymbol", e[e.InvalidNumberFormat = 1] = "InvalidNumberFormat", e[e.PropertyNameExpected = 2] = "PropertyNameExpected", e[e.ValueExpected = 3] = "ValueExpected", e[e.ColonExpected = 4] = "ColonExpected", e[e.CommaExpected = 5] = "CommaExpected", e[e.CloseBraceExpected = 6] = "CloseBraceExpected", e[e.CloseBracketExpected = 7] = "CloseBracketExpected", e[e.EndOfFileExpected = 8] = "EndOfFileExpected"
    }(h = t.ParseErrorCode
        || (t.ParseErrorCode = {})), t.getLocation = function (e, t) {
      function n(e, t, n, i) {
        a.value = e, a.offset = t, a.length = n, a.type = i, a.columnOffset = void 0, r = a
      }

      var i = [], o = new Object, r = void 0,
          a = {value: void 0, offset: void 0, length: void 0, type: void 0},
          l = !1;
      try {
        u(e, {
          onObjectBegin: function (e, n) {
            if (t <= e) {
              throw o;
            }
            r = void 0, l = t > e, i.push("")
          }, onObjectProperty: function (e, r, s) {
            if (t < r) {
              throw o;
            }
            if (n(e, r, s, "property"), i[i.length - 1] = e, t <= r + s) {
              throw o
            }
          }, onObjectEnd: function (e, n) {
            if (t <= e) {
              throw o;
            }
            r = void 0, i.pop()
          }, onArrayBegin: function (e, n) {
            if (t <= e) {
              throw o;
            }
            r = void 0, i.push(0)
          }, onArrayEnd: function (e, n) {
            if (t <= e) {
              throw o;
            }
            r = void 0, i.pop()
          }, onLiteralValue: function (e, i, r) {
            if (t < i) {
              throw o;
            }
            if (n(e, i, r, s(e)), t <= i + r) {
              throw o
            }
          }, onSeparator: function (e, n, s) {
            if (t <= n) {
              throw o;
            }
            if (":" === e && "property"
                === r.type) {
              r.columnOffset = n, l = !1, r = void 0;
            } else if (","
                === e) {
              var a = i[i.length - 1];
              "number" == typeof a ? i[i.length - 1] = a + 1
                  : (l = !0, i[i.length - 1] = ""), r = void 0
            }
          }
        })
      } catch (e) {
        if (e !== o) {
          throw e
        }
      }
      return {
        path: i,
        previousNode: r,
        isAtPropertyKey: l,
        matches: function (e) {
          for (var t = 0, n = 0; t < e.length && n < i.length; n++) {
            if (e[t]
                === i[n] || "*" === e[t]) {
              t++;
            } else if ("**" !== e[t]) {
              return !1;
            }
          }
          return t === e.length
        }
      }
    }, t.parse = function (e, t, n) {
      function i(e) {
        Array.isArray(r) ? r.push(e) : o && (r[o] = e)
      }

      void 0 === t && (t = []);
      var o = null, r = [], s = [];
      return u(e, {
        onObjectBegin: function () {
          var e = {};
          i(e), s.push(r), r = e, o = null
        }, onObjectProperty: function (e) {
          o = e
        }, onObjectEnd: function () {
          r = s.pop()
        }, onArrayBegin: function () {
          var e = [];
          i(e), s.push(r), r = e, o = null
        }, onArrayEnd: function () {
          r = s.pop()
        }, onLiteralValue: i, onError: function (e) {
          t.push({error: e})
        }
      }, n), r[0]
    }, t.parseTree = function (e, t, n) {
      function i(e) {
        "property" === r.type && (r.length = e - r.offset, r = r.parent)
      }

      function o(e) {
        return r.children.push(e), e
      }

      void 0 === t && (t = []);
      var r = {type: "array", offset: -1, length: -1, children: []};
      u(e, {
        onObjectBegin: function (e) {
          r = o(
              {type: "object", offset: e, length: -1, parent: r, children: []})
        }, onObjectProperty: function (e, t, n) {
          (r = o({
            type: "property",
            offset: t,
            length: -1,
            parent: r,
            children: []
          })).children.push(
              {type: "string", value: e, offset: t, length: n, parent: r})
        }, onObjectEnd: function (e, t) {
          r.length = e + t - r.offset, r = r.parent, i(e + t)
        }, onArrayBegin: function (e, t) {
          r = o({type: "array", offset: e, length: -1, parent: r, children: []})
        }, onArrayEnd: function (e, t) {
          r.length = e + t - r.offset, r = r.parent, i(e + t)
        }, onLiteralValue: function (e, t, n) {
          o({type: s(e), offset: t, length: n, parent: r, value: e}), i(t + n)
        }, onSeparator: function (e, t, n) {
          "property" === r.type && (":" === e ? r.columnOffset = t : "," === e
              && i(t))
        }, onError: function (e) {
          t.push({error: e})
        }
      }, n);
      var a = r.children[0];
      return a && delete a.parent, a
    }, t.findNodeAtLocation = function (e, t) {
      if (e) {
        for (var n = e, i = 0, o = t; i < o.length; i++) {
          var r = o[i];
          if ("string" == typeof r) {
            if ("object" !== n.type) {
              return;
            }
            for (var s = !1, a = 0, u = n.children; a < u.length; a++) {
              var l = u[a];
              if (l.children[0].value === r) {
                n = l.children[1], s = !0;
                break
              }
            }
            if (!s) {
              return
            }
          } else {
            var c = r;
            if ("array" !== n.type || c < 0 || c >= n.children.length) {
              return;
            }
            n = n.children[c]
          }
        }
        return n
      }
    }, t.getNodeValue = a, t.visit = u
  }), define(d[40], h([1, 0]), function (e, t) {
    "use strict";

    function n(e, t) {
      var n = !!(2048 & e), i = !!(256 & e);
      return new u(2 === t ? i : n, !!(1024 & e), !!(512 & e), 2 === t ? n : i,
          255 & e)
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.Unknown = 0] = "Unknown", e[e.Backspace = 1] = "Backspace", e[e.Tab = 2] = "Tab", e[e.Enter = 3] = "Enter", e[e.Shift = 4] = "Shift", e[e.Ctrl = 5] = "Ctrl", e[e.Alt = 6] = "Alt", e[e.PauseBreak = 7] = "PauseBreak", e[e.CapsLock = 8] = "CapsLock", e[e.Escape = 9] = "Escape", e[e.Space = 10] = "Space", e[e.PageUp = 11] = "PageUp", e[e.PageDown = 12] = "PageDown", e[e.End = 13] = "End", e[e.Home = 14] = "Home", e[e.LeftArrow = 15] = "LeftArrow", e[e.UpArrow = 16] = "UpArrow", e[e.RightArrow = 17] = "RightArrow", e[e.DownArrow = 18] = "DownArrow", e[e.Insert = 19] = "Insert", e[e.Delete = 20] = "Delete", e[e.KEY_0 = 21] = "KEY_0", e[e.KEY_1 = 22] = "KEY_1", e[e.KEY_2 = 23] = "KEY_2", e[e.KEY_3 = 24] = "KEY_3", e[e.KEY_4 = 25] = "KEY_4", e[e.KEY_5 = 26] = "KEY_5", e[e.KEY_6 = 27] = "KEY_6", e[e.KEY_7 = 28] = "KEY_7", e[e.KEY_8 = 29] = "KEY_8", e[e.KEY_9 = 30] = "KEY_9", e[e.KEY_A = 31] = "KEY_A", e[e.KEY_B = 32] = "KEY_B", e[e.KEY_C = 33] = "KEY_C", e[e.KEY_D = 34] = "KEY_D", e[e.KEY_E = 35] = "KEY_E", e[e.KEY_F = 36] = "KEY_F", e[e.KEY_G = 37] = "KEY_G", e[e.KEY_H = 38] = "KEY_H", e[e.KEY_I = 39] = "KEY_I", e[e.KEY_J = 40] = "KEY_J", e[e.KEY_K = 41] = "KEY_K", e[e.KEY_L = 42] = "KEY_L", e[e.KEY_M = 43] = "KEY_M", e[e.KEY_N = 44] = "KEY_N", e[e.KEY_O = 45] = "KEY_O", e[e.KEY_P = 46] = "KEY_P", e[e.KEY_Q = 47] = "KEY_Q", e[e.KEY_R = 48] = "KEY_R", e[e.KEY_S = 49] = "KEY_S", e[e.KEY_T = 50] = "KEY_T", e[e.KEY_U = 51] = "KEY_U", e[e.KEY_V = 52] = "KEY_V", e[e.KEY_W = 53] = "KEY_W", e[e.KEY_X = 54] = "KEY_X", e[e.KEY_Y = 55] = "KEY_Y", e[e.KEY_Z = 56] = "KEY_Z", e[e.Meta = 57] = "Meta", e[e.ContextMenu = 58] = "ContextMenu", e[e.F1 = 59] = "F1", e[e.F2 = 60] = "F2", e[e.F3 = 61] = "F3", e[e.F4 = 62] = "F4", e[e.F5 = 63] = "F5", e[e.F6 = 64] = "F6", e[e.F7 = 65] = "F7", e[e.F8 = 66] = "F8", e[e.F9 = 67] = "F9", e[e.F10 = 68] = "F10", e[e.F11 = 69] = "F11", e[e.F12 = 70] = "F12", e[e.F13 = 71] = "F13", e[e.F14 = 72] = "F14", e[e.F15 = 73] = "F15", e[e.F16 = 74] = "F16", e[e.F17 = 75] = "F17", e[e.F18 = 76] = "F18", e[e.F19 = 77] = "F19", e[e.NumLock = 78] = "NumLock", e[e.ScrollLock = 79] = "ScrollLock", e[e.US_SEMICOLON = 80] = "US_SEMICOLON", e[e.US_EQUAL = 81] = "US_EQUAL", e[e.US_COMMA = 82] = "US_COMMA", e[e.US_MINUS = 83] = "US_MINUS", e[e.US_DOT = 84] = "US_DOT", e[e.US_SLASH = 85] = "US_SLASH", e[e.US_BACKTICK = 86] = "US_BACKTICK", e[e.US_OPEN_SQUARE_BRACKET = 87] = "US_OPEN_SQUARE_BRACKET", e[e.US_BACKSLASH = 88] = "US_BACKSLASH", e[e.US_CLOSE_SQUARE_BRACKET = 89] = "US_CLOSE_SQUARE_BRACKET", e[e.US_QUOTE = 90] = "US_QUOTE", e[e.OEM_8 = 91] = "OEM_8", e[e.OEM_102 = 92] = "OEM_102", e[e.NUMPAD_0 = 93] = "NUMPAD_0", e[e.NUMPAD_1 = 94] = "NUMPAD_1", e[e.NUMPAD_2 = 95] = "NUMPAD_2", e[e.NUMPAD_3 = 96] = "NUMPAD_3", e[e.NUMPAD_4 = 97] = "NUMPAD_4", e[e.NUMPAD_5 = 98] = "NUMPAD_5", e[e.NUMPAD_6 = 99] = "NUMPAD_6", e[e.NUMPAD_7 = 100] = "NUMPAD_7",e[e.NUMPAD_8 = 101] = "NUMPAD_8",e[e.NUMPAD_9 = 102] = "NUMPAD_9",e[e.NUMPAD_MULTIPLY = 103] = "NUMPAD_MULTIPLY",e[e.NUMPAD_ADD = 104] = "NUMPAD_ADD",e[e.NUMPAD_SEPARATOR = 105] = "NUMPAD_SEPARATOR",e[e.NUMPAD_SUBTRACT = 106] = "NUMPAD_SUBTRACT",e[e.NUMPAD_DECIMAL = 107] = "NUMPAD_DECIMAL",e[e.NUMPAD_DIVIDE = 108] = "NUMPAD_DIVIDE",e[e.KEY_IN_COMPOSITION = 109] = "KEY_IN_COMPOSITION",e[e.ABNT_C1 = 110] = "ABNT_C1",e[e.ABNT_C2 = 111] = "ABNT_C2",e[e.MAX_VALUE = 112] = "MAX_VALUE"
    }(t.KeyCode || (t.KeyCode = {}));
    var i = function () {
      function e() {
        this._keyCodeToStr = [], this._strToKeyCode = Object.create(null)
      }

      return e.prototype.define = function (e, t) {
        this._keyCodeToStr[e] = t, this._strToKeyCode[t.toLowerCase()] = e
      }, e.prototype.keyCodeToStr = function (e) {
        return this._keyCodeToStr[e]
      }, e.prototype.strToKeyCode = function (e) {
        return this._strToKeyCode[e.toLowerCase()] || 0
      }, e
    }(), o = new i, r = new i, s = new i;
    !function () {
      function e(e, t, n, i) {
        void 0 === n && (n = t), void 0 === i && (i = n), o.define(e,
            t), r.define(e, n), s.define(e, i)
      }

      e(0, "unknown"), e(1, "Backspace"), e(2, "Tab"), e(3, "Enter"), e(4,
          "Shift"), e(5, "Ctrl"), e(6, "Alt"), e(7, "PauseBreak"), e(8,
          "CapsLock"), e(9, "Escape"), e(10, "Space"), e(11, "PageUp"), e(12,
          "PageDown"), e(13, "End"), e(14, "Home"), e(15, "LeftArrow",
          "Left"), e(16, "UpArrow", "Up"), e(17, "RightArrow", "Right"), e(18,
          "DownArrow", "Down"), e(19, "Insert"), e(20, "Delete"), e(21, "0"), e(
          22, "1"), e(23, "2"), e(24, "3"), e(25, "4"), e(26, "5"), e(27,
          "6"), e(28, "7"), e(29, "8"), e(30, "9"), e(31, "A"), e(32, "B"), e(
          33, "C"), e(34, "D"), e(35, "E"), e(36, "F"), e(37, "G"), e(38,
          "H"), e(39, "I"), e(40, "J"), e(41, "K"), e(42, "L"), e(43, "M"), e(
          44, "N"), e(45, "O"), e(46, "P"), e(47, "Q"), e(48, "R"), e(49,
          "S"), e(50, "T"), e(51, "U"), e(52, "V"), e(53, "W"), e(54, "X"), e(
          55, "Y"), e(56, "Z"), e(57, "Meta"), e(58, "ContextMenu"), e(59,
          "F1"), e(60, "F2"), e(61, "F3"), e(62, "F4"), e(63, "F5"), e(64,
          "F6"), e(65, "F7"), e(66, "F8"), e(67, "F9"), e(68, "F10"), e(69,
          "F11"), e(70, "F12"), e(71, "F13"), e(72, "F14"), e(73, "F15"), e(74,
          "F16"), e(75, "F17"), e(76, "F18"), e(77, "F19"), e(78, "NumLock"), e(
          79, "ScrollLock"), e(80, ";", ";", "OEM_1"), e(81, "=", "=",
          "OEM_PLUS"), e(82, ",", ",", "OEM_COMMA"), e(83, "-", "-",
          "OEM_MINUS"), e(84, ".", ".", "OEM_PERIOD"), e(85, "/", "/",
          "OEM_2"), e(86, "`", "`", "OEM_3"), e(110, "ABNT_C1"), e(111,
          "ABNT_C2"), e(87, "[", "[", "OEM_4"), e(88, "\\", "\\", "OEM_5"), e(
          89, "]", "]", "OEM_6"), e(90, "'", "'", "OEM_7"), e(91, "OEM_8"), e(
          92, "OEM_102"), e(93, "NumPad0"), e(94, "NumPad1"), e(95,
          "NumPad2"), e(96, "NumPad3"), e(97, "NumPad4"), e(98, "NumPad5"),e(99,
          "NumPad6"),e(100, "NumPad7"),e(101, "NumPad8"),e(102, "NumPad9"),e(
          103, "NumPad_Multiply"),e(104, "NumPad_Add"),e(105,
          "NumPad_Separator"),e(106, "NumPad_Subtract"),e(107,
          "NumPad_Decimal"),e(108, "NumPad_Divide")
    }();
    !function (e) {
      e.toString = function (e) {
        return o.keyCodeToStr(e)
      }, e.fromString = function (e) {
        return o.strToKeyCode(e)
      }, e.toUserSettingsUS = function (e) {
        return r.keyCodeToStr(e)
      }, e.toUserSettingsGeneral = function (e) {
        return s.keyCodeToStr(e)
      }, e.fromUserSettings = function (e) {
        return r.strToKeyCode(e) || s.strToKeyCode(e)
      }
    }(t.KeyCodeUtils || (t.KeyCodeUtils = {}));
    var a;
    !function (e) {
      e[e.CtrlCmd = 2048] = "CtrlCmd", e[e.Shift = 1024] = "Shift", e[e.Alt = 512] = "Alt", e[e.WinCtrl = 256] = "WinCtrl", e[e.KeyCode = 255] = "KeyCode"
    }(a || (a = {}));
    !function (e) {
      e[e.CtrlCmd = 2048] = "CtrlCmd", e[e.Shift = 1024] = "Shift", e[e.Alt = 512] = "Alt", e[e.WinCtrl = 256] = "WinCtrl"
    }(t.KeyMod || (t.KeyMod = {})), t.KeyChord = function (e, t) {
      return (e | (65535 & t) << 16 >>> 0) >>> 0
    }, t.createKeybinding = function (e, t) {
      if (0 === e) {
        return null;
      }
      var i = (65535 & e) >>> 0, o = (4294901760 & e) >>> 16;
      return 0 !== o ? new l(n(i, t), n(o, t)) : n(i, t)
    }, t.createSimpleKeybinding = n;
    !function (e) {
      e[e.Simple = 1] = "Simple", e[e.Chord = 2] = "Chord"
    }(t.KeybindingType || (t.KeybindingType = {}));
    var u = function () {
      function e(e, t, n, i, o) {
        this.type = 1, this.ctrlKey = e, this.shiftKey = t, this.altKey = n, this.metaKey = i, this.keyCode = o
      }

      return e.prototype.equals = function (e) {
        return 1 === e.type && (this.ctrlKey === e.ctrlKey && this.shiftKey
            === e.shiftKey && this.altKey === e.altKey && this.metaKey
            === e.metaKey && this.keyCode === e.keyCode)
      }, e.prototype.isModifierKey = function () {
        return 0 === this.keyCode || 5 === this.keyCode || 57 === this.keyCode
            || 6 === this.keyCode || 4 === this.keyCode
      }, e.prototype.isDuplicateModifierCase = function () {
        return this.ctrlKey && 5 === this.keyCode || this.shiftKey && 4
            === this.keyCode || this.altKey && 6 === this.keyCode
            || this.metaKey && 57 === this.keyCode
      }, e
    }();
    t.SimpleKeybinding = u;
    var l = function () {
      return function (e, t) {
        this.type = 2, this.firstPart = e, this.chordPart = t
      }
    }();
    t.ChordKeybinding = l;
    var c = function () {
      return function (e, t, n, i, o, r) {
        this.ctrlKey = e, this.shiftKey = t, this.altKey = n, this.metaKey = i, this.keyLabel = o, this.keyAriaLabel = r
      }
    }();
    t.ResolvedKeybindingPart = c;
    var d = function () {
      return function () {
      }
    }();
    t.ResolvedKeybinding = d
  }), define(d[3], h([1, 0, 136]), function (e, t, n) {
    "use strict";

    function i(e) {
      for (var t = [], n = 1; n < arguments.length; n++) {
        t[n
        - 1] = arguments[n];
      }
      return Array.isArray(e) ? (e.forEach(function (e) {
        return e && e.dispose()
      }), []) : 0 !== t.length ? (i(e), i(t), []) : e ? (e.dispose(), e)
          : void 0
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.empty = Object.freeze({
      dispose: function () {
      }
    }), t.dispose = i, t.combinedDisposable = function (e) {
      return {
        dispose: function () {
          return i(e)
        }
      }
    }, t.toDisposable = function () {
      for (var e = [], t = 0; t < arguments.length; t++) {
        e[t] = arguments[t];
      }
      return {
        dispose: function () {
          for (var t = 0, n = e; t < n.length; t++) {
            (0, n[t])()
          }
        }
      }
    };
    var o = function () {
      function e() {
        this._toDispose = []
      }

      return e.prototype.dispose = function () {
        this._toDispose = i(this._toDispose)
      }, e.prototype._register = function (e) {
        return this._toDispose.push(e), e
      }, e
    }();
    t.Disposable = o;
    var r = function () {
      function e() {
      }

      return Object.defineProperty(e.prototype, "value", {
        set: function (e) {
          this._value && this._value.dispose(), this._value = e
        }, enumerable: !0, configurable: !0
      }), e.prototype.dispose = function () {
        this.value = null
      }, e
    }();
    t.OneDisposable = r;
    var s = function () {
      function e() {
        this.references = Object.create(null)
      }

      return e.prototype.acquire = function (e) {
        var t = this, i = this.references[e];
        i || (i = this.references[e] = {
          counter: 0,
          object: this.createReferencedObject(e)
        });
        var o = i.object, r = n.once(function () {
          0 == --i.counter && (t.destroyReferencedObject(
              i.object), delete t.references[e])
        });
        return i.counter++, {object: o, dispose: r}
      }, e
    }();
    t.ReferenceCollection = s;
    var a = function () {
      function e(e) {
        this.object = e
      }

      return e.prototype.dispose = function () {
      }, e
    }();
    t.ImmortalReference = a
  });
  /**
   * marked - a markdown parser
   * Copyright (c) 2011-2014, Christopher Jeffrey. (MIT Licensed)
   * https://github.com/chjj/marked
   */
  var g = {
    newline: /^\n+/,
    code: /^( {4}[^\n]+\n*)+/,
    fences: a,
    hr: /^( *[-*_]){3,} *(?:\n+|$)/,
    heading: /^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,
    nptable: a,
    lheading: /^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,
    blockquote: /^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,
    list: /^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,
    html: /^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,
    def: /^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,
    table: a,
    paragraph: /^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
    text: /^[^\n]+/
  };
  g.bullet = /(?:[*+-]|\d+\.)/, g.item = /^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/, g.item = s(
      g.item, "gm")(/bull/g, g.bullet)(), g.list = s(g.list)(/bull/g, g.bullet)(
      "hr", "\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def",
      "\\n+(?=" + g.def.source + ")")(), g.blockquote = s(g.blockquote)("def",
      g.def)(), g._tag = "(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b", g.html = s(
      g.html)("comment", /<!--[\s\S]*?-->/)("closed", /<(tag)[\s\S]+?<\/\1>/)(
      "closing", /<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,
      g._tag)(), g.paragraph = s(g.paragraph)("hr", g.hr)("heading", g.heading)(
      "lheading", g.lheading)("blockquote", g.blockquote)("tag", "<" + g._tag)(
      "def", g.def)(), g.normal = u({}, g), g.gfm = u({}, g.normal, {
    fences: /^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\s*\1 *(?:\n+|$)/,
    paragraph: /^/,
    heading: /^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/
  }), g.gfm.paragraph = s(g.paragraph)("(?!",
      "(?!" + g.gfm.fences.source.replace("\\1", "\\2") + "|"
      + g.list.source.replace("\\1", "\\3") + "|")(), g.tables = u({}, g.gfm, {
    nptable: /^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,
    table: /^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/
  }), e.rules = g, e.lex = function (t, n) {
    return new e(n).lex(t)
  }, e.prototype.lex = function (e) {
    return e = e.replace(/\r\n|\r/g, "\n").replace(/\t/g, "    ").replace(
        /\u00a0/g, " ").replace(/\u2424/g, "\n"), this.token(e, !0)
  }, e.prototype.token = function (e, t, n) {
    for (var i, o, r, s, a, u, l, c, d, e = e.replace(/^ +$/gm, "");
        e;) {
      if ((r = this.rules.newline.exec(e)) && (e = e.substring(
          r[0].length), r[0].length > 1 && this.tokens.push(
          {type: "space"})), r = this.rules.code.exec(e)) {
        e = e.substring(
            r[0].length), r = r[0].replace(/^ {4}/gm, ""), this.tokens.push({
          type: "code",
          text: this.options.pedantic ? r : r.replace(/\n+$/, "")
        });
      } else if (r = this.rules.fences.exec(e)) {
        e = e.substring(
            r[0].length), this.tokens.push({
          type: "code",
          lang: r[2],
          text: r[3] || ""
        });
      } else if (r = this.rules.heading.exec(e)) {
        e = e.substring(
            r[0].length), this.tokens.push(
            {type: "heading", depth: r[1].length, text: r[2]});
      } else if (t
          && (r = this.rules.nptable.exec(e))) {
        for (e = e.substring(r[0].length), u = {
          type: "table",
          header: r[1].replace(/^ *| *\| *$/g, "").split(/ *\| */),
          align: r[2].replace(/^ *|\| *$/g, "").split(/ *\| */),
          cells: r[3].replace(/\n$/, "").split("\n")
        }, c = 0; c < u.align.length; c++) {
          /^ *-+: *$/.test(u.align[c])
              ? u.align[c] = "right" : /^ *:-+: *$/.test(u.align[c])
                  ? u.align[c] = "center" : /^ *:-+ *$/.test(u.align[c])
                      ? u.align[c] = "left" : u.align[c] = null;
        }
        for (c = 0; c < u.cells.length; c++) {
          u.cells[c] = u.cells[c].split(
              / *\| */);
        }
        this.tokens.push(u)
      } else if (r = this.rules.lheading.exec(e)) {
        e = e.substring(
            r[0].length), this.tokens.push({
          type: "heading",
          depth: "=" === r[2] ? 1 : 2,
          text: r[1]
        });
      } else if (r = this.rules.hr.exec(e)) {
        e = e.substring(
            r[0].length), this.tokens.push(
            {type: "hr"});
      } else if (r = this.rules.blockquote.exec(
          e)) {
        e = e.substring(r[0].length), this.tokens.push(
            {type: "blockquote_start"}), r = r[0].replace(/^ *> ?/gm,
            ""), this.token(r, t, !0), this.tokens.push(
            {type: "blockquote_end"});
      } else if (r = this.rules.list.exec(e)) {
        for (e = e.substring(r[0].length), s = r[2], this.tokens.push({
          type: "list_start",
          ordered: s.length > 1
        }), i = !1, d = (r = r[0].match(this.rules.item)).length, c = 0; c < d;
            c++) {
          l = (u = r[c]).length, ~(u = u.replace(/^ *([*+-]|\d+\.) +/,
              "")).indexOf("\n ") && (l -= u.length, u = this.options.pedantic
              ? u.replace(/^ {1,4}/gm, "") : u.replace(
                  new RegExp("^ {1," + l + "}", "gm"),
                  "")), this.options.smartLists
          && c !== d - 1 && (s === (a = g.bullet.exec(r[c + 1])[0]) || s.length
              > 1
              && a.length > 1 || (e = r.slice(c + 1).join("\n") + e, c = d
                  - 1)), o = i || /\n\n(?!\s*$)/.test(u), c !== d - 1
          && (i = "\n"
              === u.charAt(u.length - 1), o || (o = i)), this.tokens.push(
              {type: o ? "loose_item_start" : "list_item_start"}), this.token(u,
              !1,
              n), this.tokens.push({type: "list_item_end"});
        }
        this.tokens.push({type: "list_end"})
      } else if (r = this.rules.html.exec(e)) {
        e = e.substring(
            r[0].length), this.tokens.push({
          type: this.options.sanitize ? "paragraph" : "html",
          pre: !this.options.sanitizer && ("pre" === r[1] || "script" === r[1]
              || "style" === r[1]),
          text: r[0]
        });
      } else if (!n && t && (r = this.rules.def.exec(e))) {
        e = e.substring(
            r[0].length), this.tokens.links[r[1].toLowerCase()] = {
          href: r[2],
          title: r[3]
        };
      } else if (t && (r = this.rules.table.exec(e))) {
        for (e = e.substring(r[0].length), u = {
          type: "table",
          header: r[1].replace(/^ *| *\| *$/g, "").split(/ *\| */),
          align: r[2].replace(/^ *|\| *$/g, "").split(/ *\| */),
          cells: r[3].replace(/(?: *\| *)?\n$/, "").split("\n")
        }, c = 0; c < u.align.length; c++) {
          /^ *-+: *$/.test(u.align[c])
              ? u.align[c] = "right" : /^ *:-+: *$/.test(u.align[c])
                  ? u.align[c] = "center" : /^ *:-+ *$/.test(u.align[c])
                      ? u.align[c] = "left" : u.align[c] = null;
        }
        for (c = 0; c < u.cells.length; c++) {
          u.cells[c] = u.cells[c].replace(
              /^ *\| *| *\| *$/g, "").split(/ *\| */);
        }
        this.tokens.push(u)
      } else if (t && (r = this.rules.paragraph.exec(e))) {
        e = e.substring(
            r[0].length), this.tokens.push({
          type: "paragraph",
          text: "\n" === r[1].charAt(r[1].length - 1) ? r[1].slice(0, -1) : r[1]
        });
      } else if (r = this.rules.text.exec(e)) {
        e = e.substring(
            r[0].length), this.tokens.push(
            {type: "text", text: r[0]});
      } else if (e) {
        throw new Error(
            "Infinite loop on byte: " + e.charCodeAt(0));
      }
    }
    return this.tokens
  };
  var m = {
    escape: /^\\([\\`*{}\[\]()#+\-.!_>])/,
    autolink: /^<([^ >]+(@|:\/)[^ >]+)>/,
    url: a,
    tag: /^<!--[\s\S]*?-->|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,
    link: /^!?\[(inside)\]\(href\)/,
    reflink: /^!?\[(inside)\]\s*\[([^\]]*)\]/,
    nolink: /^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,
    strong: /^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,
    em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
    code: /^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,
    br: /^ {2,}\n(?!\s*$)/,
    del: a,
    text: /^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/
  };
  m._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/, m._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/, m.link = s(
      m.link)("inside", m._inside)("href", m._href)(), m.reflink = s(m.reflink)(
      "inside", m._inside)(), m.normal = u({}, m), m.pedantic = u({}, m.normal,
      {
        strong: /^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
        em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
      }), m.gfm = u({}, m.normal, {
    escape: s(m.escape)("])", "~|])")(),
    url: /^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,
    del: /^~~(?=\S)([\s\S]*?\S)~~/,
    text: s(m.text)("]|", "~]|")("|", "|https?://|")()
  }), m.breaks = u({}, m.gfm, {
    br: s(m.br)("{2,}", "*")(),
    text: s(m.gfm.text)("{2,}", "*")()
  }), t.rules = m, t.output = function (e, n, i) {
    return new t(n, i).output(e)
  }, t.prototype.output = function (e) {
    for (var t, n, i, r, s = ""; e;) {
      if (r = this.rules.escape.exec(
          e)) {
        e = e.substring(
            r[0].length), s += r[1];
      } else if (r = this.rules.autolink.exec(
          e)) {
        e = e.substring(r[0].length), "@" === r[2] ? (n = ":"
        === r[1].charAt(6) ? this.mangle(r[1].substring(7)) : this.mangle(
            r[1]), i = this.mangle("mailto:") + n) : i = n = o(
            r[1]), s += this.renderer.link(i, null, n);
      } else if (this.inLink
          || !(r = this.rules.url.exec(e))) {
        if (r = this.rules.tag.exec(e)) {
          !this.inLink && /^<a /i.test(r[0])
              ? this.inLink = !0 : this.inLink && /^<\/a>/i.test(r[0])
              && (this.inLink = !1), e = e.substring(
              r[0].length), s += this.options.sanitize ? this.options.sanitizer
                  ? this.options.sanitizer(r[0]) : o(r[0])
              : r[0];
        } else if (r = this.rules.link.exec(e)) {
          e = e.substring(
              r[0].length), this.inLink = !0, s += this.outputLink(r, {
            href: r[2],
            title: r[3]
          }), this.inLink = !1;
        } else if ((r = this.rules.reflink.exec(e))
            || (r = this.rules.nolink.exec(e))) {
          if (e = e.substring(r[0].length), t = (r[2] || r[1]).replace(/\s+/g,
              " "), !(t = this.links[t.toLowerCase()]) || !t.href) {
            s += r[0].charAt(0), e = r[0].substring(1) + e;
            continue
          }
          this.inLink = !0, s += this.outputLink(r, t), this.inLink = !1
        } else if (r = this.rules.strong.exec(e)) {
          e = e.substring(
              r[0].length), s += this.renderer.strong(
              this.output(r[2] || r[1]));
        } else if (r = this.rules.em.exec(
            e)) {
          e = e.substring(r[0].length), s += this.renderer.em(
              this.output(r[2] || r[1]));
        } else if (r = this.rules.code.exec(
            e)) {
          e = e.substring(r[0].length), s += this.renderer.codespan(
              o(r[2], !0));
        } else if (r = this.rules.br.exec(e)) {
          e = e.substring(
              r[0].length), s += this.renderer.br();
        } else if (r = this.rules.del.exec(
            e)) {
          e = e.substring(r[0].length), s += this.renderer.del(
              this.output(r[1]));
        } else if (r = this.rules.text.exec(
            e)) {
          e = e.substring(r[0].length), s += this.renderer.text(
              o(this.smartypants(r[0])));
        } else if (e) {
          throw new Error(
              "Infinite loop on byte: " + e.charCodeAt(0))
        }
      } else {
        e = e.substring(r[0].length), i = n = o(
            r[1]), s += this.renderer.link(i, null, n);
      }
    }
    return s
  }, t.prototype.outputLink = function (e, t) {
    var n = o(t.href), i = t.title ? o(t.title) : null;
    return "!" !== e[0].charAt(0) ? this.renderer.link(n, i, this.output(e[1]))
        : this.renderer.image(n, i, o(e[1]))
  }, t.prototype.smartypants = function (e) {
    return this.options.smartypants ? e.replace(/---/g, "—").replace(/--/g,
        "–").replace(/(^|[-\u2014/(\[{"\s])'/g, "$1‘").replace(/'/g,
        "’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g, "$1“").replace(/"/g,
        "”").replace(/\.{3}/g, "…") : e
  }, t.prototype.mangle = function (e) {
    if (!this.options.mangle) {
      return e;
    }
    for (var t, n = "", i = e.length, o = 0; o < i; o++) {
      t = e.charCodeAt(
          o), Math.random() > .5 && (t = "x" + t.toString(16)), n += "&#" + t
          + ";";
    }
    return n
  }, n.prototype.code = function (e, t, n) {
    if (this.options.highlight) {
      var i = this.options.highlight(e, t);
      null != i && i !== e && (n = !0, e = i)
    }
    return t ? '<pre><code class="' + this.options.langPrefix + o(t, !0) + '">'
        + (n ? e : o(e, !0)) + "\n</code></pre>\n" : "<pre><code>" + (n ? e : o(
        e, !0)) + "\n</code></pre>"
  }, n.prototype.blockquote = function (e) {
    return "<blockquote>\n" + e + "</blockquote>\n"
  }, n.prototype.html = function (e) {
    return e
  }, n.prototype.heading = function (e, t, n) {
    return "<h" + t + ' id="' + this.options.headerPrefix
        + n.toLowerCase().replace(/[^\w]+/g, "-") + '">' + e + "</h" + t + ">\n"
  }, n.prototype.hr = function () {
    return this.options.xhtml ? "<hr/>\n" : "<hr>\n"
  }, n.prototype.list = function (e, t) {
    var n = t ? "ol" : "ul";
    return "<" + n + ">\n" + e + "</" + n + ">\n"
  }, n.prototype.listitem = function (e) {
    return "<li>" + e + "</li>\n"
  }, n.prototype.paragraph = function (e) {
    return "<p>" + e + "</p>\n"
  }, n.prototype.table = function (e, t) {
    return "<table>\n<thead>\n" + e + "</thead>\n<tbody>\n" + t
        + "</tbody>\n</table>\n"
  }, n.prototype.tablerow = function (e) {
    return "<tr>\n" + e + "</tr>\n"
  }, n.prototype.tablecell = function (e, t) {
    var n = t.header ? "th" : "td";
    return (t.align ? "<" + n + ' style="text-align:' + t.align + '">' : "<" + n
        + ">") + e + "</" + n + ">\n"
  }, n.prototype.strong = function (e) {
    return "<strong>" + e + "</strong>"
  }, n.prototype.em = function (e) {
    return "<em>" + e + "</em>"
  }, n.prototype.codespan = function (e) {
    return "<code>" + e + "</code>"
  }, n.prototype.br = function () {
    return this.options.xhtml ? "<br/>" : "<br>"
  }, n.prototype.del = function (e) {
    return "<del>" + e + "</del>"
  }, n.prototype.link = function (e, t, n) {
    if (this.options.sanitize) {
      try {
        var i = decodeURIComponent(r(e)).replace(/[^\w:]/g, "").toLowerCase()
      } catch (e) {
        return ""
      }
      if (0 === i.indexOf("javascript:") || 0 === i.indexOf("vbscript:") || 0
          === i.indexOf("data:")) {
        return ""
      }
    }
    var o = '<a href="' + e + '"';
    return t && (o += ' title="' + t + '"'), o += ">" + n + "</a>"
  }, n.prototype.image = function (e, t, n) {
    var i = '<img src="' + e + '" alt="' + n + '"';
    return t && (i += ' title="' + t + '"'), i += this.options.xhtml ? "/>"
        : ">"
  }, n.prototype.text = function (e) {
    return e
  }, i.parse = function (e, t, n) {
    return new i(t, n).parse(e)
  }, i.prototype.parse = function (e) {
    this.inline = new t(e.links, this.options,
        this.renderer), this.tokens = e.reverse();
    for (var n = ""; this.next();) {
      n += this.tok();
    }
    return n
  }, i.prototype.next = function () {
    return this.token = this.tokens.pop()
  }, i.prototype.peek = function () {
    return this.tokens[this.tokens.length - 1] || 0
  }, i.prototype.parseText = function () {
    for (var e = this.token.text; "text" === this.peek().type;) {
      e += "\n"
          + this.next().text;
    }
    return this.inline.output(e)
  }, i.prototype.tok = function () {
    switch (this.token.type) {
      case"space":
        return "";
      case"hr":
        return this.renderer.hr();
      case"heading":
        return this.renderer.heading(this.inline.output(this.token.text),
            this.token.depth, this.token.text);
      case"code":
        return this.renderer.code(this.token.text, this.token.lang,
            this.token.escaped);
      case"table":
        var e, t, n, i, o = "", r = "";
        for (n = "", e = 0; e < this.token.header.length; e++) {
          ({
            header: !0,
            align: this.token.align[e]
          }), n += this.renderer.tablecell(
              this.inline.output(this.token.header[e]),
              {header: !0, align: this.token.align[e]});
        }
        for (o += this.renderer.tablerow(n), e = 0; e < this.token.cells.length;
            e++) {
          for (t = this.token.cells[e], n = "", i = 0; i < t.length;
              i++) {
            n += this.renderer.tablecell(this.inline.output(t[i]),
                {header: !1, align: this.token.align[i]});
          }
          r += this.renderer.tablerow(n)
        }
        return this.renderer.table(o, r);
      case"blockquote_start":
        for (r = ""; "blockquote_end" !== this.next().type;) {
          r += this.tok();
        }
        return this.renderer.blockquote(r);
      case"list_start":
        for (var r = "", s = this.token.ordered;
            "list_end" !== this.next().type;) {
          r += this.tok();
        }
        return this.renderer.list(r, s);
      case"list_item_start":
        for (r = ""; "list_item_end" !== this.next().type;) {
          r += "text"
          === this.token.type ? this.parseText() : this.tok();
        }
        return this.renderer.listitem(r);
      case"loose_item_start":
        for (r = ""; "list_item_end" !== this.next().type;) {
          r += this.tok();
        }
        return this.renderer.listitem(r);
      case"html":
        var a = this.token.pre || this.options.pedantic ? this.token.text
            : this.inline.output(this.token.text);
        return this.renderer.html(a);
      case"paragraph":
        return this.renderer.paragraph(this.inline.output(this.token.text));
      case"text":
        return this.renderer.paragraph(this.parseText())
    }
  }, a.exec = a, l.options = l.setOptions = function (e) {
    return u(l.defaults, e), l
  }, l.defaults = {
    gfm: !0,
    tables: !0,
    breaks: !1,
    pedantic: !1,
    sanitize: !1,
    sanitizer: null,
    mangle: !0,
    smartLists: !1,
    silent: !1,
    highlight: null,
    langPrefix: "lang-",
    smartypants: !1,
    headerPrefix: "",
    renderer: new n,
    xhtml: !1
  }, l.Parser = i, l.parser = i.parse, l.Renderer = n, l.Lexer = e, l.lexer = e.lex, l.InlineLexer = t, l.inlineLexer = t.output, l.parse = l, define(
      "vs/base/common/marked/raw.marked", [], function () {
        return l
      }), define(d[209], h([552]), function (e) {
    return {marked: e}
  }), define(d[70], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e.inMemory = "inmemory", e.vscode = "vscode", e.internal = "private", e.walkThrough = "walkThrough", e.walkThroughSnippet = "walkThroughSnippet", e.http = "http", e.https = "https", e.file = "file", e.untitled = "untitled"
    }(t.Schemas || (t.Schemas = {}))
  }), define(d[15], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = !1, i = !1, o = !1, r = !1, s = !1, a = !1, u = void 0, l = void 0;
    if (t.LANGUAGE_DEFAULT = "en", "object" == typeof process) {
      n = "win32" === process.platform, i = "darwin"
          === process.platform, o = "linux" === process.platform, r = !n && 0
          === process.getuid();
      var c = process.env.VSCODE_NLS_CONFIG;
      if (c) {
        try {
          var d = JSON.parse(c), h = d.availableLanguages["*"];
          u = d.locale, l = h || t.LANGUAGE_DEFAULT
        } catch (e) {
        }
      }
      s = !0
    } else if ("object" == typeof navigator) {
      var p = navigator.userAgent;
      n = p.indexOf("Windows") >= 0, i = p.indexOf("Macintosh")
          >= 0, o = p.indexOf("Linux") >= 0, a = !0, l = u = navigator.language
    }
    var f;
    !function (e) {
      e[e.Web = 0] = "Web", e[e.Mac = 1] = "Mac", e[e.Linux = 2] = "Linux", e[e.Windows = 3] = "Windows"
    }(f = t.Platform || (t.Platform = {}));
    var g = f.Web;
    s && (i ? g = f.Mac : n ? g = f.Windows : o
        && (g = f.Linux)), t.isWindows = n, t.isMacintosh = i, t.isLinux = o, t.isRootUser = r, t.isNative = s, t.isWeb = a, t.platform = g, t.language = l, t.locale = u;
    var m = "object" == typeof self ? self : global;
    t.globals = m, t.hasWebWorkerSupport = function () {
      return void 0 !== m.Worker
    }, t.setTimeout = m.setTimeout.bind(
        m), t.clearTimeout = m.clearTimeout.bind(
        m), t.setInterval = m.setInterval.bind(
        m), t.clearInterval = m.clearInterval.bind(m);
    !function (e) {
      e[e.Windows = 1] = "Windows", e[e.Macintosh = 2] = "Macintosh", e[e.Linux = 3] = "Linux"
    }(t.OperatingSystem || (t.OperatingSystem = {})), t.OS = i ? 2 : n ? 1 : 3;
    !function (e) {
      e[e.Unknown = 0] = "Unknown", e[e.Disabled = 1] = "Disabled", e[e.Enabled = 2] = "Enabled"
    }(t.AccessibilitySupport || (t.AccessibilitySupport = {}))
  }), define(d[423], h([1, 0]), function (e, t) {
    "use strict";

    function n(e) {
      return 65 <= e && e <= 90
    }

    Object.defineProperty(t, "__esModule", {value: !0});/*!
    BEGIN THIRD PARTY
    */
    /*!
    * string_score.js: String Scoring Algorithm 0.1.22
    *
    * http://joshaven.com/string_score
    * https://github.com/joshaven/string_score
    *
    * Copyright (C) 2009-2014 Joshaven Potter <yourtech@gmail.com>
    * Special thanks to all of the contributors listed here https://github.com/joshaven/string_score
    * MIT License: http://opensource.org/licenses/MIT
    *
    * Date: Tue Mar 1 2011
    * Updated: Tue Mar 10 2015
    */
    var i = ["-", "_", " ", "/", "\\", "."];
    t.score = function (e, t, o) {
      if (!e || !t) {
        return 0;
      }
      var r = e + t, s = o && o[r];
      if ("number" == typeof s) {
        return s;
      }
      for (var a = t.length, u = e.toLowerCase(), l = t.toLowerCase(), c = 0,
          d = 0, h = 0; c < a && "break" !== function () {
        var o = u.indexOf(l[c], d);
        if (o < 0) {
          return h = 0, "break";
        }
        h += 1, d === o && (h += 5), e[o] === t[o] && (h += 1), 0 === o ? h += 8
            : i.some(function (t) {
              return t === e[o - 1]
            }) ? h += 7 : n(e.charCodeAt(o)) && (h += 1), d = o + 1, c++
      }();) {
        ;
      }
      return o && (o[r] = h), h
    }, t.matches = function (e, t) {
      if (!e || !t) {
        return !1;
      }
      for (var n = t.length, i = e.toLowerCase(), o = 0, r = -1; o < n;) {
        var s = i.indexOf(t[o], r + 1);
        if (s < 0) {
          return !1;
        }
        r = s, o++
      }
      return !0
    }
  }),/*!
END THIRD PARTY
*/
      define(d[426], h([1, 0, 15]), function (e, t, n) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var i = n.globals.performance && "function"
            == typeof n.globals.performance.now, o = function () {
          function e(e) {
            this._highResolution = i
                && e, this._startTime = this._now(), this._stopTime = -1
          }

          return e.create = function (t) {
            return void 0 === t && (t = !0), new e(t)
          }, e.prototype.stop = function () {
            this._stopTime = this._now()
          }, e.prototype.elapsed = function () {
            return -1 !== this._stopTime ? this._stopTime - this._startTime
                : this._now() - this._startTime
          }, e.prototype._now = function () {
            return this._highResolution ? n.globals.performance.now()
                : (new Date).getTime()
          }, e
        }();
        t.StopWatch = o
      }), define(d[29], h([1, 0]), function (e, t) {
    "use strict";

    function n(e) {
      return Array.isArray ? Array.isArray(e) : !(!e || typeof e.length
          !== u.number || e.constructor !== Array)
    }

    function i(e) {
      return typeof e === u.string || e instanceof String
    }

    function o(e) {
      return !(typeof e !== u.object || null === e || Array.isArray(e) || e
          instanceof RegExp || e instanceof Date)
    }

    function r(e) {
      return typeof e === u.undefined
    }

    function s(e) {
      return typeof e === u.function
    }

    function a(e, t) {
      if (i(t)) {
        if (typeof e !== t) {
          throw new Error(
              "argument does not match constraint: typeof " + t)
        }
      } else if (s(t)) {
        if (e instanceof t) {
          return;
        }
        if (e && e.constructor === t) {
          return;
        }
        if (1 === t.length && !0 === t.call(void 0, e)) {
          return;
        }
        throw new Error(
            "argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")
      }
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var u = {
      number: "number",
      string: "string",
      undefined: "undefined",
      object: "object",
      function: "function"
    };
    t.isArray = n, t.isString = i, t.isStringArray = function (e) {
      return n(e) && e.every(function (e) {
        return i(e)
      })
    }, t.isObject = o, t.isNumber = function (e) {
      return (typeof e === u.number || e instanceof Number) && !isNaN(e)
    }, t.isBoolean = function (e) {
      return !0 === e || !1 === e
    }, t.isUndefined = r, t.isUndefinedOrNull = function (e) {
      return r(e) || null === e
    };
    var l = Object.prototype.hasOwnProperty;
    t.isEmptyObject = function (e) {
      if (!o(e)) {
        return !1;
      }
      for (var t in e) {
        if (l.call(e, t)) {
          return !1;
        }
      }
      return !0
    }, t.isFunction = s, t.areFunctions = function () {
      for (var e = [], t = 0; t < arguments.length; t++) {
        e[t] = arguments[t];
      }
      return e && e.length > 0 && e.every(s)
    }, t.validateConstraints = function (e, t) {
      for (var n = Math.min(e.length, t.length), i = 0; i < n; i++) {
        a(e[i],
            t[i])
      }
    }, t.validateConstraint = a, t.create = function (e) {
      for (var t = [], n = 1; n < arguments.length; n++) {
        t[n
        - 1] = arguments[n];
      }
      var i = Object.create(e.prototype);
      return e.apply(i, t), i
    }
  }), define(d[428], h([1, 0, 29, 157]), function (e, t, n, i) {
    "use strict";

    function o(e) {
      return {
        data: e,
        incoming: Object.create(null),
        outgoing: Object.create(null)
      }
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e(e) {
        this._hashFn = e, this._nodes = Object.create(null)
      }

      return e.prototype.roots = function () {
        var e = [];
        return i.forEach(this._nodes, function (t) {
          n.isEmptyObject(t.value.outgoing) && e.push(t.value)
        }), e
      }, e.prototype.traverse = function (e, t, n) {
        var i = this.lookup(e);
        i && this._traverse(i, t, Object.create(null), n)
      }, e.prototype._traverse = function (e, t, n, o) {
        var r = this, s = this._hashFn(e.data);
        if (!n[s]) {
          n[s] = !0, o(e.data);
          var a = t ? e.outgoing : e.incoming;
          i.forEach(a, function (e) {
            return r._traverse(e.value, t, n, o)
          })
        }
      }, e.prototype.insertEdge = function (e, t) {
        var n = this.lookupOrInsertNode(e), i = this.lookupOrInsertNode(t);
        n.outgoing[this._hashFn(t)] = i, i.incoming[this._hashFn(e)] = n
      }, e.prototype.removeNode = function (e) {
        var t = this._hashFn(e);
        delete this._nodes[t], i.forEach(this._nodes, function (e) {
          delete e.value.outgoing[t], delete e.value.incoming[t]
        })
      }, e.prototype.lookupOrInsertNode = function (e) {
        var t = this._hashFn(e), n = this._nodes[t];
        return n || (n = o(e), this._nodes[t] = n), n
      }, e.prototype.lookup = function (e) {
        return this._nodes[this._hashFn(e)]
      }, Object.defineProperty(e.prototype, "length", {
        get: function () {
          return Object.keys(this._nodes).length
        }, enumerable: !0, configurable: !0
      }), e.prototype.toString = function () {
        var e = [];
        return i.forEach(this._nodes, function (t) {
          e.push(
              t.key + ", (incoming)[" + Object.keys(t.value.incoming).join(", ")
              + "], (outgoing)[" + Object.keys(t.value.outgoing).join(",")
              + "]")
        }), e.join("\n")
      }, e
    }();
    t.Graph = r
  }), define(d[26], h([1, 0, 29]), function (e, t, n) {
    "use strict";

    function i(e) {
      if (!e || "object" != typeof e) {
        return e;
      }
      if (e instanceof RegExp) {
        return e;
      }
      var t = Array.isArray(e) ? [] : {};
      return Object.keys(e).forEach(function (n) {
        e[n] && "object" == typeof e[n] ? t[n] = i(e[n]) : t[n] = e[n]
      }), t
    }

    function o(e) {
      if (!e || "object" != typeof e) {
        return e;
      }
      var t = Array.isArray(e) ? [] : {};
      return Object.getOwnPropertyNames(e).forEach(function (n) {
        e[n] && "object" == typeof e[n] ? t[n] = o(e[n]) : t[n] = e[n]
      }), t
    }

    function r(e, t, i) {
      if (n.isUndefinedOrNull(e)) {
        return e;
      }
      var o = t(e);
      if (void 0 !== o) {
        return o;
      }
      if (n.isArray(e)) {
        for (var s = [], a = 0; a < e.length; a++) {
          s.push(r(e[a], t, i));
        }
        return s
      }
      if (n.isObject(e)) {
        if (i.indexOf(e) >= 0) {
          throw new Error(
              "Cannot clone recursive data-structure");
        }
        i.push(e);
        var u = {};
        for (var l in e) {
          c.call(e, l) && (u[l] = r(e[l], t, i));
        }
        return i.pop(), u
      }
      return e
    }

    function s(e, t, i) {
      return void 0 === i && (i = !0), n.isObject(e) ? (n.isObject(t)
      && Object.keys(t).forEach(function (o) {
        o in e ? i && (n.isObject(e[o]) && n.isObject(t[o]) ? s(e[o], t[o], i)
            : e[o] = t[o]) : e[o] = t[o]
      }), e) : t
    }

    function a(e) {
      for (var t = [], n = 1; n < arguments.length; n++) {
        t[n
        - 1] = arguments[n];
      }
      return t.forEach(function (t) {
        return Object.keys(t).forEach(function (n) {
          return e[n] = t[n]
        })
      }), e
    }

    function u(e, t) {
      if (e === t) {
        return !0;
      }
      if (null === e || void 0 === e || null === t || void 0 === t) {
        return !1;
      }
      if (typeof e != typeof t) {
        return !1;
      }
      if ("object" != typeof e) {
        return !1;
      }
      if (Array.isArray(e) !== Array.isArray(t)) {
        return !1;
      }
      var n, i;
      if (Array.isArray(e)) {
        if (e.length !== t.length) {
          return !1;
        }
        for (n = 0; n < e.length; n++) {
          if (!u(e[n], t[n])) {
            return !1
          }
        }
      } else {
        var o = [];
        for (i in e) {
          o.push(i);
        }
        o.sort();
        var r = [];
        for (i in t) {
          r.push(i);
        }
        if (r.sort(), !u(o, r)) {
          return !1;
        }
        for (n = 0; n < o.length; n++) {
          if (!u(e[o[n]], t[o[n]])) {
            return !1
          }
        }
      }
      return !0
    }

    function l(e) {
      for (var t = {}, n = 0; n < e.length; ++n) {
        t[e[n]] = !0;
      }
      return t
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.clone = i, t.deepClone = o;
    var c = Object.prototype.hasOwnProperty;
    t.cloneAndChange = function (e, t) {
      return r(e, t, [])
    }, t.mixin = s, t.assign = a, t.toObject = function (e, t) {
      return e.reduce(function (e, n) {
        return a(e, (i = {}, i[t(n)] = n, i));
        var i
      }, Object.create(null))
    }, t.equals = u, t.ensureProperty = function (e, t, n) {
      void 0 === e[t] && (e[t] = n)
    }, t.arrayToHash = l, t.createKeywordMatcher = function (e, t) {
      void 0 === t && (t = !1), t && (e = e.map(function (e) {
        return e.toLowerCase()
      }));
      var n = l(e);
      return t ? function (e) {
        return void 0 !== n[e.toLowerCase()] && n.hasOwnProperty(
            e.toLowerCase())
      } : function (e) {
        return void 0 !== n[e] && n.hasOwnProperty(e)
      }
    }, t.derive = function (e, t) {
      for (var n in e) {
        e.hasOwnProperty(n) && (t[n] = e[n]);
      }
      t = t || function () {
      };
      var i = e.prototype, o = t.prototype;
      t.prototype = Object.create(i);
      for (var n in o) {
        o.hasOwnProperty(n) && Object.defineProperty(t.prototype,
            n, Object.getOwnPropertyDescriptor(o, n));
      }
      Object.defineProperty(t.prototype, "constructor",
          {value: t, writable: !0, configurable: !0, enumerable: !0})
    }, t.safeStringify = function (e) {
      var t = [];
      return JSON.stringify(e, function (e, i) {
        if (n.isObject(i) || Array.isArray(i)) {
          if (-1 !== t.indexOf(i)) {
            return "[Circular]";
          }
          t.push(i)
        }
        return i
      })
    }, t.getOrDefault = function (e, t, n) {
      void 0 === n && (n = null);
      var i = t(e);
      return void 0 === i ? n : i
    }, t.distinct = function (e, t) {
      var n = Object.create(null);
      return e && t ? (Object.keys(t).forEach(function (i) {
        var o = e[i], r = t[i];
        u(o, r) || (n[i] = r)
      }), n) : n
    }
  }), define(d[24], h([1, 0, 15]), function (e, t, n) {
    "use strict";

    function i(e) {
      return "%" + e.charCodeAt(0).toString(16).toUpperCase()
    }

    function o(e) {
      return encodeURIComponent(e).replace(/[!'()*]/g, i)
    }

    function r(e) {
      return e.replace(/[#?]/, i)
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      function e(t, n, i, o, r) {
        this._formatted = null, this._fsPath = null, this.scheme = t
            || e._empty, this.authority = n || e._empty, this.path = i
            || e._empty, this.query = o || e._empty, this.fragment = r
            || e._empty, this._validate(this)
      }

      return e.isUri = function (t) {
        return t instanceof e || !!t && ("string" == typeof t.authority
            && "string" == typeof t.fragment && "string" == typeof t.path
            && "string" == typeof t.query && "string" == typeof t.scheme)
      }, Object.defineProperty(e.prototype, "fsPath", {
        get: function () {
          if (!this._fsPath) {
            var t = void 0;
            t = this.authority && this.path && "file" === this.scheme ? "//"
                + this.authority + this.path : e._driveLetterPath.test(
                this.path) ? this.path[1].toLowerCase() + this.path.substr(2)
                : this.path, n.isWindows && (t = t.replace(/\//g,
                "\\")), this._fsPath = t
          }
          return this._fsPath
        }, enumerable: !0, configurable: !0
      }), e.prototype.with = function (t) {
        if (!t) {
          return this;
        }
        var n = t.scheme, i = t.authority, o = t.path, r = t.query,
            s = t.fragment;
        return void 0 === n ? n = this.scheme : null === n && (n = ""), void 0
        === i ? i = this.authority : null === i && (i = ""), void 0 === o
            ? o = this.path : null === o && (o = ""), void 0 === r
            ? r = this.query : null === r && (r = ""), void 0 === s
            ? s = this.fragment : null === s && (s = ""), n === this.scheme && i
        === this.authority && o === this.path && r === this.query && s
        === this.fragment ? this : new e(n, i, o, r, s)
      }, e.parse = function (t) {
        var n = e._regexp.exec(t);
        return n ? new e(n[2] || e._empty, decodeURIComponent(n[4] || e._empty),
            decodeURIComponent(n[5] || e._empty),
            decodeURIComponent(n[7] || e._empty),
            decodeURIComponent(n[9] || e._empty)) : new e(e._empty, e._empty,
            e._empty, e._empty, e._empty)
      }, e.file = function (t) {
        var i = e._empty;
        if (n.isWindows && (t = t.replace(/\\/g, e._slash)), t[0] === e._slash
        && t[0] === t[1]) {
          var o = t.indexOf(e._slash, 2);
          -1 === o ? (i = t.substring(2), t = e._empty) : (i = t.substring(2,
              o), t = t.substring(o))
        }
        return t[0] !== e._slash && (t = e._slash + t), new e("file", i, t,
            e._empty, e._empty)
      }, e.from = function (t) {
        return new e(t.scheme, t.authority, t.path, t.query, t.fragment)
      }, e.prototype._validate = function (t) {
        if (t.scheme && !e._schemePattern.test(t.scheme)) {
          throw new Error(
              "[UriError]: Scheme contains illegal characters.");
        }
        if (t.path) {
          if (t.authority) {
            if (!e._singleSlashStart.test(t.path)) {
              throw new Error(
                  '[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')
            }
          } else if (e._doubleSlashStart.test(t.path)) {
            throw new Error(
                '[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')
          }
        }
      }, e.prototype.toString = function (t) {
        return void 0 === t && (t = !1), t ? e._asFormatted(this, !0)
            : (this._formatted || (this._formatted = e._asFormatted(this,
                !1)), this._formatted)
      }, e._asFormatted = function (t, n) {
        var i = n ? r : o, s = [], a = t.scheme, u = t.authority, l = t.path,
            c = t.query, d = t.fragment;
        if (a && s.push(a, ":"), (u || "file" === a) && s.push("//"), u && (-1
        === (f = (u = u.toLowerCase()).indexOf(":")) ? s.push(i(u)) : s.push(
            i(u.substr(0, f)), u.substr(f))), l) {
          var h = e._upperCaseDrive.exec(l);
          h && (l = h[1] ? "/" + h[2].toLowerCase() + l.substr(3)
              : h[2].toLowerCase() + l.substr(2));
          for (var p = 0; ;) {
            var f = l.indexOf(e._slash, p);
            if (-1 === f) {
              s.push(i(l.substring(p)));
              break
            }
            s.push(i(l.substring(p, f)), e._slash), p = f + 1
          }
        }
        return c && s.push("?", i(c)), d && s.push("#", i(d)), s.join(e._empty)
      }, e.prototype.toJSON = function () {
        var e = {fsPath: this.fsPath, external: this.toString(), $mid: 1};
        return this.path && (e.path = this.path), this.scheme
        && (e.scheme = this.scheme), this.authority
        && (e.authority = this.authority), this.query
        && (e.query = this.query), this.fragment
        && (e.fragment = this.fragment), e
      }, e.revive = function (t) {
        var n = new e(t.scheme, t.authority, t.path, t.query, t.fragment);
        return n._fsPath = t.fsPath, n._formatted = t.external, n
      }, e._empty = "", e._slash = "/", e._regexp = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/, e._driveLetterPath = /^\/[a-zA-z]:/, e._upperCaseDrive = /^(\/)?([A-Z]:)/, e._schemePattern = /^\w[\w\d+.-]*$/, e._singleSlashStart = /^\//, e._doubleSlashStart = /^\/\//, e
    }();
    t.default = s
  }), define(d[80], h([1, 0, 24]), function (e, t, n) {
    "use strict";

    function i(e) {
      var t = [];
      return e.forEach(function (e) {
        return t.push(e)
      }), t
    }

    function o(e) {
      var t = [];
      return e.forEach(function (e, n) {
        return t.push(n)
      }), t
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.values = i, t.keys = o, t.getOrSet = function (e, t,
        n) {
      var i = e.get(t);
      return void 0 === i && (i = n, e.set(t, i)), i
    };
    var r = function () {
      function e(e, t, n) {
        void 0 === e && (e = Number.MAX_VALUE), void 0 === t && (t = 1);
        var i = this;
        this.limit = e, this.map = new Map, this.ratio = e * t, n
        && n.entries.forEach(function (e) {
          i.set(e.key, e.value)
        })
      }

      return e.prototype.setLimit = function (e) {
        if (!(e < 0)) {
          for (this.limit = e;
              this.map.size > this.limit;) {
            this.trim()
          }
        }
      }, e.prototype.serialize = function () {
        var e = {entries: []};
        return this.map.forEach(function (t) {
          e.entries.push({key: t.key, value: t.value})
        }), e
      }, Object.defineProperty(e.prototype, "size", {
        get: function () {
          return this.map.size
        }, enumerable: !0, configurable: !0
      }), e.prototype.set = function (e, t) {
        if (this.map.has(e)) {
          return !1;
        }
        var n = {key: e, value: t};
        return this.push(n), this.size > this.limit && this.trim(), !0
      }, e.prototype.get = function (e) {
        var t = this.map.get(e);
        return t ? t.value : null
      }, e.prototype.getOrSet = function (e, t) {
        var n = this.get(e);
        return n || (this.set(e, t), t)
      }, e.prototype.delete = function (e) {
        var t = this.map.get(e);
        return t ? (this.map.delete(e), t.next ? t.next.prev = t.prev
            : this.head = t.prev, t.prev ? t.prev.next = t.next
            : this.tail = t.next, t.value) : null
      }, e.prototype.has = function (e) {
        return this.map.has(e)
      }, e.prototype.clear = function () {
        this.map.clear(), this.head = null, this.tail = null
      }, e.prototype.push = function (e) {
        this.head && (e.prev = this.head, this.head.next = e), this.tail
        || (this.tail = e), this.head = e, this.map.set(e.key, e)
      }, e.prototype.trim = function () {
        if (this.tail) {
          if (this.ratio < this.limit) {
            for (var e = 0,
                t = this.tail; t.next;) {
              if (this.map.delete(t.key), e === this.ratio) {
                this.tail = t.next, this.tail.prev = null;
                break
              }
              t = t.next, e++
            }
          } else {
            this.map.delete(
                this.tail.key), this.tail = this.tail.next, this.tail
            && (this.tail.prev = null)
          }
        }
      }, e
    }();
    t.BoundedMap = r;
    var s = function () {
      return function () {
        this.children = new Map
      }
    }(), a = function () {
      function e(e) {
        this._root = new s, this._splitter = function (t) {
          return e(t).filter(function (e) {
            return Boolean(e)
          })
        }
      }

      return e.prototype.insert = function (e, t) {
        for (var n = this._splitter(e), i = 0, o = this._root; i < n.length;
            i++) {
          var r = o.children.get(n[i]);
          if (!r) {
            break;
          }
          o = r
        }
        for (var a; i < n.length; i++) {
          a = new s, o.children.set(n[i],
              a), o = a;
        }
        o.element = t
      }, e.prototype.lookUp = function (e) {
        for (var t, n = this._splitter(e), i = this._root.children, o = 0,
            r = n; o < r.length; o++) {
          var s = r[o];
          if (!(t = i.get(s))) {
            return;
          }
          i = t.children
        }
        return t.element
      }, e.prototype.findSubstr = function (e) {
        for (var t, n = this._splitter(e), i = this._root.children, o = 0,
            r = n; o < r.length; o++) {
          var s = r[o], a = i.get(s);
          if (!a) {
            break;
          }
          a.element && (t = a), i = a.children
        }
        if (t) {
          return t.element
        }
      }, e.prototype.findSuperstr = function (t) {
        for (var n, i = this._splitter(t), o = this._root.children, r = 0,
            s = i; r < s.length; r++) {
          var a = s[r];
          if (!(n = o.get(a))) {
            return;
          }
          o = n.children
        }
        var u = new e(this._splitter);
        return u._root = n, u
      }, e.PathSplitter = function (e) {
        return e.split(/[\\/]/).filter(function (e) {
          return !!e
        })
      }, e
    }();
    t.TrieMap = a;
    var u = function () {
      function e(e) {
        this.ignoreCase = e, this.map = new Map
      }

      return e.prototype.set = function (e, t) {
        this.map.set(this.toKey(e), t)
      }, e.prototype.get = function (e) {
        return this.map.get(this.toKey(e))
      }, e.prototype.has = function (e) {
        return this.map.has(this.toKey(e))
      }, Object.defineProperty(e.prototype, "size", {
        get: function () {
          return this.map.size
        }, enumerable: !0, configurable: !0
      }), e.prototype.clear = function () {
        this.map.clear()
      }, e.prototype.delete = function (e) {
        return this.map.delete(this.toKey(e))
      }, e.prototype.forEach = function (e) {
        this.map.forEach(e)
      }, e.prototype.values = function () {
        return i(this.map)
      }, e.prototype.toKey = function (e) {
        var t = e.toString();
        return this.ignoreCase && (t = t.toLowerCase()), t
      }, e
    }();
    t.ResourceMap = u;
    var l = function (e) {
      function t() {
        return e.call(this) || this
      }

      return f(t, e), t.prototype.keys = function () {
        return o(this.map).map(function (e) {
          return n.default.parse(e)
        })
      }, t
    }(u);
    t.StrictResourceMap = l;
    var c;
    !function (e) {
      e.None = 0, e.First = 1, e.Last = 2
    }(c = t.Touch || (t.Touch = {}));
    var d = function () {
      function e() {
        this._map = new Map, this._head = void 0, this._tail = void 0, this._size = 0
      }

      return e.prototype.clear = function () {
        this._map.clear(), this._head = void 0, this._tail = void 0, this._size = 0
      }, e.prototype.isEmpty = function () {
        return !this._head && !this._tail
      }, Object.defineProperty(e.prototype, "size", {
        get: function () {
          return this._size
        }, enumerable: !0, configurable: !0
      }), e.prototype.has = function (e) {
        return this._map.has(e)
      }, e.prototype.get = function (e) {
        var t = this._map.get(e);
        if (t) {
          return t.value
        }
      }, e.prototype.set = function (e, t, n) {
        void 0 === n && (n = c.None);
        var i = this._map.get(e);
        if (i) {
          i.value = t, n !== c.None && this.touch(i, n);
        } else {
          switch (i = {key: e, value: t, next: void 0, previous: void 0}, n) {
            case c.None:
              this.addItemLast(i);
              break;
            case c.First:
              this.addItemFirst(i);
              break;
            case c.Last:
            default:
              this.addItemLast(i)
          }
          this._map.set(e, i), this._size++
        }
      }, e.prototype.delete = function (e) {
        return !!this.remove(e)
      }, e.prototype.remove = function (e) {
        var t = this._map.get(e);
        if (t) {
          return this._map.delete(e), this.removeItem(
              t), this._size--, t.value
        }
      }, e.prototype.shift = function () {
        if (this._head || this._tail) {
          if (!this._head || !this._tail) {
            throw new Error("Invalid list");
          }
          var e = this._head;
          return this._map.delete(e.key), this.removeItem(
              e), this._size--, e.value
        }
      }, e.prototype.forEach = function (e, t) {
        for (var n = this._head; n;) {
          t ? e.bind(t)(n.value, n.key, this) : e(
              n.value, n.key, this), n = n.next
        }
      }, e.prototype.forEachReverse = function (e, t) {
        for (var n = this._tail; n;) {
          t ? e.bind(t)(n.value, n.key, this) : e(
              n.value, n.key, this), n = n.previous
        }
      }, e.prototype.values = function () {
        for (var e = [], t = this._head; t;) {
          e.push(t.value), t = t.next;
        }
        return e
      }, e.prototype.keys = function () {
        for (var e = [], t = this._head; t;) {
          e.push(t.key), t = t.next;
        }
        return e
      }, e.prototype.addItemFirst = function (e) {
        if (this._head || this._tail) {
          if (!this._head) {
            throw new Error("Invalid list");
          }
          e.next = this._head, this._head.previous = e
        } else {
          this._tail = e;
        }
        this._head = e
      }, e.prototype.addItemLast = function (e) {
        if (this._head || this._tail) {
          if (!this._tail) {
            throw new Error("Invalid list");
          }
          e.previous = this._tail, this._tail.next = e
        } else {
          this._head = e;
        }
        this._tail = e
      }, e.prototype.removeItem = function (e) {
        if (e === this._head && e
            === this._tail) {
          this._head = void 0, this._tail = void 0;
        } else if (e
            === this._head) {
          this._head = e.next;
        } else if (e
            === this._tail) {
          this._tail = e.previous;
        } else {
          var t = e.next, n = e.previous;
          if (!t || !n) {
            throw new Error("Invalid list");
          }
          t.previous = n, n.next = t
        }
      }, e.prototype.touch = function (e, t) {
        if (!this._head || !this._tail) {
          throw new Error("Invalid list");
        }
        if (t === c.First || t === c.Last) {
          if (t === c.First) {
            if (e === this._head) {
              return;
            }
            var n = e.next, i = e.previous;
            e === this._tail ? (i.next = void 0, this._tail = i)
                : (n.previous = i, i.next = n), e.previous = void 0, e.next = this._head, this._head.previous = e, this._head = e
          } else if (t === c.Last) {
            if (e === this._tail) {
              return;
            }
            var n = e.next, i = e.previous;
            e === this._head ? (n.previous = void 0, this._head = n)
                : (n.previous = i, i.next = n), e.next = void 0, e.previous = this._tail, this._tail.next = e, this._tail = e
          }
        }
      }, e
    }();
    t.LinkedMap = d
  }), define(d[487], h([1, 0, 24]), function (e, t, n) {
    "use strict";

    function i(e, t) {
      return t instanceof RegExp ? {
        $mid: 2,
        source: t.source,
        flags: (t.global ? "g" : "") + (t.ignoreCase ? "i" : "") + (t.multiline
            ? "m" : "")
      } : t
    }

    function o(e, t) {
      var i;
      switch (void 0 !== t && null !== t && (i = t.$mid), i) {
        case 1:
          return n.default.revive(t);
        case 2:
          return new RegExp(t.source, t.flags);
        default:
          return t
      }
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.stringify = function (e) {
      return JSON.stringify(e, i)
    }, t.parse = function (e) {
      return JSON.parse(e, o)
    }
  }), define(d[9], h([1, 0, 80]), function (e, t, n) {
    "use strict";

    function i(e) {
      return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\[\]\(\)\#]/g, "\\$&")
    }

    function o(e, t) {
      if (!e || !t) {
        return e;
      }
      var n = t.length;
      if (0 === n || 0 === e.length) {
        return e;
      }
      for (var i = 0; e.indexOf(t, i) === i;) {
        i += n;
      }
      return e.substring(i)
    }

    function r(e, t) {
      if (!e || !t) {
        return e;
      }
      var n = t.length, i = e.length;
      if (0 === n || 0 === i) {
        return e;
      }
      for (var o = i, r = -1; ;) {
        if (-1 === (r = e.lastIndexOf(t, o - 1)) || r + n !== o) {
          break;
        }
        if (0 === r) {
          return "";
        }
        o = r
      }
      return e.substring(0, o)
    }

    function s(e, t) {
      return e < t ? -1 : e > t ? 1 : 0
    }

    function a(e) {
      return e >= 97 && e <= 122
    }

    function u(e) {
      return e >= 65 && e <= 90
    }

    function l(e) {
      return a(e) || u(e)
    }

    function c(e, t, n) {
      if (void 0 === n && (n = e.length), "string" != typeof e || "string"
      != typeof t) {
        return !1;
      }
      for (var i = 0; i < n; i++) {
        var o = e.charCodeAt(i), r = t.charCodeAt(i);
        if (o !== r) {
          if (l(o) && l(r)) {
            var s = Math.abs(o - r);
            if (0 !== s && 32 !== s) {
              return !1
            }
          } else if (String.fromCharCode(o).toLowerCase()
              !== String.fromCharCode(
                  r).toLowerCase()) {
            return !1
          }
        }
      }
      return !0
    }

    function d(e, t, n, i, o, r) {
      for (; t < n && o < r;) {
        if (e[t] !== i[o]) {
          return !1;
        }
        t += 1, o += 1
      }
      return !0
    }

    function h(e) {
      return (e = +e) >= 11904 && e <= 55215 || e >= 63744 && e <= 64255 || e
          >= 65281 && e <= 65374
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.empty = "", t.isFalsyOrWhitespace = function (e) {
      return !e || "string" != typeof e || 0 === e.trim().length
    }, t.pad = function (e, t, n) {
      void 0 === n && (n = "0");
      for (var i = "" + e, o = [i], r = i.length; r < t; r++) {
        o.push(n);
      }
      return o.reverse().join("")
    };
    var p = /{(\d+)}/g;
    t.format = function (e) {
      for (var t = [], n = 1; n < arguments.length; n++) {
        t[n
        - 1] = arguments[n];
      }
      return 0 === t.length ? e : e.replace(p, function (e, n) {
        var i = parseInt(n, 10);
        return isNaN(i) || i < 0 || i >= t.length ? e : t[i]
      })
    }, t.escape = function (e) {
      return e.replace(/[<|>|&]/g, function (e) {
        switch (e) {
          case"<":
            return "&lt;";
          case">":
            return "&gt;";
          case"&":
            return "&amp;";
          default:
            return e
        }
      })
    }, t.escapeRegExpCharacters = i, t.trim = function (e, t) {
      return void 0 === t && (t = " "), r(o(e, t), t)
    }, t.ltrim = o, t.rtrim = r, t.convertSimple2RegExpPattern = function (e) {
      return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, "\\$&").replace(
          /[\*]/g, ".*")
    }, t.stripWildcards = function (e) {
      return e.replace(/\*/g, "")
    }, t.startsWith = function (e, t) {
      if (e.length < t.length) {
        return !1;
      }
      for (var n = 0; n < t.length; n++) {
        if (e[n] !== t[n]) {
          return !1;
        }
      }
      return !0
    }, t.endsWith = function (e, t) {
      var n = e.length - t.length;
      return n > 0 ? e.indexOf(t, n) === n : 0 === n && e === t
    }, t.indexOfIgnoreCase = function (e, t, n) {
      void 0 === n && (n = 0);
      var o = e.indexOf(t, n);
      return o < 0 && (n > 0 && (e = e.substr(n)), t = i(t), o = e.search(
          new RegExp(t, "i"))), o
    }, t.createRegExp = function (e, t, n) {
      if (void 0 === n && (n = {}), !e) {
        throw new Error(
            "Cannot create regex from empty string");
      }
      t || (e = i(e)), n.wholeWord && (/\B/.test(e.charAt(0)) || (e = "\\b"
          + e), /\B/.test(e.charAt(e.length - 1)) || (e += "\\b"));
      var o = "";
      return n.global && (o += "g"), n.matchCase || (o += "i"), n.multiline
      && (o += "m"), new RegExp(e, o)
    }, t.regExpLeadsToEndlessLoop = function (e) {
      return "^" !== e.source && "^$" !== e.source && "$" !== e.source
          && e.exec("") && 0 === e.lastIndex
    }, t.canNormalize = "function" == typeof "".normalize;
    var f = /[^\u0000-\u0080]/, g = new n.BoundedMap(1e4);
    t.normalizeNFC = function (e) {
      if (!t.canNormalize || !e) {
        return e;
      }
      var n = g.get(e);
      if (n) {
        return n;
      }
      var i;
      return i = f.test(e) ? e.normalize("NFC") : e, g.set(e, i), i
    }, t.firstNonWhitespaceIndex = function (e) {
      for (var t = 0, n = e.length; t < n; t++) {
        var i = e.charCodeAt(t);
        if (32 !== i && 9 !== i) {
          return t
        }
      }
      return -1
    }, t.getLeadingWhitespace = function (e, t, n) {
      void 0 === t && (t = 0), void 0 === n && (n = e.length);
      for (var i = t; i < n; i++) {
        var o = e.charCodeAt(i);
        if (32 !== o && 9 !== o) {
          return e.substring(t, i)
        }
      }
      return e.substring(t, n)
    }, t.lastNonWhitespaceIndex = function (e, t) {
      void 0 === t && (t = e.length - 1);
      for (var n = t; n >= 0; n--) {
        var i = e.charCodeAt(n);
        if (32 !== i && 9 !== i) {
          return n
        }
      }
      return -1
    }, t.compare = s, t.compareIgnoreCase = function (e, t) {
      for (var n = Math.min(e.length, t.length), i = 0; i < n; i++) {
        var o = e.charCodeAt(i), r = t.charCodeAt(i);
        if (o !== r) {
          u(o) && (o += 32), u(r) && (r += 32);
          var l = o - r;
          if (0 !== l) {
            return a(o) && a(r) ? l : s(e.toLowerCase(),
                t.toLowerCase())
          }
        }
      }
      return e.length < t.length ? -1 : e.length > t.length ? 1 : 0
    }, t.equalsIgnoreCase = function (e, t) {
      return (e ? e.length : 0) === (t ? t.length : 0) && c(e, t)
    }, t.beginsWithIgnoreCase = function (e, t) {
      var n = t.length;
      return !(t.length > e.length) && c(e, t, n)
    }, t.commonPrefixLength = function (e, t) {
      var n, i = Math.min(e.length, t.length);
      for (n = 0; n < i; n++) {
        if (e.charCodeAt(n) !== t.charCodeAt(n)) {
          return n;
        }
      }
      return i
    }, t.commonSuffixLength = function (e, t) {
      var n, i = Math.min(e.length, t.length), o = e.length - 1,
          r = t.length - 1;
      for (n = 0; n < i; n++) {
        if (e.charCodeAt(o - n) !== t.charCodeAt(
            r - n)) {
          return n;
        }
      }
      return i
    }, t.overlap = function (e, t) {
      var n = e.length, i = t.length, o = n - i;
      if (0 === o) {
        return e === t ? n : 0;
      }
      for (o < 0 && (i += o, o = 0); o < n && i > 0;) {
        if (d(e, o, n, t, 0, i)) {
          return i;
        }
        i -= 1, o += 1
      }
      return 0
    }, t.isHighSurrogate = function (e) {
      return 55296 <= e && e <= 56319
    }, t.isLowSurrogate = function (e) {
      return 56320 <= e && e <= 57343
    };
    var m = /(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u08BD\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE33\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDCFF]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD50-\uDFFF]|\uD83B[\uDC00-\uDEBB])/;
    t.containsRTL = function (e) {
      return m.test(e)
    };
    var v = /(?:[\u231A\u231B\u23F0\u23F3\u2600-\u27BF\u2B50\u2B55]|\uD83C[\uDDE6-\uDDFF\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F\uDE80-\uDEF8]|\uD83E[\uDD00-\uDDE6])/;
    t.containsEmoji = function (e) {
      return v.test(e)
    };
    var _ = /^[\t\n\r\x20-\x7E]*$/;
    t.isBasicASCII = function (e) {
      return _.test(e)
    }, t.containsFullWidthCharacter = function (e) {
      for (var t = 0, n = e.length; t < n; t++) {
        if (h(
            e.charCodeAt(t))) {
          return !0;
        }
      }
      return !1
    }, t.isFullWidthCharacter = h, t.difference = function (e, t, n) {
      void 0 === n && (n = 4);
      var i = Math.abs(e.length - t.length);
      if (i > n) {
        return 0;
      }
      var o, r, s = [], a = [];
      for (o = 0; o < t.length + 1; ++o) {
        a.push(0);
      }
      for (o = 0; o < e.length + 1; ++o) {
        s.push(a);
      }
      for (o = 1; o < e.length + 1; ++o) {
        for (r = 1; r < t.length + 1; ++r) {
          e[o
          - 1] === t[r - 1] ? s[o][r] = s[o - 1][r - 1] + 1
              : s[o][r] = Math.max(
                  s[o - 1][r], s[o][r - 1]);
        }
      }
      return s[e.length][t.length] - Math.sqrt(i)
    }, t.computeLineStarts = function (e) {
      for (var t = /\r\n|\r|\n/g, n = [0]; t.exec(e);) {
        n.push(t.lastIndex);
      }
      return n
    }, t.lcut = function (e, n) {
      if (e.length < n) {
        return e;
      }
      for (var i = e.split(/\b/), o = 0, r = i.length - 1; r >= 0;
          r--) {
        if ((o += i[r].length) > n) {
          i.splice(0, r);
          break
        }
      }
      return i.join(t.empty).replace(/^\s/, t.empty)
    };
    var y = /\x1B\x5B[12]?K/g, C = /\x1b\[\d+m/g, b = /\x1b\[0?m/g;
    t.removeAnsiEscapeCodes = function (e) {
      return e && (e = (e = (e = e.replace(y, "")).replace(C, "")).replace(b,
          "")), e
    }, t.UTF8_BOM_CHARACTER = String.fromCharCode(
        65279), t.startsWithUTF8BOM = function (e) {
      return e && e.length > 0 && 65279 === e.charCodeAt(0)
    }, t.appendWithLimit = function (e, t, n) {
      var i = e.length + t.length;
      return i > n && (e = "..." + e.substr(i - n)), t.length > n
          ? e += t.substr(t.length - n) : e += t, e
    }, t.safeBtoa = function (e) {
      return btoa(encodeURIComponent(e))
    }, t.repeat = function (e, t) {
      for (var n = "", i = 0; i < t; i++) {
        n += e;
      }
      return n
    }
  }), define(d[512], h([1, 0, 9]), function (e, t, n) {
    "use strict";

    function i(e) {
      return e
    }

    return {
      expand: i, OcticonLabel: function () {
        function e(e) {
          this._container = e
        }

        return Object.defineProperty(e.prototype, "text", {
          set: function (e) {
            var t = e || "";
            t = i(t = n.escape(t)), this._container.innerHTML = t
          }, enumerable: !0, configurable: !0
        }), e
      }()
    }
  }), define(d[81], h([1, 0, 9, 80]), function (e, t, n, i) {
    "use strict";

    function o() {
      for (var e = [], t = 0; t < arguments.length; t++) {
        e[t] = arguments[t];
      }
      return function (t, n) {
        for (var i = 0, o = e.length; i < o; i++) {
          var r = e[i](t, n);
          if (r) {
            return r
          }
        }
        return null
      }
    }

    function r(e, t, i) {
      if (!i || i.length < t.length) {
        return null;
      }
      return (e ? n.beginsWithIgnoreCase(i, t) : 0 === i.indexOf(t)) ? t.length
      > 0 ? [{start: 0, end: t.length}] : [] : null
    }

    function s(e, t) {
      var n = t.toLowerCase().indexOf(e.toLowerCase());
      return -1 === n ? null : [{start: n, end: n + e.length}]
    }

    function a(e, t) {
      return u(e.toLowerCase(), t.toLowerCase(), 0, 0)
    }

    function u(e, t, n, i) {
      if (n === e.length) {
        return [];
      }
      if (i === t.length) {
        return null;
      }
      if (e[n] === t[i]) {
        var o = null;
        if (o = u(e, t, n + 1, i + 1)) {
          return f({start: i, end: i + 1}, o)
        }
      }
      return u(e, t, n, i + 1)
    }

    function l(e) {
      return 97 <= e && e <= 122
    }

    function c(e) {
      return 65 <= e && e <= 90
    }

    function d(e) {
      return 48 <= e && e <= 57
    }

    function h(e) {
      return 32 === e || 9 === e || 10 === e || 13 === e
    }

    function p(e) {
      return l(e) || c(e) || d(e)
    }

    function f(e, t) {
      return 0 === t.length ? t = [e] : e.end === t[0].start
          ? t[0].start = e.start : t.unshift(e), t
    }

    function g(e, t) {
      for (var n = t; n < e.length; n++) {
        var i = e.charCodeAt(n);
        if (c(i) || d(i) || n > 0 && !p(e.charCodeAt(n - 1))) {
          return n
        }
      }
      return e.length
    }

    function m(e, t, n, i) {
      if (n === e.length) {
        return [];
      }
      if (i === t.length) {
        return null;
      }
      if (e[n] !== t[i].toLowerCase()) {
        return null;
      }
      var o = null, r = i + 1;
      for (o = m(e, t, n + 1, i + 1); !o && (r = g(t, r)) < t.length;) {
        o = m(e,
            t, n + 1, r), r++;
      }
      return null === o ? null : f({start: i, end: i + 1}, o)
    }

    function v(e) {
      for (var t = 0, n = 0, i = 0, o = 0, r = 0, s = 0; s < e.length; s++) {
        c(
            r = e.charCodeAt(s)) && t++, l(r) && n++, p(r) && i++, d(r) && o++;
      }
      return {
        upperPercent: t / e.length,
        lowerPercent: n / e.length,
        alphaPercent: i / e.length,
        numericPercent: o / e.length
      }
    }

    function _(e) {
      var t = e.upperPercent;
      return 0 === e.lowerPercent && t > .6
    }

    function y(e) {
      var t = e.upperPercent, n = e.lowerPercent, i = e.alphaPercent,
          o = e.numericPercent;
      return n > .2 && t < .8 && i > .6 && o < .2
    }

    function C(e) {
      for (var t = 0, n = 0, i = 0, o = 0, r = 0; r < e.length; r++) {
        c(
            i = e.charCodeAt(r)) && t++, l(i) && n++, h(i) && o++;
      }
      return 0 !== t && 0 !== n || 0 !== o ? t <= 5 : e.length <= 30
    }

    function b(e, t) {
      if (!t || 0 === t.length) {
        return null;
      }
      if (!C(e)) {
        return null;
      }
      if (t.length > 60) {
        return null;
      }
      var n = v(t);
      if (!y(n)) {
        if (!_(n)) {
          return null;
        }
        t = t.toLowerCase()
      }
      for (var i = null, o = 0;
          o < t.length && null === (i = m(e.toLowerCase(), t, 0, o));) {
        o = g(t,
            o + 1);
      }
      return i
    }

    function w(e, t, n, i, o) {
      if (n === e.length) {
        return [];
      }
      if (i === t.length) {
        return null;
      }
      if (e[n] !== t[i].toLowerCase()) {
        return null;
      }
      var r = null, s = i + 1;
      if (r = w(e, t, n + 1, i + 1, o), !o) {
        for (;
            !r && (s = S(t, s)) < t.length;) {
          r = w(e, t, n + 1, s, o), s++;
        }
      }
      return null === r ? null : f({start: i, end: i + 1}, r)
    }

    function S(e, t) {
      for (var n = t; n < e.length; n++) {
        if (h(e.charCodeAt(n)) || n > 0 && h(
            e.charCodeAt(n - 1))) {
          return n;
        }
      }
      return e.length
    }

    function E() {
      for (var e = [], t = [0], n = 1; n <= 100; n++) {
        t.push(-n);
      }
      for (n = 0; n <= 100; n++) {
        var i = t.slice(0);
        i[0] = -n, e.push(i)
      }
      return e
    }

    function L(e, t, n, i, o) {
      function r(e, t, n) {
        for (void 0 === n && (n = " "); e.length < t;) {
          e = n + e;
        }
        return e
      }

      for (var s = " |   |" + i.split("").map(function (e) {
        return r(e, 3)
      }).join("|") + "\n", a = 0; a <= n; a++) {
        s += 0 === a ? " |" : t[a - 1]
            + "|", s += e[a].slice(0, o + 1).map(function (e) {
          return r(e.toString(), 3)
        }).join("|") + "\n";
      }
      return s
    }

    function x(e, t, n) {
      var i = e.length > 100 ? 100 : e.length,
          o = t.length > 100 ? 100 : t.length, r = 0;
      for (void 0 === n && (n = i); r < n && A[e[r]];) {
        r += 1;
      }
      if (r === i) {
        return [-100, []];
      }
      if (!(i > o)) {
        for (var s = e.toLowerCase(), a = t.toLowerCase(), u = r, l = 0;
            u < i && l < o;) {
          s[u] === a[l] && (u += 1), l += 1;
        }
        if (u === i) {
          for (u = r + 1; u <= i; u++) {
            var c = "";
            for (l = 1; l <= o; l++) {
              var d = -1, h = a[l - 1];
              s[u - 1] === h && (d = l === u - r ? e[u - 1] === t[l - 1] ? 7 : 5
                  : h !== t[l - 1] ? e[u - 1] === t[l - 1] ? 7 : 5 : P[c] ? 5
                      : 1), D[u][l] = d;
              var p = I[u - 1][l - 1] + (d > 1 ? 1 : d), f = I[u - 1][l] + -1,
                  g = I[u][l - 1] + -1;
              g >= f ? g > p ? (I[u][l] = g, O[u][l] = 4) : g === p
                  ? (I[u][l] = g, O[u][l] = 6) : (I[u][l] = p, O[u][l] = 2) : f
              > p ? (I[u][l] = f, O[u][l] = 1) : f === p
                  ? (I[u][l] = f, O[u][l] = 3)
                  : (I[u][l] = p, O[u][l] = 2), c = h
            }
          }
          if (R && (console.log(L(I, e, i, t, o)), console.log(
              L(O, e, i, t, o)), console.log(
              L(D, e, i, t, o))), W.length = 0, B = -100, V = r, N(i, o, 0,
              new H, !1), 0 !== W.length) {
            return [B, W[0].toArray()]
          }
        }
      }
    }

    function N(e, t, n, i, o) {
      if (!(W.length >= 10 || n < -25)) {
        for (var r = 0; e > V && t > 0;) {
          var s = D[e][t], a = O[e][t];
          if (4 === a) {
            t -= 1, o ? n -= 5 : i.isEmpty()
                || (n -= 1), o = !1, r = 0;
          } else {
            if (!(2 & a)) {
              return;
            }
            if (4 & a && N(e, t - 1, i.isEmpty() ? n : n - 1, i.slice(),
                o), n += s, e -= 1, t -= 1, i.unshift(t), o = !0, 1 === s) {
              if (r += 1, e === V) {
                return
              }
            } else {
              n += 1 + r * (s - 1), r = 0
            }
          }
        }
        (n -= t >= 3 ? 9 : 3 * t) > B ? (B = n, W.unshift(i)) : W.push(i)
      }
    }

    function M(e, t) {
      if (!(t + 1 >= e.length)) {
        return e.slice(0, t) + e[t + 1] + e[t]
            + e.slice(t + 2)
      }
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.or = o, t.and = function () {
      for (var e = [], t = 0; t < arguments.length; t++) {
        e[t] = arguments[t];
      }
      return function (t, n) {
        for (var i = [], o = 0, r = e.length; o < r; o++) {
          var s = e[o](t, n);
          if (!s) {
            return null;
          }
          i = i.concat(s)
        }
        return i
      }
    }, t.matchesStrictPrefix = r.bind(void 0, !1), t.matchesPrefix = r.bind(
        void 0,
        !0), t.matchesContiguousSubString = s, t.matchesSubString = a, t.matchesCamelCase = b, t.matchesWords = function (e,
        t, n) {
      if (void 0 === n && (n = !1), !t || 0 === t.length) {
        return null;
      }
      for (var i = null, o = 0;
          o < t.length && null === (i = w(e.toLowerCase(), t, 0, o, n));) {
        o = S(
            t, o + 1);
      }
      return i
    };
    !function (e) {
      e[e.Contiguous = 0] = "Contiguous", e[e.Separate = 1] = "Separate"
    }(t.SubstringMatching
        || (t.SubstringMatching = {})), t.fuzzyContiguousFilter = o(
        t.matchesPrefix, b, s);
    var T = o(t.matchesPrefix, b, a), k = new i.BoundedMap(1e4);
    t.matchesFuzzy = function (e, i, o) {
      if (void 0 === o && (o = !1), "string" != typeof e || "string"
      != typeof i) {
        return null;
      }
      var r = k.get(e);
      r || (r = new RegExp(n.convertSimple2RegExpPattern(e), "i"), k.set(e, r));
      var s = r.exec(i);
      return s ? [{start: s.index, end: s.index + s[0].length}] : o ? T(e, i)
          : t.fuzzyContiguousFilter(e, i)
    }, t.createMatches = function (e) {
      var t = [];
      if (!e) {
        return t;
      }
      for (var n, i = 0, o = e; i < o.length; i++) {
        var r = o[i];
        n && n.end === r ? n.end += 1 : (n = {start: r, end: r + 1}, t.push(n))
      }
      return t
    };
    var I = E(), D = E(), O = E(), R = !1, P = Object.create(null);
    P._ = !0, P["-"] = !0, P["."] = !0, P[" "] = !0, P["/"] = !0, P["\\"] = !0, P["'"] = !0, P['"'] = !0, P[":"] = !0;
    var A = Object.create(null);
    A[" "] = !0, A["\t"] = !0;
    var F;
    !function (e) {
      e[e.Top = 1] = "Top", e[e.Diag = 2] = "Diag", e[e.Left = 4] = "Left"
    }(F || (F = {})), t.fuzzyScore = x;
    var W = [], B = 0, V = 0, H = function () {
      function e() {
      }

      return e.prototype.isEmpty = function () {
        return !this._data && (!this._parent || this._parent.isEmpty())
      }, e.prototype.unshift = function (e) {
        this._data ? this._data.unshift(e) : this._data = [e]
      }, e.prototype.slice = function () {
        var t = new e;
        return t._parent = this, t._parentLen = this._data ? this._data.length
            : 0, t
      }, e.prototype.toArray = function () {
        if (!this._data) {
          return this._parent.toArray();
        }
        for (var e = [], t = this; t;) {
          t._parent && t._parent._data && e.push(
              t._parent._data.slice(
                  t._parent._data.length - t._parentLen)), t = t._parent;
        }
        return Array.prototype.concat.apply(this._data, e)
      }, e
    }();
    t.nextTypoPermutation = M, t.fuzzyScoreGraceful = function (e, t) {
      for (var n = x(e, t), i = 1; i < e.length - 1 && !n; i++) {
        n = x(M(e, i),
            t);
      }
      return n
    }
  }), define(d[45], h([1, 0, 15, 33, 9]), function (e, t, n, i, o) {
    "use strict";

    function r(e) {
      var t = ~e.lastIndexOf("/") || ~e.lastIndexOf("\\");
      return 0 === t ? e : ~t == e.length - 1 ? r(e.substring(0, e.length - 1))
          : e.substr(1 + ~t)
    }

    function s(e, t) {
      return t ? !p.test(e) : !h.test(e)
    }

    function a(e, t) {
      if (null === e || void 0 === e) {
        return e;
      }
      var i = e.length;
      if (0 === i) {
        return ".";
      }
      var o = n.isWindows && t;
      if (s(e, o)) {
        return e;
      }
      for (var r = o ? "\\" : "/", a = l(e, r), c = a.length, d = !1, h = "",
          p = a.length; p <= i; p++) {
        if (p === i || 47 === e.charCodeAt(p) || 92
            === e.charCodeAt(p)) {
          if (u(e, c, p, "..")) {
            var f = h.lastIndexOf(r), g = h.slice(f + 1);
            (a || g.length > 0) && ".." !== g && (h = -1 === f ? "" : h.slice(0,
                f), d = !0)
          } else {
            u(e, c, p, ".") && (a || h || p < i - 1) && (d = !0);
          }
          if (!d) {
            var m = e.slice(c, p);
            "" !== h && h[h.length - 1] !== r && (h += r), h += m
          }
          c = p + 1, d = !1
        }
      }
      return a + h
    }

    function u(e, t, n, i) {
      return t + i.length === n && e.indexOf(i, t) === t
    }

    function l(e, t) {
      if (void 0 === t && (t = "/"), !e) {
        return "";
      }
      var n = e.length, i = e.charCodeAt(0);
      if (47 === i || 92 === i) {
        if ((47 === (i = e.charCodeAt(1)) || 92 === i) && 47
            !== (i = e.charCodeAt(2)) && 92 !== i) {
          for (var o = 3, r = o;
              o < n && (47 !== (i = e.charCodeAt(o)) && 92 !== i); o++) {
            ;
          }
          if (i = e.charCodeAt(o + 1), r !== o && 47 !== i && 92
          !== i) {
            for (o += 1; o < n; o++) {
              if (47 === (i = e.charCodeAt(o)) || 92
                  === i) {
                return e.slice(0, o + 1).replace(/[\\/]/g, t)
              }
            }
          }
        }
        return t
      }
      if ((i >= 65 && i <= 90 || i >= 97 && i <= 122) && 58 === e.charCodeAt(
          1)) {
        return 47 === (i = e.charCodeAt(2)) || 92 === i ? e.slice(0, 2)
            + t : e.slice(0, 2);
      }
      var s = e.indexOf("://");
      if (-1 !== s) {
        for (s += 3; s < n; s++) {
          if (47 === (i = e.charCodeAt(s))
              || 92 === i) {
            return e.slice(0, s + 1);
          }
        }
      }
      return ""
    }

    function c(e) {
      if (!e) {
        return !1;
      }
      var t = e.charCodeAt(0);
      if (47 === t || 92 === t) {
        return !0;
      }
      if ((t >= 65 && t <= 90 || t >= 97 && t <= 122) && e.length > 2 && 58
          === e.charCodeAt(1)) {
        var n = e.charCodeAt(2);
        if (47 === n || 92 === n) {
          return !0
        }
      }
      return !1
    }

    function d(e) {
      return e && 47 === e.charCodeAt(0)
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.sep = "/", t.nativeSep = n.isWindows ? "\\"
        : "/", t.relative = function (e, r) {
      for (var s = o.rtrim(a(e), t.sep), u = o.rtrim(a(r), t.sep),
          l = n.isLinux ? s : s.toLowerCase(),
          c = n.isLinux ? u : u.toLowerCase(), d = l.split(t.sep),
          h = c.split(t.sep), p = 0, f = Math.min(d.length, h.length);
          p < f && d[p] === h[p]; p++) {
        ;
      }
      return i.fill(d.length - p, function () {
        return ".."
      }).concat(u.split(t.sep).slice(p)).join(t.sep)
    }, t.dirname = function (e) {
      var i = ~e.lastIndexOf("/") || ~e.lastIndexOf("\\");
      if (0 === i) {
        return ".";
      }
      if (0 == ~i) {
        return e[0];
      }
      var o = e.substring(0, ~i);
      return n.isWindows && ":" === o[o.length - 1] && (o += t.nativeSep), o
    }, t.basename = r, t.extname = function (e) {
      var t = ~(e = r(e)).lastIndexOf(".");
      return t ? e.substring(~t) : ""
    };
    var h = /(\/\.\.?\/)|(\/\.\.?)$|^(\.\.?\/)|(\/\/+)|(\\)/,
        p = /(\\\.\.?\\)|(\\\.\.?)$|^(\.\.?\\)|(\\\\+)|(\/)/;
    t.normalize = a, t.getRoot = l, t.join = function () {
      for (var e = "", n = 0; n < arguments.length; n++) {
        var i = arguments[n];
        if (n > 0) {
          var o = e.charCodeAt(e.length - 1);
          if (47 !== o && 92 !== o) {
            var r = i.charCodeAt(0);
            47 !== r && 92 !== r && (e += t.sep)
          }
        }
        e += i
      }
      return a(e)
    }, t.isUNC = function (e) {
      if (!n.isWindows) {
        return !1;
      }
      if (!e || e.length < 5) {
        return !1;
      }
      var t = e.charCodeAt(0);
      if (92 !== t) {
        return !1;
      }
      if (92 !== (t = e.charCodeAt(1))) {
        return !1;
      }
      for (var i = 2, o = i; i < e.length && 92 !== (t = e.charCodeAt(i));
          i++) {
        ;
      }
      return o !== i && (t = e.charCodeAt(i + 1), !isNaN(t) && 92 !== t)
    };
    var f = n.isWindows ? /[\\/:\*\?"<>\|]/g : /[\\/]/g,
        g = /^(con|prn|aux|clock\$|nul|lpt[0-9]|com[0-9])$/i;
    t.isValidBasename = function (e) {
      return !(!e || 0 === e.length || /^\s+$/.test(e)
          || (f.lastIndex = 0, f.test(e) || n.isWindows && g.test(e) || "."
          === e || ".." === e || n.isWindows && "." === e[e.length - 1]
          || n.isWindows && e.length !== e.trim().length))
    }, t.isEqual = function (e, t, n) {
      var i = e === t;
      return !n || i ? i : !(!e || !t) && o.equalsIgnoreCase(e, t)
    }, t.isEqualOrParent = function (e, n, i) {
      if (e === n) {
        return !0;
      }
      if (!e || !n) {
        return !1;
      }
      if (n.length > e.length) {
        return !1;
      }
      if (i) {
        if (!o.beginsWithIgnoreCase(e, n)) {
          return !1;
        }
        if (n.length === e.length) {
          return !0;
        }
        var r = n.length;
        return n.charAt(n.length - 1) === t.nativeSep && r--, e.charAt(r)
        === t.nativeSep
      }
      return n.charAt(n.length - 1) !== t.nativeSep && (n += t.nativeSep), 0
      === e.indexOf(n)
    }, t.isAbsolute = function (e) {
      return n.isWindows ? c(e) : d(e)
    }, t.isAbsolute_win32 = c, t.isAbsolute_posix = d
  }), define(d[229], h([1, 0, 423, 9, 45]), function (e, t, n, i, o) {
    "use strict";

    function r(e, t) {
      if (c) {
        var n = e || "", i = t || "", o = c.compare(n, i);
        return d && 0 === o && n !== i ? n < i ? -1 : 1 : o
      }
      return s(e, t)
    }

    function s(e, t) {
      var n = h.exec(e.toLowerCase()), i = h.exec(t.toLowerCase()),
          o = n[1] || "", r = n[3] || "", s = i[1] || "", a = i[3] || "";
      return o !== s ? o < s ? -1 : 1 : r === a ? 0 : r < a ? -1 : 1
    }

    function a(e, t) {
      var n = e ? h.exec(e.toLowerCase()) : [],
          i = t ? h.exec(t.toLowerCase()) : [], o = n[1] || "", r = n[3] || "",
          s = i[1] || "", a = i[3] || "";
      return r !== a ? r < a ? -1 : 1 : o === s ? 0 : o < s ? -1 : 1
    }

    function u(e, t, n) {
      var o = e.toLowerCase(), s = t.toLowerCase(), a = l(e, t, n);
      if (a) {
        return a;
      }
      var u = i.endsWith(o, n);
      if (u !== i.endsWith(s, n)) {
        return u ? -1 : 1;
      }
      var c = r(o, s);
      return 0 !== c ? c : o.localeCompare(s)
    }

    function l(e, t, n) {
      var o = e.toLowerCase(), r = t.toLowerCase(), s = i.startsWith(o, n),
          a = i.startsWith(r, n);
      if (s !== a) {
        return s ? -1 : 1;
      }
      if (s && a) {
        if (o.length < r.length) {
          return -1;
        }
        if (o.length > r.length) {
          return 1
        }
      }
      return 0
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var c, d;
    t.setFileNameComparer = function (e) {
      c = e, d = e.resolvedOptions().numeric
    }, t.compareFileNames = r;
    var h = /^(.*?)(\.([^.]*))?$/;
    t.noIntlCompareFileNames = s, t.compareFileExtensions = function (e, t) {
      if (c) {
        var n = e ? h.exec(e) : [], i = t ? h.exec(t) : [], o = n[1] || "",
            r = n[3] || "", s = i[1] || "", u = i[3] || "", l = c.compare(r, u);
        if (0 === l) {
          if (d && r !== u) {
            return r < u ? -1 : 1;
          }
          if (l = c.compare(o, s), d && 0 === l && o !== s) {
            return o < s ? -1
                : 1
          }
        }
        return l
      }
      return a(e, t)
    }, t.comparePaths = function (e, t) {
      for (var n, i, s, a, u = e.split(o.nativeSep), l = t.split(o.nativeSep),
          c = u.length - 1, d = l.length - 1, h = 0; ; h++) {
        if (n = c === h, i = d === h, n && i) {
          return r(u[h], l[h]);
        }
        if (n) {
          return -1;
        }
        if (i) {
          return 1;
        }
        if ((s = u[h].toLowerCase()) !== (a = l[h].toLowerCase())) {
          return s < a
              ? -1 : 1
        }
      }
    }, t.compareAnything = u, t.compareByPrefix = l, t.compareByScore = function (e,
        t, i, o, r, s) {
      var a = i.getLabel(e), c = i.getLabel(t), d = l(a, c, o);
      if (d) {
        return d;
      }
      var h = n.score(a, o, s), p = n.score(c, o, s);
      if (h !== p) {
        return h > p ? -1 : 1;
      }
      var f = i.getResourcePath(e), g = i.getResourcePath(t);
      if (f && g) {
        var m = n.score(f, o, s), v = n.score(g, o, s);
        if (m !== v) {
          return m > v ? -1 : 1
        }
      }
      return a.length !== c.length ? a.length < c.length ? -1 : 1 : f && g
      && f.length !== g.length ? f.length < g.length ? -1 : 1 : a === c && f
      && g ? u(f, g, r) : u(a, c, r)
    }
  }), define(d[174], h([1, 0, 24, 15, 45, 9]), function (e, t, n, i, o, r) {
    "use strict";

    function s(e, t) {
      return e && (i.isMacintosh || i.isLinux) && o.isEqualOrParent(e, t,
          !i.isLinux) && (e = "~" + e.substr(t.length)), e
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.getPathLabel = function (e, t, a) {
      if (!e) {
        return null;
      }
      "string" == typeof e && (e = n.default.file(e));
      var u = t ? t.getRoot(e) : null;
      if (u) {
        var l = t.getWorkspace().roots.length > 1, c = void 0;
        if (c = o.isEqual(u.fsPath, e.fsPath, !i.isLinux) ? "" : o.normalize(
            r.ltrim(e.fsPath.substr(u.fsPath.length), o.nativeSep), !0), l) {
          var d = o.basename(u.fsPath);
          c = c ? o.join(d, c) : d
        }
        return c
      }
      if (i.isWindows && e.fsPath && ":" === e.fsPath[1]) {
        return o.normalize(
            e.fsPath.charAt(0).toUpperCase() + e.fsPath.slice(1), !0);
      }
      var h = o.normalize(e.fsPath, !0);
      return !i.isWindows && a && (h = s(h, a.userHome)), h
    }, t.tildify = s;
    var a = "…", u = "\\\\";
    t.shorten = function (e) {
      for (var t = new Array(e.length), n = !1, i = 0; i < e.length; i++) {
        var s = e[i];
        if ("" !== s) {
          if (s) {
            n = !0;
            var l = "";
            0 === s.indexOf(u) ? (l = s.substr(0,
                    s.indexOf(u) + u.length), s = s.substr(s.indexOf(u) + u.length))
                : 0 === s.indexOf(o.nativeSep) && (l = s.substr(0,
                s.indexOf(o.nativeSep) + o.nativeSep.length), s = s.substr(
                s.indexOf(o.nativeSep) + o.nativeSep.length));
            for (var c = s.split(o.nativeSep), d = 1; n && d <= c.length;
                d++) {
              for (var h = c.length - d; n && h >= 0; h--) {
                n = !1;
                for (var p = c.slice(h, h + d).join(o.nativeSep), f = 0;
                    !n && f < e.length; f++) {
                  if (f !== i && e[f] && e[f].indexOf(p)
                      > -1) {
                    var g = h + d === c.length,
                        m = h > 0 && e[f].indexOf(o.nativeSep) > -1
                            ? o.nativeSep + p
                            : p, v = r.endsWith(e[f], m);
                    n = !g || v
                  }
                }
                if (!n) {
                  var _ = "";
                  (r.endsWith(c[0], ":") || "" !== l) && (1 === h
                  && (h = 0, d++, p = c[0] + o.nativeSep + p), h > 0
                  && (_ = c[0]
                      + o.nativeSep), _ = l + _), h > 0 && (_ = _ + a
                      + o.nativeSep), _ += p, h + d < c.length && (_ = _
                      + o.nativeSep + a), t[i] = _
                }
              }
            }
            n && (t[i] = s)
          } else {
            t[i] = s;
          }
        } else {
          t[i] = "." + o.nativeSep
        }
      }
      return t
    };
    var l;
    !function (e) {
      e[e.TEXT = 0] = "TEXT", e[e.VARIABLE = 1] = "VARIABLE", e[e.SEPARATOR = 2] = "SEPARATOR"
    }(l || (l = {})), t.template = function (e, t) {
      void 0 === t && (t = Object.create(null));
      for (var n, i = [], o = !1, r = "", s = 0; s < e.length; s++) {
        if ("$"
            === (n = e[s]) || o && "{" === n) {
          r && i.push(
              {value: r, type: l.TEXT}), r = "", o = !0;
        } else if ("}" === n && o) {
          var a = t[r];
          if ("string" == typeof a) {
            a.length && i.push(
                {value: a, type: l.VARIABLE});
          } else if (a) {
            var u = i[i.length - 1];
            u && u.type === l.SEPARATOR || i.push(
                {value: a.label, type: l.SEPARATOR})
          }
          r = "", o = !1
        } else {
          r += n;
        }
      }
      return r && !o && i.push({value: r, type: l.TEXT}), i.filter(
          function (e, t) {
            return e.type !== l.SEPARATOR || [i[t - 1], i[t + 1]].every(
                function (e) {
                  return e && e.type === l.VARIABLE && e.value.length > 0
                })
          }).map(function (e) {
        return e.value
      }).join("")
    }, t.mnemonicButtonLabel = function (e) {
      return i.isWindows ? e.replace(/&&/g, "&") : e.replace(/\(&&\w\)|&&/g, "")
    }
  }), function () {
    var e = {};
    e["WinJS/Core/_WinJS"] = {};
    var t = function (t, n, i) {
      var o = {}, r = !1, s = n.map(function (t) {
        return "exports" === t ? (r = !0, o) : e[t]
      }), a = i.apply({}, s);
      e[t] = r ? o : a
    };
    t("WinJS/Core/_Global", [], function () {
      "use strict";
      return "undefined" != typeof window ? window : "undefined" != typeof self
          ? self : "undefined" != typeof global ? global : {}
    }), t("WinJS/Core/_BaseCoreUtils", ["WinJS/Core/_Global"], function (e) {
      "use strict";
      return {
        hasWinRT: !!e.Windows,
        markSupportedForProcessing: function (e) {
          return e.supportedForProcessing = !0, e
        },
        _setImmediate: e.setImmediate ? e.setImmediate.bind(e) : function (t) {
          e.setTimeout(t, 0)
        }
      }
    }), t("WinJS/Core/_WriteProfilerMark", ["WinJS/Core/_Global"],
        function (e) {
          "use strict";
          return e.msWriteProfilerMark || function () {
          }
        }), t("WinJS/Core/_Base",
        ["WinJS/Core/_WinJS", "WinJS/Core/_Global", "WinJS/Core/_BaseCoreUtils",
          "WinJS/Core/_WriteProfilerMark"], function (e, t, n, i) {
          "use strict";

          function o(e, t, n) {
            var i, o, r, s = Object.keys(t), a = Array.isArray(e);
            for (o = 0, r = s.length; o < r; o++) {
              var u = s[o], l = 95 !== u.charCodeAt(0), c = t[u];
              !c || "object" != typeof c || void 0 === c.value && "function"
              != typeof c.get && "function" != typeof c.set ? l ? a ? e.forEach(
                  function (e) {
                    e[u] = c
                  }) : e[u] = c : (i = i || {})[u] = {
                value: c,
                enumerable: l,
                configurable: !0,
                writable: !0
              } : (void 0 === c.enumerable && (c.enumerable = l), n && c.setName
              && "function" == typeof c.setName && c.setName(
                  n + "." + u), (i = i || {})[u] = c)
            }
            i && (a ? e.forEach(function (e) {
              Object.defineProperties(e, i)
            }) : Object.defineProperties(e, i))
          }

          return function () {
            function n(n, i) {
              var o = n || {};
              if (i) {
                var r = i.split(".");
                o === t && "WinJS" === r[0] && (o = e, r.splice(0, 1));
                for (var s = 0, a = r.length; s < a; s++) {
                  var u = r[s];
                  o[u] || Object.defineProperty(o, u, {
                    value: {},
                    writable: !1,
                    enumerable: !0,
                    configurable: !0
                  }), o = o[u]
                }
              }
              return o
            }

            function r(e, t, i) {
              var r = n(e, t);
              return i && o(r, i, t || "<ANONYMOUS>"), r
            }

            var s = e;
            s.Namespace || (s.Namespace = Object.create(Object.prototype));
            var a = {uninitialized: 1, working: 2, initialized: 3};
            Object.defineProperties(s.Namespace, {
              defineWithParent: {
                value: r,
                writable: !0,
                enumerable: !0,
                configurable: !0
              }, define: {
                value: function (e, n) {
                  return r(t, e, n)
                }, writable: !0, enumerable: !0, configurable: !0
              }, _lazy: {
                value: function (e) {
                  var t, n, o = a.uninitialized;
                  return {
                    setName: function (e) {
                      t = e
                    }, get: function () {
                      switch (o) {
                        case a.initialized:
                          return n;
                        case a.uninitialized:
                          o = a.working;
                          try {
                            i("WinJS.Namespace._lazy:" + t
                                + ",StartTM"), n = e()
                          } finally {
                            i("WinJS.Namespace._lazy:" + t
                                + ",StopTM"), o = a.uninitialized
                          }
                          return e = null, o = a.initialized, n;
                        case a.working:
                          throw "Illegal: reentrancy on initialization";
                        default:
                          throw "Illegal"
                      }
                    }, set: function (e) {
                      switch (o) {
                        case a.working:
                          throw "Illegal: reentrancy on initialization";
                        default:
                          o = a.initialized, n = e
                      }
                    }, enumerable: !0, configurable: !0
                  }
                }, writable: !0, enumerable: !0, configurable: !0
              }, _moduleDefine: {
                value: function (e, i, r) {
                  var s = [e], a = null;
                  return i && (a = n(t, i), s.push(a)), o(s, r,
                      i || "<ANONYMOUS>"), a
                }, writable: !0, enumerable: !0, configurable: !0
              }
            })
          }(), function () {
            function t(e, t, i) {
              return e = e || function () {
              }, n.markSupportedForProcessing(e), t && o(e.prototype, t), i
              && o(e, i), e
            }

            e.Namespace.define("WinJS.Class", {
              define: t, derive: function (e, i, r, s) {
                if (e) {
                  i = i || function () {
                  };
                  var a = e.prototype;
                  return i.prototype = Object.create(
                      a), n.markSupportedForProcessing(
                      i), Object.defineProperty(i.prototype, "constructor", {
                    value: i,
                    writable: !0,
                    configurable: !0,
                    enumerable: !0
                  }), r && o(i.prototype, r), s && o(i, s), i
                }
                return t(i, r, s)
              }, mix: function (e) {
                e = e || function () {
                };
                var t, n;
                for (t = 1, n = arguments.length; t < n; t++) {
                  o(e.prototype,
                      arguments[t]);
                }
                return e
              }
            })
          }(), {Namespace: e.Namespace, Class: e.Class}
        }), t("WinJS/Core/_ErrorFromName", ["WinJS/Core/_Base"], function (e) {
      "use strict";
      var t = e.Class.derive(Error, function (e, t) {
        this.name = e, this.message = t || e
      }, {}, {supportedForProcessing: !1});
      return e.Namespace.define("WinJS", {ErrorFromName: t}), t
    }), t("WinJS/Core/_Events", ["exports", "WinJS/Core/_Base"],
        function (e, t) {
          "use strict";

          function n(e) {
            var t = "_on" + e + "state";
            return {
              get: function () {
                var e = this[t];
                return e && e.userHandler
              }, set: function (n) {
                var i = this[t];
                n ? (i || (i = {
                      wrapper: function (e) {
                        return i.userHandler(e)
                      }, userHandler: n
                    }, Object.defineProperty(this, t, {
                      value: i,
                      enumerable: !1,
                      writable: !0,
                      configurable: !0
                    }), this.addEventListener(e, i.wrapper, !1)), i.userHandler = n)
                    : i && (this.removeEventListener(e, i.wrapper,
                    !1), this[t] = null)
              }, enumerable: !0
            }
          }

          var i = t.Class.define(function (e, t, n) {
            this.detail = t, this.target = n, this.timeStamp = Date.now(), this.type = e
          }, {
            bubbles: {value: !1, writable: !1},
            cancelable: {value: !1, writable: !1},
            currentTarget: {
              get: function () {
                return this.target
              }
            },
            defaultPrevented: {
              get: function () {
                return this._preventDefaultCalled
              }
            },
            trusted: {value: !1, writable: !1},
            eventPhase: {value: 0, writable: !1},
            target: null,
            timeStamp: null,
            type: null,
            preventDefault: function () {
              this._preventDefaultCalled = !0
            },
            stopImmediatePropagation: function () {
              this._stopImmediatePropagationCalled = !0
            },
            stopPropagation: function () {
            }
          }, {supportedForProcessing: !1}), o = {
            _listeners: null, addEventListener: function (e, t, n) {
              n = n || !1, this._listeners = this._listeners || {};
              for (var i = this._listeners[e] = this._listeners[e] || [], o = 0,
                  r = i.length; o < r; o++) {
                var s = i[o];
                if (s.useCapture === n && s.listener === t) {
                  return
                }
              }
              i.push({listener: t, useCapture: n})
            }, dispatchEvent: function (e, t) {
              var n = this._listeners && this._listeners[e];
              if (n) {
                for (var o = new i(e, t, this), r = 0,
                    s = (n = n.slice(0, n.length)).length;
                    r < s && !o._stopImmediatePropagationCalled;
                    r++) {
                  n[r].listener(o);
                }
                return o.defaultPrevented || !1
              }
              return !1
            }, removeEventListener: function (e, t, n) {
              n = n || !1;
              var i = this._listeners && this._listeners[e];
              if (i) {
                for (var o = 0, r = i.length; o < r; o++) {
                  var s = i[o];
                  if (s.listener === t && s.useCapture === n) {
                    i.splice(o, 1), 0 === i.length && delete this._listeners[e];
                    break
                  }
                }
              }
            }
          };
          t.Namespace._moduleDefine(e, "WinJS.Utilities", {
            _createEventProperty: n, createEventProperties: function () {
              for (var e = {}, t = 0, i = arguments.length; t < i; t++) {
                var o = arguments[t];
                e["on" + o] = n(o)
              }
              return e
            }, eventMixin: o
          })
        }), t("WinJS/Core/_Trace", ["WinJS/Core/_Global"], function (e) {
      "use strict";

      function t(e) {
        return e
      }

      return {
        _traceAsyncOperationStarting: e.Debug
            && e.Debug.msTraceAsyncOperationStarting
            && e.Debug.msTraceAsyncOperationStarting.bind(e.Debug) || t,
        _traceAsyncOperationCompleted: e.Debug
            && e.Debug.msTraceAsyncOperationCompleted
            && e.Debug.msTraceAsyncOperationCompleted.bind(e.Debug) || t,
        _traceAsyncCallbackStarting: e.Debug
            && e.Debug.msTraceAsyncCallbackStarting
            && e.Debug.msTraceAsyncCallbackStarting.bind(e.Debug) || t,
        _traceAsyncCallbackCompleted: e.Debug
            && e.Debug.msTraceAsyncCallbackCompleted
            && e.Debug.msTraceAsyncCallbackCompleted.bind(e.Debug) || t
      }
    }), t("WinJS/Promise/_StateMachine",
        ["WinJS/Core/_Global", "WinJS/Core/_BaseCoreUtils", "WinJS/Core/_Base",
          "WinJS/Core/_ErrorFromName", "WinJS/Core/_Events",
          "WinJS/Core/_Trace"], function (e, t, n, i, o, r) {
          "use strict";

          function s() {
          }

          function a(e, t) {
            var n;
            n = t && "object" == typeof t && "function" == typeof t.then ? O
                : F, e._value = t, e._setState(n)
          }

          function u(e, t, n, i, o, r) {
            return {
              exception: e,
              error: t,
              promise: n,
              handler: r,
              id: i,
              parent: o
            }
          }

          function l(e, t, n, i) {
            var o = n._isException, r = n._errorId;
            return u(o ? t : null, o ? null : t, e, r, n, i)
          }

          function c(e, t, n) {
            var i = n._isException, o = n._errorId;
            return C(e, o, i), u(i ? t : null, i ? null : t, e, o, n)
          }

          function d(e, t) {
            var n = ++H;
            return C(e, n), u(null, t, e, n)
          }

          function h(e, t) {
            var n = ++H;
            return C(e, n, !0), u(t, null, e, n)
          }

          function p(e, t, n, i) {
            y(e, {
              c: t,
              e: n,
              p: i,
              asyncOpID: r._traceAsyncOperationStarting("WinJS.Promise.done")
            })
          }

          function f(e, t, n, i) {
            e._value = t, v(e, t, n, i), e._setState(B)
          }

          function g(t, n) {
            var i = t._value, o = t._listeners;
            if (o) {
              t._listeners = null;
              var s, a;
              for (s = 0, a = Array.isArray(o) ? o.length : 1; s < a; s++) {
                var u = 1 === a ? o : o[s], l = u.c, c = u.promise;
                if (r._traceAsyncOperationCompleted(u.asyncOpID,
                    e.Debug && e.Debug.MS_ASYNC_OP_STATUS_SUCCESS), c) {
                  r._traceAsyncCallbackStarting(u.asyncOpID);
                  try {
                    c._setCompleteValue(l ? l(i) : i)
                  } catch (e) {
                    c._setExceptionValue(e)
                  } finally {
                    r._traceAsyncCallbackCompleted()
                  }
                  c._state !== O && c._listeners && n.push(c)
                } else {
                  G.prototype.done.call(t, l)
                }
              }
            }
          }

          function m(t, n) {
            var i = t._value, o = t._listeners;
            if (o) {
              t._listeners = null;
              var s, a;
              for (s = 0, a = Array.isArray(o) ? o.length : 1; s < a; s++) {
                var u = 1 === a ? o : o[s], c = u.e, d = u.promise,
                    h = e.Debug && (i && i.name === M
                        ? e.Debug.MS_ASYNC_OP_STATUS_CANCELED
                        : e.Debug.MS_ASYNC_OP_STATUS_ERROR);
                if (r._traceAsyncOperationCompleted(u.asyncOpID, h), d) {
                  var p = !1;
                  try {
                    c ? (r._traceAsyncCallbackStarting(
                            u.asyncOpID), p = !0, c.handlesOnError || v(d, i, l, t,
                            c), d._setCompleteValue(c(i)))
                        : d._setChainedErrorValue(i, t)
                  } catch (e) {
                    d._setExceptionValue(e)
                  } finally {
                    p && r._traceAsyncCallbackCompleted()
                  }
                  d._state !== O && d._listeners && n.push(d)
                } else {
                  j.prototype.done.call(t, null, c)
                }
              }
            }
          }

          function v(e, t, n, i, o) {
            if (x._listeners[N]) {
              if (t instanceof Error && t.message === M) {
                return;
              }
              x.dispatchEvent(N, n(e, t, i, o))
            }
          }

          function _(e, t) {
            var n = e._listeners;
            if (n) {
              var i, o;
              for (i = 0, o = Array.isArray(n) ? n.length : 1; i < o; i++) {
                var r = 1 === o ? n : n[i], s = r.p;
                if (s) {
                  try {
                    s(t)
                  } catch (e) {
                  }
                }
                r.c || r.e || !r.promise || r.promise._progress(t)
              }
            }
          }

          function y(e, t) {
            var n = e._listeners;
            n ? (n = Array.isArray(n) ? n : [n]).push(t)
                : n = t, e._listeners = n
          }

          function C(e, t, n) {
            e._isException = n || !1, e._errorId = t
          }

          function b(e, t, n, i) {
            e._value = t, v(e, t, n, i), e._setState(V)
          }

          function w(e, t) {
            var n;
            n = t && "object" == typeof t && "function" == typeof t.then ? O
                : W, e._value = t, e._setState(n)
          }

          function S(e, t, n, i) {
            var o = new U(e);
            return y(e, {
              promise: o,
              c: t,
              e: n,
              p: i,
              asyncOpID: r._traceAsyncOperationStarting("WinJS.Promise.then")
            }), o
          }

          function E(n) {
            var i;
            return new Y(function (o) {
              n ? i = e.setTimeout(o, n) : t._setImmediate(o)
            }, function () {
              i && e.clearTimeout(i)
            })
          }

          function L(e, t) {
            var n = function () {
              e.cancel()
            };
            return e.then(function () {
              t.cancel()
            }), t.then(n, n), t
          }

          e.Debug && (e.Debug.setNonUserCodeExceptions = !0);
          var x = new (n.Class.mix(
              n.Class.define(null, {}, {supportedForProcessing: !1}),
              o.eventMixin));
          x._listeners = {};
          var N = "error", M = "Canceled", T = !1, k = {
            promise: 1,
            thenPromise: 2,
            errorPromise: 4,
            exceptionPromise: 8,
            completePromise: 16
          };
          k.all = k.promise | k.thenPromise | k.errorPromise
              | k.exceptionPromise | k.completePromise;
          var I, D, O, R, P, A, F, W, B, V, H = 1;
          I = {
            name: "created",
            enter: function (e) {
              e._setState(D)
            },
            cancel: s,
            done: s,
            then: s,
            _completed: s,
            _error: s,
            _notify: s,
            _progress: s,
            _setCompleteValue: s,
            _setErrorValue: s
          }, D = {
            name: "working",
            enter: s,
            cancel: function (e) {
              e._setState(P)
            },
            done: p,
            then: S,
            _completed: a,
            _error: f,
            _notify: s,
            _progress: _,
            _setCompleteValue: w,
            _setErrorValue: b
          }, O = {
            name: "waiting",
            enter: function (e) {
              var t = e._value;
              if (t instanceof U && t._state !== V && t._state !== W) {
                y(t,
                    {promise: e});
              } else {
                var n = function (i) {
                  t._errorId ? e._chainedError(i, t) : (v(e, i, l, t,
                      n), e._error(i))
                };
                n.handlesOnError = !0, t.then(e._completed.bind(e), n,
                    e._progress.bind(e))
              }
            },
            cancel: function (e) {
              e._setState(R)
            },
            done: p,
            then: S,
            _completed: a,
            _error: f,
            _notify: s,
            _progress: _,
            _setCompleteValue: w,
            _setErrorValue: b
          }, R = {
            name: "waiting_canceled",
            enter: function (e) {
              e._setState(A);
              var t = e._value;
              t.cancel && t.cancel()
            },
            cancel: s,
            done: p,
            then: S,
            _completed: a,
            _error: f,
            _notify: s,
            _progress: _,
            _setCompleteValue: w,
            _setErrorValue: b
          }, P = {
            name: "canceled",
            enter: function (e) {
              e._setState(A), e._cancelAction()
            },
            cancel: s,
            done: p,
            then: S,
            _completed: a,
            _error: f,
            _notify: s,
            _progress: _,
            _setCompleteValue: w,
            _setErrorValue: b
          }, A = {
            name: "canceling",
            enter: function (e) {
              var t = new Error(M);
              t.name = t.message, e._value = t, e._setState(B)
            },
            cancel: s,
            done: s,
            then: s,
            _completed: s,
            _error: s,
            _notify: s,
            _progress: s,
            _setCompleteValue: s,
            _setErrorValue: s
          }, F = {
            name: "complete_notify",
            enter: function (e) {
              if (e.done = G.prototype.done, e.then = G.prototype.then, e._listeners) {
                for (var t,
                    n = [e]; n.length;) {
                  (t = n.shift())._state._notify(t, n);
                }
              }
              e._setState(W)
            },
            cancel: s,
            done: null,
            then: null,
            _completed: s,
            _error: s,
            _notify: g,
            _progress: s,
            _setCompleteValue: s,
            _setErrorValue: s
          }, W = {
            name: "success",
            enter: function (e) {
              e.done = G.prototype.done, e.then = G.prototype.then, e._cleanupAction()
            },
            cancel: s,
            done: null,
            then: null,
            _completed: s,
            _error: s,
            _notify: g,
            _progress: s,
            _setCompleteValue: s,
            _setErrorValue: s
          }, B = {
            name: "error_notify",
            enter: function (e) {
              if (e.done = j.prototype.done, e.then = j.prototype.then, e._listeners) {
                for (var t,
                    n = [e]; n.length;) {
                  (t = n.shift())._state._notify(t, n);
                }
              }
              e._setState(V)
            },
            cancel: s,
            done: null,
            then: null,
            _completed: s,
            _error: s,
            _notify: m,
            _progress: s,
            _setCompleteValue: s,
            _setErrorValue: s
          }, V = {
            name: "error",
            enter: function (e) {
              e.done = j.prototype.done, e.then = j.prototype.then, e._cleanupAction()
            },
            cancel: s,
            done: null,
            then: null,
            _completed: s,
            _error: s,
            _notify: m,
            _progress: s,
            _setCompleteValue: s,
            _setErrorValue: s
          };
          var z, K = n.Class.define(null, {
                _listeners: null,
                _nextState: null,
                _state: null,
                _value: null,
                cancel: function () {
                  this._state.cancel(this), this._run()
                },
                done: function (e, t, n) {
                  this._state.done(this, e, t, n)
                },
                then: function (e, t, n) {
                  return this._state.then(this, e, t, n)
                },
                _chainedError: function (e, t) {
                  var n = this._state._error(this, e, c, t);
                  return this._run(), n
                },
                _completed: function (e) {
                  var t = this._state._completed(this, e);
                  return this._run(), t
                },
                _error: function (e) {
                  var t = this._state._error(this, e, d);
                  return this._run(), t
                },
                _progress: function (e) {
                  this._state._progress(this, e)
                },
                _setState: function (e) {
                  this._nextState = e
                },
                _setCompleteValue: function (e) {
                  this._state._setCompleteValue(this, e), this._run()
                },
                _setChainedErrorValue: function (e, t) {
                  var n = this._state._setErrorValue(this, e, c, t);
                  return this._run(), n
                },
                _setExceptionValue: function (e) {
                  var t = this._state._setErrorValue(this, e, h);
                  return this._run(), t
                },
                _run: function () {
                  for (;
                      this._nextState;) {
                    this._state = this._nextState, this._nextState = null, this._state.enter(
                        this)
                  }
                }
              }, {supportedForProcessing: !1}), U = n.Class.derive(K, function (e) {
                T && (!0 === T || T & k.thenPromise)
                && (this._stack = Y._getStack()), this._creator = e, this._setState(
                    I), this._run()
              }, {
                _creator: null, _cancelAction: function () {
                  this._creator && this._creator.cancel()
                }, _cleanupAction: function () {
                  this._creator = null
                }
              }, {supportedForProcessing: !1}), j = n.Class.define(function (e) {
                T && (!0 === T || T & k.errorPromise)
                && (this._stack = Y._getStack()), this._value = e, v(this, e, d)
              }, {
                cancel: function () {
                }, done: function (e, t) {
                  var n = this._value;
                  if (t) {
                    try {
                      t.handlesOnError || v(null, n, l, this, t);
                      var i = t(n);
                      return void (i && "object" == typeof i && "function"
                          == typeof i.done && i.done())
                    } catch (e) {
                      n = e
                    }
                  }
                  n instanceof Error && n.message === M || Y._doneHandler(n)
                }, then: function (e, t) {
                  if (!t) {
                    return this;
                  }
                  var n, i = this._value;
                  try {
                    t.handlesOnError || v(null, i, l, this, t), n = new G(t(i))
                  } catch (e) {
                    n = e === i ? this : new q(e)
                  }
                  return n
                }
              }, {supportedForProcessing: !1}), q = n.Class.derive(j, function (e) {
                T && (!0 === T || T & k.exceptionPromise)
                && (this._stack = Y._getStack()), this._value = e, v(this, e, h)
              }, {}, {supportedForProcessing: !1}),
              G = n.Class.define(function (e) {
                if (T && (!0 === T || T & k.completePromise)
                && (this._stack = Y._getStack()), e && "object" == typeof e
                && "function" == typeof e.then) {
                  var t = new U(null);
                  return t._setCompleteValue(e), t
                }
                this._value = e
              }, {
                cancel: function () {
                }, done: function (e) {
                  if (e) {
                    try {
                      var t = e(this._value);
                      t && "object" == typeof t && "function" == typeof t.done
                      && t.done()
                    } catch (e) {
                      Y._doneHandler(e)
                    }
                  }
                }, then: function (e) {
                  try {
                    var t = e ? e(this._value) : this._value;
                    return t === this._value ? this : new G(t)
                  } catch (e) {
                    return new q(e)
                  }
                }
              }, {supportedForProcessing: !1}),
              Y = n.Class.derive(K, function (e, t) {
                T && (!0 === T || T & k.promise)
                && (this._stack = Y._getStack()), this._oncancel = t, this._setState(
                    I), this._run();
                try {
                  e(this._completed.bind(this), this._error.bind(this),
                      this._progress.bind(this))
                } catch (e) {
                  this._setExceptionValue(e)
                }
              }, {
                _oncancel: null, _cancelAction: function () {
                  try {
                    if (!this._oncancel) {
                      throw new Error(
                          "Promise did not implement oncancel");
                    }
                    this._oncancel()
                  } catch (e) {
                    e.message, e.stack;
                    x.dispatchEvent("error", e)
                  }
                }, _cleanupAction: function () {
                  this._oncancel = null
                }
              }, {
                addEventListener: function (e, t, n) {
                  x.addEventListener(e, t, n)
                }, any: function (e) {
                  return new Y(function (t, n) {
                    var i = Object.keys(e);
                    0 === i.length && t();
                    var o = 0;
                    i.forEach(function (r) {
                      Y.as(e[r]).then(function () {
                        t({key: r, value: e[r]})
                      }, function (s) {
                        s instanceof Error && s.name === M ? ++o === i.length
                            && t(Y.cancel) : n({key: r, value: e[r]})
                      })
                    })
                  }, function () {
                    Object.keys(e).forEach(function (t) {
                      var n = Y.as(e[t]);
                      "function" == typeof n.cancel && n.cancel()
                    })
                  })
                }, as: function (e) {
                  return e && "object" == typeof e && "function"
                  == typeof e.then ? e : new G(e)
                }, cancel: {
                  get: function () {
                    return z = z || new j(new i(M))
                  }
                }, dispatchEvent: function (e, t) {
                  return x.dispatchEvent(e, t)
                }, is: function (e) {
                  return e && "object" == typeof e && "function"
                      == typeof e.then
                }, join: function (e) {
                  return new Y(function (t, n, i) {
                    var o = Object.keys(e), r = Array.isArray(e) ? [] : {},
                        s = Array.isArray(e) ? [] : {}, a = 0, u = o.length,
                        l = function (e) {
                          if (0 == --u) {
                            var a = Object.keys(r).length;
                            if (0 === a) {
                              t(s);
                            } else {
                              var l = 0;
                              o.forEach(function (e) {
                                var t = r[e];
                                t instanceof Error && t.name === M && l++
                              }), l === a ? t(Y.cancel) : n(r)
                            }
                          } else {
                            i({Key: e, Done: !0})
                          }
                        };
                    o.forEach(function (t) {
                      var n = e[t];
                      void 0 === n ? a++ : Y.then(n, function (e) {
                        s[t] = e, l(t)
                      }, function (e) {
                        r[t] = e, l(t)
                      })
                    }), 0 !== (u -= a) || t(s)
                  }, function () {
                    Object.keys(e).forEach(function (t) {
                      var n = Y.as(e[t]);
                      "function" == typeof n.cancel && n.cancel()
                    })
                  })
                }, removeEventListener: function (e, t, n) {
                  x.removeEventListener(e, t, n)
                }, supportedForProcessing: !1, then: function (e, t, n, i) {
                  return Y.as(e).then(t, n, i)
                }, thenEach: function (e, t, n, i) {
                  var o = Array.isArray(e) ? [] : {};
                  return Object.keys(e).forEach(function (r) {
                    o[r] = Y.as(e[r]).then(t, n, i)
                  }), Y.join(o)
                }, timeout: function (e, t) {
                  var n = E(e);
                  return t ? L(n, t) : n
                }, wrap: function (e) {
                  return new G(e)
                }, wrapError: function (e) {
                  return new j(e)
                }, _veryExpensiveTagWithStack: {
                  get: function () {
                    return T
                  }, set: function (e) {
                    T = e
                  }
                }, _veryExpensiveTagWithStack_tag: k, _getStack: function () {
                  if (e.Debug && e.Debug.debuggerEnabled) {
                    try {
                      throw new Error
                    } catch (e) {
                      return e.stack
                    }
                  }
                }, _cancelBlocker: function (e, t) {
                  if (!Y.is(e)) {
                    return Y.wrap(e);
                  }
                  var n, i, o = new Y(function (e, t) {
                    n = e, i = t
                  }, function () {
                    n = null, i = null, t && t()
                  });
                  return e.then(function (e) {
                    n && n(e)
                  }, function (e) {
                    i && i(e)
                  }), o
                }
              });
          return Object.defineProperties(Y,
              o.createEventProperties(N)), Y._doneHandler = function (e) {
            t._setImmediate(function () {
              throw e
            })
          }, {PromiseStateMachine: K, Promise: Y, state_created: I}
        }), t("WinJS/Promise",
        ["WinJS/Core/_Base", "WinJS/Promise/_StateMachine"], function (e, t) {
          "use strict";
          return e.Namespace.define("WinJS", {Promise: t.Promise}), t.Promise
        });
    var n = e["WinJS/Core/_WinJS"];
    "undefined" == typeof exports && "function" == typeof define && define.amd
        ? define("vs/base/common/winjs.base.raw", n)
        : module.exports = n, "undefined" != typeof process && "function"
    == typeof process.nextTick
    && (e["WinJS/Core/_BaseCoreUtils"]._setImmediate = function (e) {
      return process.nextTick(e)
    })
  }(), define(d[7], h([551]), function (e) {
    "use strict";
    return {Promise: e.Promise, TPromise: e.Promise, PPromise: e.Promise}
  }), define(d[10], h([1, 0, 15, 29, 7]), function (e, t, n, i, o) {
    "use strict";

    function r(e) {
      s(e) || t.errorHandler.onUnexpectedError(e)
    }

    function s(e) {
      return e instanceof Error && e.name === l && e.message === l
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var a = {};
    o.TPromise.addEventListener("error", function (e) {
      var t = e.detail, n = t.id;
      t.parent ? t.handler && a && delete a[n] : (a[n] = t, 1 === Object.keys(
          a).length && setTimeout(function () {
        var e = a;
        a = {}, Object.keys(e).forEach(function (t) {
          var n = e[t];
          n.exception ? r(n.exception) : n.error && r(n.error), console.log(
              "WARNING: Promise with no error callback:" + n.id), console.log(
              n), n.exception && console.log(n.exception.stack)
        })
      }, 0))
    });
    var u = function () {
      function e() {
        this.listeners = [], this.unexpectedErrorHandler = function (e) {
          n.setTimeout(function () {
            if (e.stack) {
              throw new Error(e.message + "\n\n" + e.stack);
            }
            throw e
          }, 0)
        }
      }

      return e.prototype.addListener = function (e) {
        var t = this;
        return this.listeners.push(e), function () {
          t._removeListener(e)
        }
      }, e.prototype.emit = function (e) {
        this.listeners.forEach(function (t) {
          t(e)
        })
      }, e.prototype._removeListener = function (e) {
        this.listeners.splice(this.listeners.indexOf(e), 1)
      }, e.prototype.setUnexpectedErrorHandler = function (e) {
        this.unexpectedErrorHandler = e
      }, e.prototype.getUnexpectedErrorHandler = function () {
        return this.unexpectedErrorHandler
      }, e.prototype.onUnexpectedError = function (e) {
        this.unexpectedErrorHandler(e), this.emit(e)
      }, e.prototype.onUnexpectedExternalError = function (e) {
        this.unexpectedErrorHandler(e)
      }, e
    }();
    t.ErrorHandler = u, t.errorHandler = new u, t.setUnexpectedErrorHandler = function (e) {
      t.errorHandler.setUnexpectedErrorHandler(e)
    }, t.onUnexpectedError = r, t.onUnexpectedExternalError = function (e) {
      s(e) || t.errorHandler.onUnexpectedExternalError(e)
    }, t.onUnexpectedPromiseError = function (e) {
      return e.then(null, r)
    }, t.transformErrorForSerialization = function (e) {
      return e instanceof Error ? {
        $isError: !0,
        name: e.name,
        message: e.message,
        stack: e.stacktrace || e.stack
      } : e
    };
    var l = "Canceled";
    t.isPromiseCanceledError = s, t.canceled = function () {
      var e = new Error(l);
      return e.name = e.message, e
    }, t.notImplemented = function () {
      return new Error("Not Implemented")
    }, t.illegalArgument = function (e) {
      return e ? new Error("Illegal argument: " + e) : new Error(
          "Illegal argument")
    }, t.illegalState = function (e) {
      return e ? new Error("Illegal state: " + e) : new Error("Illegal state")
    }, t.readonly = function (e) {
      return e ? new Error("readonly property '" + e + " cannot be changed'")
          : new Error("readonly property cannot be changed")
    }, t.create = function (e, t) {
      void 0 === t && (t = {});
      var n = new Error(e);
      return i.isNumber(t.severity) && (n.severity = t.severity), t.actions
      && (n.actions = t.actions), n
    }, t.getErrorMessage = function (e) {
      return e ? e.message ? e.message : e.stack ? e.stack.split("\n")[0]
          : String(e) : "Error"
    }
  }), define(d[424], h([1, 0, 10]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e() {
      }

      return e.prototype.add = function (e, t, n) {
        var i = this;
        void 0 === t && (t = null), this._callbacks
        || (this._callbacks = [], this._contexts = []), this._callbacks.push(
            e), this._contexts.push(t), Array.isArray(n) && n.push({
          dispose: function () {
            return i.remove(e, t)
          }
        })
      }, e.prototype.remove = function (e, t) {
        if (void 0 === t && (t = null), this._callbacks) {
          for (var n = !1, i = 0, o = this._callbacks.length; i < o;
              i++) {
            if (this._callbacks[i] === e) {
              if (this._contexts[i] === t) {
                return this._callbacks.splice(i,
                    1), void this._contexts.splice(i, 1);
              }
              n = !0
            }
          }
          if (n) {
            throw new Error(
                "When adding a listener with a context, you should remove it with the same context")
          }
        }
      }, e.prototype.invoke = function () {
        for (var e = [], t = 0; t < arguments.length; t++) {
          e[t] = arguments[t];
        }
        if (this._callbacks) {
          for (var i = [], o = this._callbacks.slice(0),
              r = this._contexts.slice(0), s = 0, a = o.length; s < a;
              s++) {
            try {
              i.push(o[s].apply(r[s], e))
            } catch (e) {
              n.onUnexpectedError(e)
            }
          }
          return i
        }
      }, e.prototype.isEmpty = function () {
        return !this._callbacks || 0 === this._callbacks.length
      }, e.prototype.entries = function () {
        var e = this;
        return this._callbacks ? this._callbacks.map(function (t, n) {
          return [t, e._contexts[n]]
        }) : []
      }, e.prototype.dispose = function () {
        this._callbacks = void 0, this._contexts = void 0
      }, e
    }();
    t.default = i
  }), define(d[11], h([1, 0, 3, 424, 7, 136]), function (e, t, n, i, o, r) {
    "use strict";

    function s(e) {
      return function (t, n, i) {
        void 0 === n && (n = null);
        var o = e(function (e) {
          return o.dispose(), t.call(n, e)
        }, null, i);
        return o
      }
    }

    function a(e, t) {
      return function (n, i, o) {
        return void 0 === i && (i = null), e(function (e) {
          return n.call(i, t(e))
        }, null, o)
      }
    }

    function u(e, t) {
      return function (n, i, o) {
        return void 0 === i && (i = null), e(function (e) {
          return t(e) && n.call(i, e)
        }, null, o)
      }
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var l;
    !function (e) {
      var t = {
        dispose: function () {
        }
      };
      e.None = function () {
        return t
      }
    }(l || (l = {})), t.default = l;
    var c = function () {
      function e(e) {
        this._options = e
      }

      return Object.defineProperty(e.prototype, "event", {
        get: function () {
          var t = this;
          return this._event || (this._event = function (n, o, r) {
            t._callbacks || (t._callbacks = new i.default);
            var s = t._callbacks.isEmpty();
            s && t._options && t._options.onFirstListenerAdd
            && t._options.onFirstListenerAdd(t), t._callbacks.add(n, o), s
            && t._options && t._options.onFirstListenerDidAdd
            && t._options.onFirstListenerDidAdd(t), t._options
            && t._options.onListenerDidAdd && t._options.onListenerDidAdd(t, n,
                o);
            var a;
            return a = {
              dispose: function () {
                a.dispose = e._noop, t._disposed || (t._callbacks.remove(n,
                    o), t._options && t._options.onLastListenerRemove
                && t._callbacks.isEmpty() && t._options.onLastListenerRemove(t))
              }
            }, Array.isArray(r) && r.push(a), a
          }), this._event
        }, enumerable: !0, configurable: !0
      }), e.prototype.fire = function (e) {
        this._callbacks && this._callbacks.invoke.call(this._callbacks, e)
      }, e.prototype.dispose = function () {
        this._callbacks
        && (this._callbacks.dispose(), this._callbacks = void 0, this._disposed = !0)
      }, e._noop = function () {
      }, e
    }();
    t.Emitter = c;
    var d = function () {
      function e() {
        var e = this;
        this.hasListeners = !1, this.events = [], this.emitter = new c({
          onFirstListenerAdd: function () {
            return e.onFirstListenerAdd()
          }, onLastListenerRemove: function () {
            return e.onLastListenerRemove()
          }
        })
      }

      return Object.defineProperty(e.prototype, "event", {
        get: function () {
          return this.emitter.event
        }, enumerable: !0, configurable: !0
      }), e.prototype.add = function (e) {
        var t = this, i = {event: e, listener: null};
        this.events.push(i), this.hasListeners && this.hook(i);
        return n.toDisposable(r.once(function () {
          t.hasListeners && t.unhook(i);
          var e = t.events.indexOf(i);
          t.events.splice(e, 1)
        }))
      }, e.prototype.onFirstListenerAdd = function () {
        var e = this;
        this.hasListeners = !0, this.events.forEach(function (t) {
          return e.hook(t)
        })
      }, e.prototype.onLastListenerRemove = function () {
        var e = this;
        this.hasListeners = !1, this.events.forEach(function (t) {
          return e.unhook(t)
        })
      }, e.prototype.hook = function (e) {
        var t = this;
        e.listener = e.event(function (e) {
          return t.emitter.fire(e)
        })
      }, e.prototype.unhook = function (e) {
        e.listener.dispose(), e.listener = null
      }, e.prototype.dispose = function () {
        this.emitter.dispose()
      }, e
    }();
    t.EventMultiplexer = d, t.fromEventEmitter = function (e, t) {
      return function (n, i, o) {
        var r = e.addListener(t, function () {
          n.apply(i, arguments)
        });
        return Array.isArray(o) && o.push(r), r
      }
    }, t.fromCallback = function (e) {
      var t, n = new c({
        onFirstListenerAdd: function () {
          return t = e(function (e) {
            return n.fire(e)
          })
        }, onLastListenerRemove: function () {
          return t.dispose()
        }
      });
      return n.event
    }, t.fromPromise = function (e) {
      var t = new c, n = !1;
      return e.then(null, function () {
        return null
      }).then(function () {
        n ? t.fire() : setTimeout(function () {
          return t.fire()
        }, 0)
      }), n = !0, t.event
    }, t.toPromise = function (e) {
      return new o.TPromise(function (t) {
        var n = e(function (e) {
          n.dispose(), t(e)
        })
      })
    }, t.delayed = function (e) {
      var t = null, n = null, i = new c({
        onFirstListenerAdd: function () {
          t = e.then(function (e) {
            return n = e(function (e) {
              return i.fire(e)
            })
          }, function () {
            return null
          })
        }, onLastListenerRemove: function () {
          t && (t.cancel(), t = null), n && (n.dispose(), n = null)
        }
      });
      return i.event
    }, t.once = s, t.any = function () {
      for (var e = [], t = 0; t < arguments.length; t++) {
        e[t] = arguments[t];
      }
      return function (t, i, o) {
        return void 0 === i && (i = null), n.combinedDisposable(
            e.map(function (e) {
              return e(function (e) {
                return t.call(i, e)
              }, null, o)
            }))
      }
    }, t.debounceEvent = function (e, t, n, i) {
      void 0 === n && (n = 100), void 0 === i && (i = !1);
      var o, r, s, a = 0, u = new c({
        onFirstListenerAdd: function () {
          o = e(function (e) {
            a++, r = t(r, e), !s && i && u.fire(r), clearTimeout(
                s), s = setTimeout(function () {
              var e = r;
              r = void 0, (!i || a > 1) && u.fire(e), s = null, a = 0
            }, n)
          })
        }, onLastListenerRemove: function () {
          o.dispose()
        }
      });
      return u.event
    };
    var h = function () {
      function e() {
        this.buffers = []
      }

      return e.prototype.wrapEvent = function (e) {
        var t = this;
        return function (n, i, o) {
          return e(function (e) {
            var o = t.buffers[t.buffers.length - 1];
            o ? o.push(function () {
              return n.call(i, e)
            }) : n.call(i, e)
          }, void 0, o)
        }
      }, e.prototype.bufferEvents = function (e) {
        var t = [];
        this.buffers.push(t), e(), this.buffers.pop(), t.forEach(function (e) {
          return e()
        })
      }, e
    }();
    t.EventBufferer = h, t.mapEvent = a, t.filterEvent = u;
    var p = function () {
      function e(e) {
        this._event = e
      }

      return Object.defineProperty(e.prototype, "event", {
        get: function () {
          return this._event
        }, enumerable: !0, configurable: !0
      }), e.prototype.map = function (t) {
        return new e(a(this._event, t))
      }, e.prototype.filter = function (t) {
        return new e(u(this._event, t))
      }, e.prototype.on = function (e, t, n) {
        return this._event(e, t, n)
      }, e
    }();
    t.chain = function (e) {
      return new p(e)
    }, t.stopwatch = function (e) {
      var t = (new Date).getTime();
      return a(s(e), function (e) {
        return (new Date).getTime() - t
      })
    }, t.buffer = function (e, t, n) {
      void 0 === t && (t = !1), void 0 === n && (n = []), n = n.slice();
      var i = e(function (e) {
        n ? n.push(e) : r.fire(e)
      }), o = function () {
        n.forEach(function (e) {
          return r.fire(e)
        }), n = null
      }, r = new c({
        onFirstListenerAdd: function () {
          i || (i = e(function (e) {
            return r.fire(e)
          }))
        }, onFirstListenerDidAdd: function () {
          n && (t ? setTimeout(o) : o())
        }, onLastListenerRemove: function () {
          i.dispose(), i = null
        }
      });
      return r.event
    }, t.echo = function (e, t, n) {
      void 0 === t && (t = !1), void 0 === n && (n = []), n = n.slice(), e(
          function (e) {
            n.push(e), o.fire(e)
          });
      var i = function (e, t) {
        return n.forEach(function (n) {
          return e.call(t, n)
        })
      }, o = new c({
        onListenerDidAdd: function (e, n, o) {
          t ? setTimeout(function () {
            return i(n, o)
          }) : i(n, o)
        }
      });
      return o.event
    }
  }), define(d[28], h([1, 0, 15, 11]), function (e, t, n, i) {
    "use strict";

    function o() {
      return s.INSTANCE.getZoomLevel()
    }

    function r() {
      return s.INSTANCE.getPixelRatio()
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      function e() {
        this._zoomLevel = 0, this._lastZoomLevelChangeTime = 0, this._onDidChangeZoomLevel = new i.Emitter, this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event, this._zoomFactor = 0, this._onDidChangeFullscreen = new i.Emitter, this.onDidChangeFullscreen = this._onDidChangeFullscreen.event, this._accessibilitySupport = 0, this._onDidChangeAccessibilitySupport = new i.Emitter, this.onDidChangeAccessibilitySupport = this._onDidChangeAccessibilitySupport.event
      }

      return e.prototype.getZoomLevel = function () {
        return this._zoomLevel
      }, e.prototype.getTimeSinceLastZoomLevelChanged = function () {
        return Date.now() - this._lastZoomLevelChangeTime
      }, e.prototype.setZoomLevel = function (e, t) {
        this._zoomLevel !== e
        && (this._zoomLevel = e, this._lastZoomLevelChangeTime = t ? 0
            : Date.now(), this._onDidChangeZoomLevel.fire(this._zoomLevel))
      }, e.prototype.getZoomFactor = function () {
        return this._zoomFactor
      }, e.prototype.setZoomFactor = function (e) {
        this._zoomFactor = e
      }, e.prototype.getPixelRatio = function () {
        var e = document.createElement("canvas").getContext("2d");
        return (window.devicePixelRatio || 1) / (e.webkitBackingStorePixelRatio
            || e.mozBackingStorePixelRatio || e.msBackingStorePixelRatio
            || e.oBackingStorePixelRatio || e.backingStorePixelRatio || 1)
      }, e.prototype.setFullscreen = function (e) {
        this._fullscreen !== e
        && (this._fullscreen = e, this._onDidChangeFullscreen.fire())
      }, e.prototype.isFullscreen = function () {
        return this._fullscreen
      }, e.prototype.setAccessibilitySupport = function (e) {
        this._accessibilitySupport !== e
        && (this._accessibilitySupport = e, this._onDidChangeAccessibilitySupport.fire())
      }, e.prototype.getAccessibilitySupport = function () {
        return this._accessibilitySupport
      }, e.INSTANCE = new e, e
    }();
    t.setZoomLevel = function (e, t) {
      s.INSTANCE.setZoomLevel(e, t)
    }, t.getZoomLevel = o, t.getTimeSinceLastZoomLevelChanged = function () {
      return s.INSTANCE.getTimeSinceLastZoomLevelChanged()
    }, t.onDidChangeZoomLevel = function (e) {
      return s.INSTANCE.onDidChangeZoomLevel(e)
    }, t.getZoomFactor = function () {
      return s.INSTANCE.getZoomFactor()
    }, t.setZoomFactor = function (e) {
      s.INSTANCE.setZoomFactor(e)
    }, t.getPixelRatio = r, t.setFullscreen = function (e) {
      s.INSTANCE.setFullscreen(e)
    }, t.isFullscreen = function () {
      return s.INSTANCE.isFullscreen()
    }, t.onDidChangeFullscreen = function (e) {
      return s.INSTANCE.onDidChangeFullscreen(e)
    }, t.setAccessibilitySupport = function (e) {
      s.INSTANCE.setAccessibilitySupport(e)
    }, t.getAccessibilitySupport = function () {
      return s.INSTANCE.getAccessibilitySupport()
    }, t.onDidChangeAccessibilitySupport = function (e) {
      return s.INSTANCE.onDidChangeAccessibilitySupport(e)
    };
    var a = navigator.userAgent;
    t.isIE = a.indexOf("Trident") >= 0, t.isEdge = a.indexOf("Edge/")
        >= 0, t.isEdgeOrIE = t.isIE || t.isEdge, t.isOpera = a.indexOf("Opera")
        >= 0, t.isFirefox = a.indexOf("Firefox") >= 0, t.isWebKit = a.indexOf(
        "AppleWebKit") >= 0, t.isChrome = a.indexOf("Chrome")
        >= 0, t.isSafari = -1 === a.indexOf("Chrome") && a.indexOf("Safari")
        >= 0, t.isIPad = a.indexOf("iPad") >= 0, t.isChromev56 = a.indexOf(
        "Chrome/56.") >= 0 && -1 === a.indexOf(
        "Edge/"), t.supportsTranslate3d = !t.isFirefox, t.canUseTranslate3d = function () {
      if (!t.supportsTranslate3d) {
        return !1;
      }
      if (0 !== o()) {
        return !1;
      }
      if (t.isChromev56) {
        var e = r();
        if (Math.floor(e) !== e) {
          return !1
        }
      }
      return !0
    }
  }), define(d[124], h([1, 0, 11]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.domEvent = function (e, t, i) {
      var o = function (e) {
        return r.fire(e)
      }, r = new n.Emitter({
        onFirstListenerAdd: function () {
          e.addEventListener(t, o, i)
        }, onLastListenerRemove: function () {
          e.removeEventListener(t, o, i)
        }
      });
      return r.event
    }, t.stop = function (e) {
      return n.mapEvent(e, function (e) {
        return e.preventDefault(), e.stopPropagation(), e
      })
    }
  }), define(d[65], h([1, 0, 40, 15, 28]), function (e, t, n, i, o) {
    "use strict";

    function r(e) {
      if (e.charCode) {
        var t = String.fromCharCode(e.charCode).toUpperCase();
        return n.KeyCodeUtils.fromString(t)
      }
      return s[e.keyCode] || 0
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var s = {};
    s[3] = 7, s[8] = 1, s[9] = 2, s[13] = 3, s[16] = 4, s[17] = 5, s[18] = 6, s[19] = 7, s[20] = 8, s[27] = 9, s[32] = 10, s[33] = 11, s[34] = 12, s[35] = 13, s[36] = 14, s[37] = 15, s[38] = 16, s[39] = 17, s[40] = 18, s[45] = 19, s[46] = 20, s[48] = 21, s[49] = 22, s[50] = 23, s[51] = 24, s[52] = 25, s[53] = 26, s[54] = 27, s[55] = 28, s[56] = 29, s[57] = 30, s[65] = 31, s[66] = 32, s[67] = 33, s[68] = 34, s[69] = 35, s[70] = 36, s[71] = 37, s[72] = 38, s[73] = 39, s[74] = 40, s[75] = 41, s[76] = 42, s[77] = 43, s[78] = 44, s[79] = 45, s[80] = 46, s[81] = 47, s[82] = 48, s[83] = 49, s[84] = 50, s[85] = 51, s[86] = 52, s[87] = 53, s[88] = 54, s[89] = 55, s[90] = 56, s[93] = 58, s[96] = 93, s[97] = 94, s[98] = 95, s[99] = 96, s[100] = 97, s[101] = 98, s[102] = 99, s[103] = 100, s[104] = 101, s[105] = 102, s[106] = 103, s[107] = 104, s[108] = 105, s[109] = 106, s[110] = 107, s[111] = 108, s[112] = 59, s[113] = 60, s[114] = 61, s[115] = 62, s[116] = 63, s[117] = 64, s[118] = 65, s[119] = 66, s[120] = 67, s[121] = 68, s[122] = 69, s[123] = 70, s[124] = 71, s[125] = 72, s[126] = 73, s[127] = 74, s[128] = 75, s[129] = 76, s[130] = 77, s[144] = 78, s[145] = 79, s[186] = 80, s[187] = 81, s[188] = 82, s[189] = 83, s[190] = 84, s[191] = 85,s[192] = 86,s[193] = 110,s[194] = 111,s[219] = 87,s[220] = 88,s[221] = 89,s[222] = 90,s[223] = 91,s[226] = 92,s[229] = 109,o.isIE
        ? s[91] = 57 : o.isFirefox
            ? (s[59] = 80, s[107] = 81, s[109] = 83, i.isMacintosh
            && (s[224] = 57)) : o.isWebKit && (s[91] = 57, i.isMacintosh
            ? s[93] = 57 : s[92] = 57);
    var a = i.isMacintosh ? 256 : 2048, u = i.isMacintosh ? 2048 : 256,
        l = function () {
          function e(e) {
            var t = e;
            this.browserEvent = t, this.target = t.target, this.ctrlKey = t.ctrlKey, this.shiftKey = t.shiftKey, this.altKey = t.altKey, this.metaKey = t.metaKey, this.keyCode = r(
                t), this.code = t.code, this.ctrlKey = this.ctrlKey || 5
                === this.keyCode, this.altKey = this.altKey || 6
                === this.keyCode, this.shiftKey = this.shiftKey || 4
                === this.keyCode, this.metaKey = this.metaKey || 57
                === this.keyCode, this._asKeybinding = this._computeKeybinding(), this._asRuntimeKeybinding = this._computeRuntimeKeybinding()
          }

          return e.prototype.preventDefault = function () {
            this.browserEvent && this.browserEvent.preventDefault
            && this.browserEvent.preventDefault()
          }, e.prototype.stopPropagation = function () {
            this.browserEvent && this.browserEvent.stopPropagation
            && this.browserEvent.stopPropagation()
          }, e.prototype.toKeybinding = function () {
            return this._asRuntimeKeybinding
          }, e.prototype.equals = function (e) {
            return this._asKeybinding === e
          }, e.prototype._computeKeybinding = function () {
            var e = 0;
            5 !== this.keyCode && 4 !== this.keyCode && 6 !== this.keyCode && 57
            !== this.keyCode && (e = this.keyCode);
            var t = 0;
            return this.ctrlKey && (t |= a), this.altKey
            && (t |= 512), this.shiftKey && (t |= 1024), this.metaKey
            && (t |= u), t |= e
          }, e.prototype._computeRuntimeKeybinding = function () {
            var e = 0;
            return 5 !== this.keyCode && 4 !== this.keyCode && 6
            !== this.keyCode && 57 !== this.keyCode
            && (e = this.keyCode), new n.SimpleKeybinding(this.ctrlKey,
                this.shiftKey, this.altKey, this.metaKey, e)
          }, e
        }();
    t.StandardKeyboardEvent = l
  }), define(d[47], h([1, 0, 15, 28, 148]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e(e) {
        this.timestamp = Date.now(), this.browserEvent = e, this.leftButton = 0
            === e.button, this.middleButton = 1
            === e.button, this.rightButton = 2
            === e.button, this.target = e.target, this.detail = e.detail
            || 1, "dblclick" === e.type
        && (this.detail = 2), this.ctrlKey = e.ctrlKey, this.shiftKey = e.shiftKey, this.altKey = e.altKey, this.metaKey = e.metaKey, "number"
        == typeof e.pageX ? (this.posx = e.pageX, this.posy = e.pageY)
            : (this.posx = e.clientX + document.body.scrollLeft
                + document.documentElement.scrollLeft, this.posy = e.clientY
                + document.body.scrollTop + document.documentElement.scrollTop);
        var t = o.IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(
            self, e.view);
        this.posx -= t.left, this.posy -= t.top
      }

      return e.prototype.preventDefault = function () {
        this.browserEvent.preventDefault && this.browserEvent.preventDefault()
      }, e.prototype.stopPropagation = function () {
        this.browserEvent.stopPropagation && this.browserEvent.stopPropagation()
      }, e
    }();
    t.StandardMouseEvent = r;
    var s = function (e) {
      function t(t) {
        var n = e.call(this, t) || this;
        return n.dataTransfer = t.dataTransfer, n
      }

      return f(t, e), t
    }(r);
    t.DragMouseEvent = s;
    var a = function (e) {
      function t(t) {
        return e.call(this, t) || this
      }

      return f(t, e), t
    }(s);
    t.DropMouseEvent = a;
    var u = function () {
      function e(e, t, o) {
        if (void 0 === t && (t = 0), void 0 === o
        && (o = 0), this.browserEvent = e || null, this.target = e ? e.target
            || e.targetNode || e.srcElement
            : null, this.deltaY = o, this.deltaX = t, e) {
          var r = e, s = e;
          void 0 !== r.wheelDeltaY ? this.deltaY = r.wheelDeltaY / 120 : void 0
              !== s.VERTICAL_AXIS && s.axis === s.VERTICAL_AXIS
              && (this.deltaY = -s.detail / 3), void 0 !== r.wheelDeltaX
              ? i.isSafari && n.isWindows ? this.deltaX = -r.wheelDeltaX / 120
                  : this.deltaX = r.wheelDeltaX / 120 : void 0
              !== s.HORIZONTAL_AXIS && s.axis === s.HORIZONTAL_AXIS
              && (this.deltaX = -e.detail / 3), 0 === this.deltaY && 0
          === this.deltaX && e.wheelDelta && (this.deltaY = e.wheelDelta / 120)
        }
      }

      return e.prototype.preventDefault = function () {
        this.browserEvent && this.browserEvent.preventDefault
        && this.browserEvent.preventDefault()
      }, e.prototype.stopPropagation = function () {
        this.browserEvent && this.browserEvent.stopPropagation
        && this.browserEvent.stopPropagation()
      }, e
    }();
    t.StandardMouseWheelEvent = u
  }), define(d[123], h([1, 0, 11]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i, o = Object.freeze(function (e, t) {
      var n = setTimeout(e.bind(t), 0);
      return {
        dispose: function () {
          clearTimeout(n)
        }
      }
    });
    !function (e) {
      e.None = Object.freeze({
        isCancellationRequested: !1,
        onCancellationRequested: n.default.None
      }), e.Cancelled = Object.freeze(
          {isCancellationRequested: !0, onCancellationRequested: o})
    }(i = t.CancellationToken || (t.CancellationToken = {}));
    var r = function () {
      function e() {
        this._isCancelled = !1
      }

      return e.prototype.cancel = function () {
        this._isCancelled || (this._isCancelled = !0, this._emitter
        && (this._emitter.fire(void 0), this._emitter = void 0))
      }, Object.defineProperty(e.prototype, "isCancellationRequested", {
        get: function () {
          return this._isCancelled
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "onCancellationRequested", {
        get: function () {
          return this._isCancelled ? o : (this._emitter
          || (this._emitter = new n.Emitter), this._emitter.event)
        }, enumerable: !0, configurable: !0
      }), e
    }(), s = function () {
      function e() {
      }

      return Object.defineProperty(e.prototype, "token", {
        get: function () {
          return this._token || (this._token = new r), this._token
        }, enumerable: !0, configurable: !0
      }), e.prototype.cancel = function () {
        this._token ? this._token.cancel() : this._token = i.Cancelled
      }, e.prototype.dispose = function () {
        this.cancel()
      }, e
    }();
    t.CancellationTokenSource = s
  }), define(d[18], h([1, 0, 10, 15, 7, 123, 3, 11]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";

        function u(e) {
          return e && "function" == typeof e.then
        }

        function l(e, t) {
          return new o.TPromise(function (i, o, r) {
            e.done(function (e) {
              try {
                t(e)
              } catch (e) {
                n.onUnexpectedError(e)
              }
              i(e)
            }, function (e) {
              try {
                t(e)
              } catch (e) {
                n.onUnexpectedError(e)
              }
              o(e)
            }, function (e) {
              r(e)
            })
          }, function () {
            e.cancel()
          })
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.toThenable = function (e) {
          return u(e) ? e : o.TPromise.as(e)
        }, t.asWinJsPromise = function (e) {
          var t = new r.CancellationTokenSource;
          return new o.TPromise(function (n, i, r) {
            var s = e(t.token);
            s instanceof o.TPromise ? s.then(n, i, r) : u(s) ? s.then(n, i) : n(
                s)
          }, function () {
            t.cancel()
          })
        }, t.wireCancellationToken = function (e, t, i) {
          var r = e.onCancellationRequested(function () {
            return t.cancel()
          });
          return i && (t = t.then(void 0, function (e) {
            if (!n.isPromiseCanceledError(e)) {
              return o.TPromise.wrapError(e)
            }
          })), l(t, function () {
            return r.dispose()
          })
        };
        var c = function () {
          function e() {
            this.activePromise = null, this.queuedPromise = null, this.queuedPromiseFactory = null
          }

          return e.prototype.queue = function (e) {
            var t = this;
            if (this.activePromise) {
              if (this.queuedPromiseFactory = e, !this.queuedPromise) {
                var n = function () {
                  t.queuedPromise = null;
                  var e = t.queue(t.queuedPromiseFactory);
                  return t.queuedPromiseFactory = null, e
                };
                this.queuedPromise = new o.TPromise(function (e, i, o) {
                  t.activePromise.then(n, n, o).done(e)
                }, function () {
                  t.activePromise.cancel()
                })
              }
              return new o.TPromise(function (e, n, i) {
                t.queuedPromise.then(e, n, i)
              }, function () {
              })
            }
            return this.activePromise = e(), new o.TPromise(function (e, n, i) {
              t.activePromise.done(function (n) {
                t.activePromise = null, e(n)
              }, function (e) {
                t.activePromise = null, n(e)
              }, i)
            }, function () {
              t.activePromise.cancel()
            })
          }, e
        }();
        t.Throttler = c;
        var d = function () {
          function e() {
            this.current = o.TPromise.as(null)
          }

          return e.prototype.queue = function (e) {
            return this.current = this.current.then(function () {
              return e()
            })
          }, e
        }();
        t.SimpleThrottler = d;
        var h = function () {
          function e(e) {
            this.defaultDelay = e, this.timeout = null, this.completionPromise = null, this.onSuccess = null, this.task = null
          }

          return e.prototype.trigger = function (e, t) {
            var n = this;
            return void 0 === t
            && (t = this.defaultDelay), this.task = e, this.cancelTimeout(), this.completionPromise
            || (this.completionPromise = new o.TPromise(function (e) {
              n.onSuccess = e
            }, function () {
            }).then(function () {
              n.completionPromise = null, n.onSuccess = null;
              var e = n.task;
              return n.task = null, e()
            })), this.timeout = setTimeout(function () {
              n.timeout = null, n.onSuccess(null)
            }, t), this.completionPromise
          }, e.prototype.isTriggered = function () {
            return null !== this.timeout
          }, e.prototype.cancel = function () {
            this.cancelTimeout(), this.completionPromise
            && (this.completionPromise.cancel(), this.completionPromise = null)
          }, e.prototype.cancelTimeout = function () {
            null !== this.timeout && (clearTimeout(
                this.timeout), this.timeout = null)
          }, e
        }();
        t.Delayer = h;
        var p = function (e) {
          function t(t) {
            var n = e.call(this, t) || this;
            return n.throttler = new c, n
          }

          return f(t, e), t.prototype.trigger = function (t, n) {
            var i = this;
            return e.prototype.trigger.call(this, function () {
              return i.throttler.queue(t)
            }, n)
          }, t
        }(h);
        t.ThrottledDelayer = p;
        var g = function (e) {
          function t(t, n) {
            void 0 === n && (n = 0);
            var i = e.call(this, t) || this;
            return i.minimumPeriod = n, i.periodThrottler = new c, i
          }

          return f(t, e), t.prototype.trigger = function (t, n) {
            var i = this;
            return e.prototype.trigger.call(this, function () {
              return i.periodThrottler.queue(function () {
                return o.Promise.join(
                    [o.TPromise.timeout(i.minimumPeriod), t()]).then(
                    function (e) {
                      return e[1]
                    })
              })
            }, n)
          }, t
        }(p);
        t.PeriodThrottledDelayer = g;
        var m = function () {
          function e() {
            var e = this;
            this._value = new o.TPromise(function (t, n) {
              e._completeCallback = t, e._errorCallback = n
            })
          }

          return Object.defineProperty(e.prototype, "value", {
            get: function () {
              return this._value
            }, enumerable: !0, configurable: !0
          }), e.prototype.complete = function (e) {
            this._completeCallback(e)
          }, e.prototype.error = function (e) {
            this._errorCallback(e)
          }, e
        }();
        t.PromiseSource = m;
        var v = function (e) {
          function t(t) {
            var i, o, r, s = this;
            return s = e.call(this, function (e, t, n) {
              i = e, o = t, r = n
            }, function () {
              o(n.canceled())
            }) || this, t.then(i, o, r), s
          }

          return f(t, e), t
        }(o.TPromise);
        t.ShallowCancelThenPromise = v, t.always = l, t.sequence = function (e) {
          function t() {
            return e.length ? e.pop()() : null
          }

          function n(e) {
            void 0 !== e && null !== e && i.push(e);
            var r = t();
            return r ? r.then(n) : o.TPromise.as(i)
          }

          var i = [];
          return e = e.reverse(), o.TPromise.as(null).then(n)
        }, t.first = function (e, t) {
          void 0 === t && (t = function (e) {
            return !!e
          }), e = e.reverse().slice();
          var n = function () {
            return 0 === e.length ? o.TPromise.as(null) : e.pop()().then(
                function (e) {
                  return t(e) ? o.TPromise.as(e) : n()
                })
          };
          return n()
        };
        var _ = function () {
          function e(e) {
            this.maxDegreeOfParalellism = e, this.outstandingPromises = [], this.runningPromises = 0, this._onFinished = new a.Emitter
          }

          return Object.defineProperty(e.prototype, "onFinished", {
            get: function () {
              return this._onFinished.event
            }, enumerable: !0, configurable: !0
          }), e.prototype.queue = function (e) {
            var t = this;
            return new o.TPromise(function (n, i, o) {
              t.outstandingPromises.push(
                  {factory: e, c: n, e: i, p: o}), t.consume()
            })
          }, e.prototype.consume = function () {
            for (var e = this;
                this.outstandingPromises.length && this.runningPromises
                < this.maxDegreeOfParalellism;) {
              var t = this.outstandingPromises.shift();
              this.runningPromises++;
              var n = t.factory();
              n.done(t.c, t.e, t.p), n.done(function () {
                return e.consumed()
              }, function () {
                return e.consumed()
              })
            }
          }, e.prototype.consumed = function () {
            this.runningPromises--, this.outstandingPromises.length > 0
                ? this.consume() : this._onFinished.fire()
          }, e.prototype.dispose = function () {
            this._onFinished.dispose()
          }, e
        }();
        t.Limiter = _;
        var y = function (e) {
          function t() {
            return e.call(this, 1) || this
          }

          return f(t, e), t
        }(_);
        t.Queue = y, t.setDisposableTimeout = function (e, t) {
          for (var n = [], i = 2; i < arguments.length; i++) {
            n[i
            - 2] = arguments[i];
          }
          var o = setTimeout.apply(void 0, [e, t].concat(n));
          return {
            dispose: function () {
              clearTimeout(o)
            }
          }
        };
        var C = function (e) {
          function t() {
            var t = e.call(this) || this;
            return t._token = -1, t
          }

          return f(t, e), t.prototype.dispose = function () {
            this.cancel(), e.prototype.dispose.call(this)
          }, t.prototype.cancel = function () {
            -1 !== this._token && (i.clearTimeout(
                this._token), this._token = -1)
          }, t.prototype.cancelAndSet = function (e, t) {
            var n = this;
            this.cancel(), this._token = i.setTimeout(function () {
              n._token = -1, e()
            }, t)
          }, t.prototype.setIfNotSet = function (e, t) {
            var n = this;
            -1 === this._token && (this._token = i.setTimeout(function () {
              n._token = -1, e()
            }, t))
          }, t
        }(s.Disposable);
        t.TimeoutTimer = C;
        var b = function (e) {
          function t() {
            var t = e.call(this) || this;
            return t._token = -1, t
          }

          return f(t, e), t.prototype.dispose = function () {
            this.cancel(), e.prototype.dispose.call(this)
          }, t.prototype.cancel = function () {
            -1 !== this._token && (i.clearInterval(
                this._token), this._token = -1)
          }, t.prototype.cancelAndSet = function (e, t) {
            this.cancel(), this._token = i.setInterval(function () {
              e()
            }, t)
          }, t
        }(s.Disposable);
        t.IntervalTimer = b;
        var w = function () {
          function e(e, t) {
            this.timeoutToken = -1, this.runner = e, this.timeout = t, this.timeoutHandler = this.onTimeout.bind(
                this)
          }

          return e.prototype.dispose = function () {
            this.cancel(), this.runner = null
          }, e.prototype.cancel = function () {
            this.isScheduled() && (i.clearTimeout(
                this.timeoutToken), this.timeoutToken = -1)
          }, e.prototype.setRunner = function (e) {
            this.runner = e
          }, e.prototype.schedule = function (e) {
            void 0 === e
            && (e = this.timeout), this.cancel(), this.timeoutToken = i.setTimeout(
                this.timeoutHandler, e)
          }, e.prototype.isScheduled = function () {
            return -1 !== this.timeoutToken
          }, e.prototype.onTimeout = function () {
            this.timeoutToken = -1, this.runner && this.runner()
          }, e
        }();
        t.RunOnceScheduler = w, t.nfcall = function (e) {
          for (var t = [], n = 1; n < arguments.length; n++) {
            t[n
            - 1] = arguments[n];
          }
          return new o.TPromise(function (n, i) {
            return e.apply(void 0, t.concat([function (e, t) {
              return e ? i(e) : n(t)
            }]))
          }, function () {
            return null
          })
        }, t.ninvoke = function (e, t) {
          for (var n = [], i = 2; i < arguments.length; i++) {
            n[i
            - 2] = arguments[i];
          }
          return new o.TPromise(function (i, o) {
            return t.call.apply(t, [e].concat(n, [function (e, t) {
              return e ? o(e) : i(t)
            }]))
          }, function () {
            return null
          })
        }
      }), define(d[38], h([1, 0, 10]), function (e, t, n) {
    "use strict";

    function i(e) {
      try {
        return e()
      } catch (e) {
        n.onUnexpectedError(e)
      }
    }

    function o(e, t) {
      try {
        return e(t)
      } catch (e) {
        n.onUnexpectedError(e)
      }
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      return function (e, t) {
        void 0 === e && (e = null), void 0 === t
        && (t = null), this.type = e, this.data = t
      }
    }();
    t.EmitterEvent = r;
    var s = function () {
      function e(e) {
        if (void 0 === e
        && (e = null), this._listeners = {}, this._bulkListeners = [], this._collectedEvents = [], this._deferredCnt = 0, e) {
          this._allowedEventTypes = {};
          for (var t = 0; t < e.length; t++) {
            this._allowedEventTypes[e[t]] = !0
          }
        } else {
          this._allowedEventTypes = null
        }
      }

      return e.prototype.dispose = function () {
        this._listeners = {}, this._bulkListeners = [], this._collectedEvents = [], this._deferredCnt = 0, this._allowedEventTypes = null
      }, e.prototype.addListener = function (e, t) {
        if ("*" === e) {
          throw new Error(
              "Use addBulkListener(listener) to register your listener!");
        }
        if (this._allowedEventTypes && !this._allowedEventTypes.hasOwnProperty(
            e)) {
          throw new Error("This object will never emit this event type!");
        }
        this._listeners.hasOwnProperty(e) ? this._listeners[e].push(t)
            : this._listeners[e] = [t];
        var n = this;
        return {
          dispose: function () {
            n && (n._removeListener(e, t), n = null, t = null)
          }
        }
      }, e.prototype.addOneTimeListener = function (e, t) {
        var n = this.addListener(e, function (e) {
          n.dispose(), t(e)
        });
        return n
      }, e.prototype.addBulkListener = function (e) {
        var t = this;
        return this._bulkListeners.push(e), {
          dispose: function () {
            t._removeBulkListener(e)
          }
        }
      }, e.prototype.addEmitter = function (e) {
        var t = this;
        return e.addBulkListener(function (e) {
          0 === t._deferredCnt ? t._emitEvents(e)
              : t._collectedEvents.push.apply(t._collectedEvents, e)
        })
      }, e.prototype._removeListener = function (e, t) {
        if (this._listeners.hasOwnProperty(e)) {
          for (var n = this._listeners[e],
              i = 0, o = n.length; i < o; i++) {
            if (n[i] === t) {
              n.splice(i, 1);
              break
            }
          }
        }
      }, e.prototype._removeBulkListener = function (e) {
        for (var t = 0, n = this._bulkListeners.length; t < n;
            t++) {
          if (this._bulkListeners[t] === e) {
            this._bulkListeners.splice(t, 1);
            break
          }
        }
      }, e.prototype._emitToSpecificTypeListeners = function (e, t) {
        if (this._listeners.hasOwnProperty(
            e)) {
          for (var n = this._listeners[e].slice(0), i = 0, r = n.length;
              i < r; i++) {
            o(n[i], t)
          }
        }
      }, e.prototype._emitToBulkListeners = function (e) {
        for (var t = this._bulkListeners.slice(0), n = 0, i = t.length; n < i;
            n++) {
          o(t[n], e)
        }
      }, e.prototype._emitEvents = function (e) {
        this._bulkListeners.length > 0 && this._emitToBulkListeners(e);
        for (var t = 0, n = e.length; t < n; t++) {
          var i = e[t];
          this._emitToSpecificTypeListeners(i.type, i.data)
        }
      }, e.prototype.emit = function (e, t) {
        if (void 0 === t && (t = {}), this._allowedEventTypes
        && !this._allowedEventTypes.hasOwnProperty(e)) {
          throw new Error(
              "Cannot emit this event type because it wasn't listed!");
        }
        if (this._listeners.hasOwnProperty(e) || 0
            !== this._bulkListeners.length) {
          var n = new r(e, t);
          0 === this._deferredCnt ? this._emitEvents([n])
              : this._collectedEvents.push(n)
        }
      }, e.prototype.beginDeferredEmit = function () {
        this._deferredCnt = this._deferredCnt + 1
      }, e.prototype.endDeferredEmit = function () {
        this._deferredCnt = this._deferredCnt - 1, 0 === this._deferredCnt
        && this._emitCollected()
      }, e.prototype.deferredEmit = function (e) {
        this.beginDeferredEmit();
        var t = i(e);
        return this.endDeferredEmit(), t
      }, e.prototype._emitCollected = function () {
        if (0 !== this._collectedEvents.length) {
          var e = this._collectedEvents;
          this._collectedEvents = [], this._emitEvents(e)
        }
      }, e
    }();
    t.EventEmitter = s;
    var a = function () {
      return function (e, t) {
        this.target = e, this.arg = t
      }
    }(), u = function (e) {
      function t() {
        var t = e.call(this, null) || this;
        return t._emitQueue = [], t
      }

      return f(t, e), t.prototype._emitToSpecificTypeListeners = function (e,
          t) {
        if (this._listeners.hasOwnProperty(e)) {
          for (var n = this._listeners[e],
              i = 0, o = n.length; i < o; i++) {
            this._emitQueue.push(
                new a(n[i], t))
          }
        }
      }, t.prototype._emitToBulkListeners = function (e) {
        for (var t = this._bulkListeners, n = 0, i = t.length; n < i;
            n++) {
          this._emitQueue.push(new a(t[n], e))
        }
      }, t.prototype._emitEvents = function (t) {
        for (e.prototype._emitEvents.call(this, t);
            this._emitQueue.length > 0;) {
          var n = this._emitQueue.shift();
          o(n.target, n.arg)
        }
      }, t
    }(s);
    t.OrderGuaranteeEventEmitter = u
  }), define(d[4], h([1, 0, 7, 18, 10, 38, 3, 29, 28, 65, 47]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";

        function d(e, t, n, i) {
          return new N(e, t, n, i)
        }

        function h(e) {
          return function (t) {
            return e(new c.StandardMouseEvent(t))
          }
        }

        function p(e) {
          return function (t) {
            return e(new l.StandardKeyboardEvent(t))
          }
        }

        function g(e) {
          return document.defaultView.getComputedStyle(e, null)
        }

        function m(e, t, n) {
          var i = g(e), o = "0";
          return i && (o = i.getPropertyValue ? i.getPropertyValue(t)
              : i.getAttribute(n)), O(e, o)
        }

        function v(e) {
          for (var t = e.offsetParent, n = e.offsetTop, i = e.offsetLeft;
              null !== (e = e.parentNode) && e !== document.body && e
              !== document.documentElement;) {
            n -= e.scrollTop;
            var o = g(e);
            o && (i -= "rtl" !== o.direction ? e.scrollLeft : -e.scrollLeft), e
            === t && (i += R.getBorderLeftWidth(e), n += R.getBorderTopWidth(
                e), n += e.offsetTop, i += e.offsetLeft, t = e.offsetParent)
          }
          return {left: i, top: n}
        }

        function _(e) {
          var t = R.getMarginLeft(e) + R.getMarginRight(e);
          return e.offsetWidth + t
        }

        function y(e) {
          var t = R.getMarginLeft(e) + R.getMarginRight(e);
          return e.scrollWidth + t
        }

        function C(e, t) {
          if (null === e) {
            return 0;
          }
          var n = v(e), i = v(t);
          return n.left - i.left
        }

        function b(e) {
          void 0 === e && (e = document.getElementsByTagName("head")[0]);
          var t = document.createElement("style");
          return t.type = "text/css", t.media = "screen", e.appendChild(t), t
        }

        function w(e) {
          return e && e.sheet && e.sheet.rules ? e.sheet.rules : e && e.sheet
          && e.sheet.cssRules ? e.sheet.cssRules : []
        }

        function S(e, t) {
          for (; e;) {
            if (e instanceof HTMLElement && e.hasAttribute(t)) {
              return e;
            }
            e = e.parentNode
          }
          return null
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.clearNode = function (e) {
          for (; e.firstChild;) {
            e.removeChild(e.firstChild)
          }
        }, t.safeStringifyDOMAware = function (e) {
          var t = [];
          return JSON.stringify(e, function (e, n) {
            if (n instanceof Element) {
              return "[Element]";
            }
            if (a.isObject(n) || Array.isArray(n)) {
              if (-1 !== t.indexOf(n)) {
                return "[Circular]";
              }
              t.push(n)
            }
            return n
          })
        }, t.isInDOM = function (e) {
          for (; e;) {
            if (e === document.body) {
              return !0;
            }
            e = e.parentNode
          }
          return !1
        };
        var E = new (function () {
          function e() {
          }

          return e.prototype._findClassName = function (e, t) {
            var n = e.className;
            if (n) {
              t = t.trim();
              var i = n.length, o = t.length;
              if (0 !== o) {
                if (i < o) {
                  this._lastStart = -1;
                } else {
                  if (n
                      === t) {
                    return this._lastStart = 0, void (this._lastEnd = i);
                  }
                  for (var r, s = -1; (s = n.indexOf(t, s + 1)) >= 0;) {
                    if (r = s + o, (0 === s || 32 === n.charCodeAt(s - 1)) && 32
                    === n.charCodeAt(
                        r)) {
                      return this._lastStart = s, void (this._lastEnd = r
                          + 1);
                    }
                    if (s > 0 && 32 === n.charCodeAt(s - 1) && r
                        === i) {
                      return this._lastStart = s
                          - 1, void (this._lastEnd = r);
                    }
                    if (0 === s && r
                        === i) {
                      return this._lastStart = 0, void (this._lastEnd = r)
                    }
                  }
                  this._lastStart = -1
                }
              } else {
                this._lastStart = -1
              }
            } else {
              this._lastStart = -1
            }
          }, e.prototype.hasClass = function (e, t) {
            return this._findClassName(e, t), -1 !== this._lastStart
          }, e.prototype.addClass = function (e, t) {
            e.className ? (this._findClassName(e, t), -1 === this._lastStart
            && (e.className = e.className + " " + t)) : e.className = t
          }, e.prototype.removeClass = function (e, t) {
            this._findClassName(e, t), -1 !== this._lastStart
            && (e.className = e.className.substring(0, this._lastStart)
                + e.className.substring(this._lastEnd))
          }, e.prototype.toggleClass = function (e, t, n) {
            this._findClassName(e, t), -1 === this._lastStart || void 0 !== n
            && n || this.removeClass(e, t), -1 !== this._lastStart || void 0
            !== n && !n || this.addClass(e, t)
          }, e
        }()), L = new (function () {
          function e() {
          }

          return e.prototype.hasClass = function (e, t) {
            return t && e.classList && e.classList.contains(t)
          }, e.prototype.addClass = function (e, t) {
            t && e.classList && e.classList.add(t)
          }, e.prototype.removeClass = function (e, t) {
            t && e.classList && e.classList.remove(t)
          }, e.prototype.toggleClass = function (e, t, n) {
            e.classList && e.classList.toggle(t, n)
          }, e
        }()), x = u.isIE ? E : L;
        t.hasClass = x.hasClass.bind(x), t.addClass = x.addClass.bind(
            x), t.removeClass = x.removeClass.bind(
            x), t.toggleClass = x.toggleClass.bind(x);
        var N = function () {
          function e(e, t, n, i) {
            this._node = e, this._type = t, this._handler = n, this._useCapture = i
                || !1, this._node.addEventListener(this._type, this._handler,
                this._useCapture)
          }

          return e.prototype.dispose = function () {
            this._handler && (this._node.removeEventListener(this._type,
                this._handler,
                this._useCapture), this._node = null, this._handler = null)
          }, e
        }();
        t.addDisposableListener = d, t.addStandardDisposableListener = function (e,
            t, n, i) {
          var o = n;
          return "click" === t || "mousedown" === t ? o = h(n) : "keydown" !== t
              && "keypress" !== t && "keyup" !== t || (o = p(n)), d(e, t, o, i)
        }, t.addDisposableNonBubblingMouseOutListener = function (e, t) {
          return d(e, "mouseout", function (n) {
            for (var i = n.relatedTarget || n.toElement;
                i && i !== e;) {
              i = i.parentNode;
            }
            i !== e && t(n)
          })
        };
        var M = function () {
          var e = self.requestAnimationFrame || self.msRequestAnimationFrame
                  || self.webkitRequestAnimationFrame
                  || self.mozRequestAnimationFrame || self.oRequestAnimationFrame,
              t = self.cancelAnimationFrame || self.cancelRequestAnimationFrame
                  || self.msCancelAnimationFrame
                  || self.msCancelRequestAnimationFrame
                  || self.webkitCancelAnimationFrame
                  || self.webkitCancelRequestAnimationFrame
                  || self.mozCancelAnimationFrame
                  || self.mozCancelRequestAnimationFrame
                  || self.oCancelAnimationFrame
                  || self.oCancelRequestAnimationFrame, n = !!e,
              i = e || function (e) {
                return setTimeout(function () {
                  return e((new Date).getTime())
                }, 0)
              }, o = t || function (e) {
              };
          return {
            isNative: n, request: function (e) {
              return i(e)
            }, cancel: function (e) {
              return o(e)
            }
          }
        }(), T = function () {
          function e(e, t) {
            this._runner = e, this.priority = t, this._canceled = !1
          }

          return e.prototype.dispose = function () {
            this._canceled = !0
          }, e.prototype.execute = function () {
            if (!this._canceled) {
              try {
                this._runner()
              } catch (e) {
                o.onUnexpectedError(e)
              }
            }
          }, e.sort = function (e, t) {
            return t.priority - e.priority
          }, e
        }();
        !function () {
          var e = [], n = null, i = !1, o = !1, r = function () {
            for (i = !1, n = e, e = [], o = !0; n.length > 0;) {
              n.sort(
                  T.sort), n.shift().execute();
            }
            o = !1
          };
          t.scheduleAtNextAnimationFrame = function (t, n) {
            void 0 === n && (n = 0);
            var o = new T(t, n);
            return e.push(o), i || (i = !0, M.request(r)), o
          }, t.runAtThisOrScheduleAtNextAnimationFrame = function (e, i) {
            if (o) {
              var r = new T(e, i);
              return n.push(r), r
            }
            return t.scheduleAtNextAnimationFrame(e, i)
          }
        }();
        var k = 16, I = function (e, t) {
          return t
        }, D = function (e) {
          function t(t, n, o, r, s) {
            void 0 === r && (r = I), void 0 === s && (s = k);
            var a = e.call(this) || this, u = null, l = 0,
                c = a._register(new i.TimeoutTimer), h = function () {
                  l = (new Date).getTime(), o(u), u = null
                };
            return a._register(d(t, n, function (e) {
              u = r(u, e);
              var t = (new Date).getTime() - l;
              t >= s ? (c.cancel(), h()) : c.setIfNotSet(h, s - t)
            })), a
          }

          return f(t, e), t
        }(s.Disposable);
        t.addDisposableThrottledListener = function (e, t, n, i, o) {
          return new D(e, t, n, i, o)
        }, t.getComputedStyle = g;
        var O = function (e, t) {
          return parseFloat(t) || 0
        }, R = {
          getBorderLeftWidth: function (e) {
            return m(e, "border-left-width", "borderLeftWidth")
          }, getBorderTopWidth: function (e) {
            return m(e, "border-top-width", "borderTopWidth")
          }, getBorderRightWidth: function (e) {
            return m(e, "border-right-width", "borderRightWidth")
          }, getBorderBottomWidth: function (e) {
            return m(e, "border-bottom-width", "borderBottomWidth")
          }, getPaddingLeft: function (e) {
            return m(e, "padding-left", "paddingLeft")
          }, getPaddingTop: function (e) {
            return m(e, "padding-top", "paddingTop")
          }, getPaddingRight: function (e) {
            return m(e, "padding-right", "paddingRight")
          }, getPaddingBottom: function (e) {
            return m(e, "padding-bottom", "paddingBottom")
          }, getMarginLeft: function (e) {
            return m(e, "margin-left", "marginLeft")
          }, getMarginTop: function (e) {
            return m(e, "margin-top", "marginTop")
          }, getMarginRight: function (e) {
            return m(e, "margin-right", "marginRight")
          }, getMarginBottom: function (e) {
            return m(e, "margin-bottom", "marginBottom")
          }, __commaSentinel: !1
        };
        t.getTopLeftOffset = v, t.getDomNodePagePosition = function (e) {
          var n = e.getBoundingClientRect();
          return {
            left: n.left + t.StandardWindow.scrollX,
            top: n.top + t.StandardWindow.scrollY,
            width: n.width,
            height: n.height
          }
        }, t.StandardWindow = new (function () {
          function e() {
          }

          return Object.defineProperty(e.prototype, "scrollX", {
            get: function () {
              return "number" == typeof window.scrollX ? window.scrollX
                  : document.body.scrollLeft
                  + document.documentElement.scrollLeft
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "scrollY", {
            get: function () {
              return "number" == typeof window.scrollY ? window.scrollY
                  : document.body.scrollTop + document.documentElement.scrollTop
            }, enumerable: !0, configurable: !0
          }), e
        }()), t.getContentWidth = function (e) {
          var t = R.getBorderLeftWidth(e) + R.getBorderRightWidth(e),
              n = R.getPaddingLeft(e) + R.getPaddingRight(e);
          return e.offsetWidth - t - n
        }, t.getTotalWidth = _, t.getTotalScrollWidth = y, t.getContentHeight = function (e) {
          var t = R.getBorderTopWidth(e) + R.getBorderBottomWidth(e),
              n = R.getPaddingTop(e) + R.getPaddingBottom(e);
          return e.offsetHeight - t - n
        }, t.getTotalHeight = function (e) {
          var t = R.getMarginTop(e) + R.getMarginBottom(e);
          return e.offsetHeight + t
        }, t.getLargestChildWidth = function (e, t) {
          var n = t.map(function (t) {
            return Math.max(y(t), _(t)) + C(t, e) || 0
          });
          return Math.max.apply(Math, n)
        }, t.isAncestor = function (e, t) {
          for (; e;) {
            if (e === t) {
              return !0;
            }
            e = e.parentNode
          }
          return !1
        }, t.findParentWithClass = function (e, n, i) {
          for (; e;) {
            if (t.hasClass(e, n)) {
              return e;
            }
            if (i && t.hasClass(e, i)) {
              return null;
            }
            e = e.parentNode
          }
          return null
        }, t.createStyleSheet = b;
        var P = b();
        t.createCSSRule = function (e, t, n) {
          void 0 === n && (n = P), n && t && n.sheet.insertRule(
              e + "{" + t + "}", 0)
        }, t.getCSSRule = function (e, t) {
          if (void 0 === t && (t = P), !t) {
            return null;
          }
          for (var n = w(t), i = 0; i < n.length; i++) {
            var o = n[i];
            if (o.selectorText.replace(/::/gi, ":") === e) {
              return o
            }
          }
          return null
        }, t.removeCSSRulesContainingSelector = function (e, t) {
          if (void 0 === t && (t = P), t) {
            for (var n = w(t), i = [], o = 0; o < n.length; o++) {
              -1
              !== n[o].selectorText.indexOf(e) && i.push(o);
            }
            for (o = i.length - 1; o >= 0; o--) {
              t.sheet.deleteRule(i[o])
            }
          }
        }, t.isHTMLElement = function (e) {
          return "object" == typeof HTMLElement ? e instanceof HTMLElement : e
              && "object" == typeof e && 1 === e.nodeType && "string"
              == typeof e.nodeName
        }, t.EventType = {
          CLICK: "click",
          AUXCLICK: "auxclick",
          DBLCLICK: "dblclick",
          MOUSE_UP: "mouseup",
          MOUSE_DOWN: "mousedown",
          MOUSE_OVER: "mouseover",
          MOUSE_MOVE: "mousemove",
          MOUSE_OUT: "mouseout",
          CONTEXT_MENU: "contextmenu",
          WHEEL: "wheel",
          KEY_DOWN: "keydown",
          KEY_PRESS: "keypress",
          KEY_UP: "keyup",
          LOAD: "load",
          UNLOAD: "unload",
          ABORT: "abort",
          ERROR: "error",
          RESIZE: "resize",
          SCROLL: "scroll",
          SELECT: "select",
          CHANGE: "change",
          SUBMIT: "submit",
          RESET: "reset",
          FOCUS: "focus",
          BLUR: "blur",
          INPUT: "input",
          STORAGE: "storage",
          DRAG_START: "dragstart",
          DRAG: "drag",
          DRAG_ENTER: "dragenter",
          DRAG_LEAVE: "dragleave",
          DRAG_OVER: "dragover",
          DROP: "drop",
          DRAG_END: "dragend",
          ANIMATION_START: u.isWebKit ? "webkitAnimationStart"
              : "animationstart",
          ANIMATION_END: u.isWebKit ? "webkitAnimationEnd" : "animationend",
          ANIMATION_ITERATION: u.isWebKit ? "webkitAnimationIteration"
              : "animationiteration"
        }, t.EventHelper = {
          stop: function (e, t) {
            e.preventDefault ? e.preventDefault() : e.returnValue = !1, t
            && (e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0)
          }
        }, t.saveParentsScrollTop = function (e) {
          for (var t = [], n = 0; e && e.nodeType === e.ELEMENT_NODE;
              n++) {
            t[n] = e.scrollTop, e = e.parentNode;
          }
          return t
        }, t.restoreParentsScrollTop = function (e, t) {
          for (var n = 0; e && e.nodeType === e.ELEMENT_NODE; n++) {
            e.scrollTop
            !== t[n] && (e.scrollTop = t[n]), e = e.parentNode
          }
        };
        var A = function (e) {
          function n(n) {
            var i = e.call(this) || this, o = !1, s = !1;
            i._eventEmitter = i._register(new r.EventEmitter);
            return i._register(d(n, t.EventType.FOCUS, function (e) {
              s = !1, o || (o = !0, i._eventEmitter.emit("focus", {}))
            }, !0)), i._register(d(n, t.EventType.BLUR, function (e) {
              o && (s = !0, window.setTimeout(function () {
                s && (s = !1, o = !1, i._eventEmitter.emit("blur", {}))
              }, 0))
            }, !0)), i
          }

          return f(n, e), n.prototype.addFocusListener = function (e) {
            return this._eventEmitter.addListener("focus", e)
          }, n.prototype.addBlurListener = function (e) {
            return this._eventEmitter.addListener("blur", e)
          }, n
        }(s.Disposable);
        t.trackFocus = function (e) {
          return new A(e)
        }, t.append = function (e) {
          for (var t = [], n = 1; n < arguments.length; n++) {
            t[n
            - 1] = arguments[n];
          }
          return t.forEach(function (t) {
            return e.appendChild(t)
          }), t[t.length - 1]
        }, t.prepend = function (e, t) {
          return e.insertBefore(t, e.firstChild), t
        };
        var F = /([\w\-]+)?(#([\w\-]+))?((.([\w\-]+))*)/;
        t.$ = function (e, t) {
          for (var n = [], i = 2; i < arguments.length; i++) {
            n[i
            - 2] = arguments[i];
          }
          var o = F.exec(e);
          if (!o) {
            throw new Error("Bad use of emmet");
          }
          var r = document.createElement(o[1] || "div");
          return o[3] && (r.id = o[3]), o[4] && (r.className = o[4].replace(
              /\./g, " ").trim()), Object.keys(t || {}).forEach(function (e) {
            /^on\w+$/.test(e) ? r[e] = t[e] : "selected" === e ? t[e]
                && r.setAttribute(e, "true") : r.setAttribute(e, t[e])
          }), n.filter(function (e) {
            return !!e
          }).forEach(function (e) {
            e instanceof Node ? r.appendChild(e) : r.appendChild(
                document.createTextNode(e))
          }), r
        }, t.join = function (e, t) {
          var n = [];
          return e.forEach(function (e, i) {
            i > 0 && (t instanceof Node ? n.push(t.cloneNode()) : n.push(
                document.createTextNode(t))), n.push(e)
          }), n
        }, t.show = function () {
          for (var e = [], t = 0; t < arguments.length;
              t++) {
            e[t] = arguments[t];
          }
          for (var n = 0, i = e; n < i.length; n++) {
            i[n].style.display = ""
          }
        }, t.hide = function () {
          for (var e = [], t = 0; t < arguments.length;
              t++) {
            e[t] = arguments[t];
          }
          for (var n = 0, i = e; n < i.length; n++) {
            i[n].style.display = "none"
          }
        }, t.removeTabIndexAndUpdateFocus = function (e) {
          if (e && e.hasAttribute("tabIndex")) {
            if (document.activeElement === e) {
              var t = S(e.parentElement, "tabIndex");
              t && t.focus()
            }
            e.removeAttribute("tabindex")
          }
        }, t.getElementsByTagName = function (e) {
          return Array.prototype.slice.call(document.getElementsByTagName(e), 0)
        }, t.finalHandler = function (e) {
          return function (t) {
            t.preventDefault(), t.stopPropagation(), e(t)
          }
        }, t.domContentLoaded = function () {
          return new n.TPromise(function (e, t) {
            "complete" === document.readyState || document && null
            !== document.body ? window.setImmediate(e)
                : window.addEventListener("DOMContentLoaded", e, !1)
          })
        }, t.computeScreenAwareSize = function (e) {
          var t = window.devicePixelRatio * e;
          return Math.max(1, Math.floor(t)) / window.devicePixelRatio
        }, t.windowOpenNoOpener = function (e) {
          var t = window.open();
          t && (t.opener = null, t.location.href = e)
        }
      }), define(d[27], h([1, 0, 4]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e) {
        this.domNode = e, this._maxWidth = -1, this._width = -1, this._height = -1, this._top = -1, this._left = -1, this._bottom = -1, this._right = -1, this._fontFamily = "", this._fontWeight = "", this._fontSize = -1, this._lineHeight = -1, this._letterSpacing = -100, this._className = "", this._display = "", this._position = "", this._visibility = "", this._layerHint = !1
      }

      return e.prototype.setMaxWidth = function (e) {
        this._maxWidth !== e
        && (this._maxWidth = e, this.domNode.style.maxWidth = this._maxWidth
            + "px")
      }, e.prototype.setWidth = function (e) {
        this._width !== e
        && (this._width = e, this.domNode.style.width = this._width + "px")
      }, e.prototype.unsetWidth = function () {
        -1 !== this._width && (this._width = -1, this.domNode.style.width = "")
      }, e.prototype.setHeight = function (e) {
        this._height !== e
        && (this._height = e, this.domNode.style.height = this._height + "px")
      }, e.prototype.unsetHeight = function () {
        -1 !== this._height
        && (this._height = -1, this.domNode.style.height = "")
      }, e.prototype.setTop = function (e) {
        this._top !== e && (this._top = e, this.domNode.style.top = this._top
            + "px")
      }, e.prototype.unsetTop = function () {
        -1 !== this._top && (this._top = -1, this.domNode.style.top = "")
      }, e.prototype.setLeft = function (e) {
        this._left !== e
        && (this._left = e, this.domNode.style.left = this._left + "px")
      }, e.prototype.setBottom = function (e) {
        this._bottom !== e
        && (this._bottom = e, this.domNode.style.bottom = this._bottom + "px")
      }, e.prototype.setRight = function (e) {
        this._right !== e
        && (this._right = e, this.domNode.style.right = this._right + "px")
      }, e.prototype.setFontFamily = function (e) {
        this._fontFamily !== e
        && (this._fontFamily = e, this.domNode.style.fontFamily = this._fontFamily)
      }, e.prototype.setFontWeight = function (e) {
        this._fontWeight !== e
        && (this._fontWeight = e, this.domNode.style.fontWeight = this._fontWeight)
      }, e.prototype.setFontSize = function (e) {
        this._fontSize !== e
        && (this._fontSize = e, this.domNode.style.fontSize = this._fontSize
            + "px")
      }, e.prototype.setLineHeight = function (e) {
        this._lineHeight !== e
        && (this._lineHeight = e, this.domNode.style.lineHeight = this._lineHeight
            + "px")
      }, e.prototype.setLetterSpacing = function (e) {
        this._letterSpacing !== e
        && (this._letterSpacing = e, this.domNode.style.letterSpacing = this._letterSpacing
            + "px")
      }, e.prototype.setClassName = function (e) {
        this._className !== e
        && (this._className = e, this.domNode.className = this._className)
      }, e.prototype.toggleClassName = function (e, t) {
        n.toggleClass(this.domNode, e,
            t), this._className = this.domNode.className
      }, e.prototype.addClassName = function (e) {
        n.addClass(this.domNode, e), this._className = this.domNode.className
      }, e.prototype.removeClassName = function (e) {
        n.removeClass(this.domNode, e), this._className = this.domNode.className
      }, e.prototype.setDisplay = function (e) {
        this._display !== e
        && (this._display = e, this.domNode.style.display = this._display)
      }, e.prototype.setPosition = function (e) {
        this._position !== e
        && (this._position = e, this.domNode.style.position = this._position)
      }, e.prototype.setVisibility = function (e) {
        this._visibility !== e
        && (this._visibility = e, this.domNode.style.visibility = this._visibility)
      }, e.prototype.setLayerHinting = function (e) {
        this._layerHint !== e
        && (this._layerHint = e, this.domNode.style.willChange = this._layerHint
            ? "transform" : "auto")
      }, e.prototype.setAttribute = function (e, t) {
        this.domNode.setAttribute(e, t)
      }, e.prototype.getAttribute = function (e) {
        return this.domNode.getAttribute(e)
      }, e.prototype.removeAttribute = function (e) {
        this.domNode.removeAttribute(e)
      }, e.prototype.hasAttribute = function (e) {
        return this.domNode.hasAttribute(e)
      }, e.prototype.appendChild = function (e) {
        this.domNode.appendChild(e.domNode)
      }, e.prototype.removeChild = function (e) {
        this.domNode.removeChild(e.domNode)
      }, e
    }();
    t.FastDomNode = i, t.createFastDomNode = function (e) {
      return new i(e)
    }
  }), define(d[83], h([1, 0, 3, 4, 148, 47]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.standardMouseMoveMerger = function (e, t) {
      var n = new r.StandardMouseEvent(t);
      return n.preventDefault(), {
        leftButton: n.leftButton,
        posx: n.posx,
        posy: n.posy
      }
    };
    var s = function (e) {
      function t() {
        var t = e.call(this) || this;
        return t.hooks = [], t.mouseMoveEventMerger = null, t.mouseMoveCallback = null, t.onStopCallback = null, t
      }

      return f(t, e), t.prototype.dispose = function () {
        this.stopMonitoring(!1), e.prototype.dispose.call(this)
      }, t.prototype.stopMonitoring = function (e) {
        if (this.isMonitoring()) {
          this.hooks = n.dispose(
              this.hooks), this.mouseMoveEventMerger = null, this.mouseMoveCallback = null;
          var t = this.onStopCallback;
          this.onStopCallback = null, e && t()
        }
      }, t.prototype.isMonitoring = function () {
        return this.hooks.length > 0
      }, t.prototype.startMonitoring = function (e, t, n) {
        var s = this;
        if (!this.isMonitoring()) {
          this.mouseMoveEventMerger = e, this.mouseMoveCallback = t, this.onStopCallback = n;
          for (var a = o.IframeUtils.getSameOriginWindowChain(), u = 0;
              u < a.length; u++) {
            this.hooks.push(
                i.addDisposableThrottledListener(a[u].window.document,
                    "mousemove", function (e) {
                      return s.mouseMoveCallback(e)
                    }, function (e, t) {
                      return s.mouseMoveEventMerger(e, t)
                    })), this.hooks.push(
                i.addDisposableListener(a[u].window.document, "mouseup",
                    function (e) {
                      return s.stopMonitoring(!0)
                    }));
          }
          if (o.IframeUtils.hasDifferentOriginAncestor()) {
            var l = a[a.length - 1];
            this.hooks.push(
                i.addDisposableListener(l.window.document, "mouseout",
                    function (e) {
                      "html" === new r.StandardMouseEvent(
                          e).target.tagName.toLowerCase() && s.stopMonitoring(
                          !0)
                    })), this.hooks.push(
                i.addDisposableListener(l.window.document, "mouseover",
                    function (e) {
                      "html" === new r.StandardMouseEvent(
                          e).target.tagName.toLowerCase() && s.stopMonitoring(
                          !0)
                    })), this.hooks.push(
                i.addDisposableListener(l.window.document.body, "mouseleave",
                    function (e) {
                      s.stopMonitoring(!0)
                    }))
          }
        }
      }, t
    }(n.Disposable);
    t.GlobalMouseMoveMonitor = s
  }), define(d[102], h([1, 0, 4, 108, 9, 7, 133, 209]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";

        function u(e) {
          var t = e.inline ? "span" : "div", n = document.createElement(t);
          return e.className && (n.className = e.className), n
        }

        function l(e, t) {
          void 0 === t && (t = {});
          var l, c = u(t),
              d = (t.codeBlockRenderer, t.actionCallback, new r.TPromise(
                  function (e) {
                    return l = e
                  })), h = new a.marked.Renderer;
          return h.image = function (e, t, n) {
            var i = [];
            if (e) {
              var o = e.split("|").map(function (e) {
                return e.trim()
              });
              e = o[0];
              var r = o[1];
              if (r) {
                var s = /height=(\d+)/.exec(r), a = /width=(\d+)/.exec(r),
                    u = s && s[1], l = a && a[1], c = isFinite(parseInt(l)),
                    d = isFinite(parseInt(u));
                c && i.push('width="' + l + '"'), d && i.push(
                    'height="' + u + '"')
              }
            }
            var h = [];
            return e && h.push('src="' + e + '"'), n && h.push(
                'alt="' + n + '"'), t && h.push('title="' + t + '"'), i.length
            && (h = h.concat(i)), "<img " + h.join(" ") + ">"
          }, h.link = function (e, t, n) {
            return e === n && (n = s.removeMarkdownEscapes(
                n)), t = s.removeMarkdownEscapes(
                t), !(e = s.removeMarkdownEscapes(e)) || e.match(
                /^data:|javascript:/i) ? n : '<a href="#" data-href="' + e
                + '" title="' + (t || n) + '">' + n + "</a>"
          }, h.paragraph = function (e) {
            return "<p>" + e + "</p>"
          }, t.codeBlockRenderer && (h.code = function (e, n) {
            var s = t.codeBlockRenderer(n, e);
            if ("string" == typeof s) {
              return s;
            }
            if (r.TPromise.is(s)) {
              var a = i.defaultGenerator.nextId();
              return r.TPromise.join([s, d]).done(function (e) {
                var t = e[0], n = c.querySelector('div[data-code="' + a + '"]');
                n && (n.innerHTML = t)
              }, function (e) {
              }), '<div class="code" data-code="' + a + '">' + o.escape(e)
              + "</div>"
            }
            return e
          }), t.actionCallback && n.addStandardDisposableListener(c, "click",
              function (e) {
                if ("A" === e.target.tagName) {
                  var n = e.target.dataset.href;
                  n && t.actionCallback(n, e)
                }
              }), c.innerHTML = a.marked(e, {sanitize: !0, renderer: h}), l(), c
        }

        function c(e, t, i) {
          var o;
          if (2 === t.type) {
            o = document.createTextNode(t.content);
          } else if (3
              === t.type) {
            o = document.createElement("b");
          } else if (4
              === t.type) {
            o = document.createElement("i");
          } else if (5
              === t.type) {
            var r = document.createElement("a");
            r.href = "#", n.addStandardDisposableListener(r, "click",
                function (e) {
                  i(String(t.index), e)
                }), o = r
          } else {
            7 === t.type ? o = document.createElement("br") : 1 === t.type
                && (o = e);
          }
          e !== o && e.appendChild(o), Array.isArray(t.children)
          && t.children.forEach(function (e) {
            c(o, e, i)
          })
        }

        function d(e) {
          for (var t = {type: 1, children: []}, n = 0, i = t, o = [],
              r = new g(e); !r.eos();) {
            var s = r.next(), a = "\\" === s && 0 !== p(r.peek());
            if (a && (s = r.next()), !a && h(s) && s === r.peek()) {
              r.advance(), 2 === i.type && (i = o.pop());
              var u = p(s);
              if (i.type === u || 5 === i.type && 6 === u) {
                i = o.pop();
              } else {
                var l = {type: u, children: []};
                5 === u && (l.index = n, n++), i.children.push(l), o.push(
                    i), i = l
              }
            } else if ("\n" === s) {
              2 === i.type
              && (i = o.pop()), i.children.push({type: 7});
            } else if (2
                !== i.type) {
              var c = {type: 2, content: s};
              i.children.push(c), o.push(i), i = c
            } else {
              i.content += s
            }
          }
          return 2 === i.type && (i = o.pop()), o.length, t
        }

        function h(e) {
          return 0 !== p(e)
        }

        function p(e) {
          switch (e) {
            case"*":
              return 3;
            case"_":
              return 4;
            case"[":
              return 5;
            case"]":
              return 6;
            default:
              return 0
          }
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.renderMarkedString = function (e, t) {
          void 0 === t && (t = {});
          var n;
          return n = "string" == typeof e ? e : "```" + e.language + "\n"
              + e.value + "\n```", l(n, t)
        }, t.renderText = function (e, t) {
          void 0 === t && (t = {});
          var n = u(t);
          return n.textContent = e, n
        }, t.renderFormattedText = function (e, t) {
          void 0 === t && (t = {});
          var n = u(t);
          return c(n, d(e), t.actionCallback), n
        }, t.renderMarkdown = l;
        var f, g = function () {
          function e(e) {
            this.source = e, this.index = 0
          }

          return e.prototype.eos = function () {
            return this.index >= this.source.length
          }, e.prototype.next = function () {
            var e = this.peek();
            return this.advance(), e
          }, e.prototype.peek = function () {
            return this.source[this.index]
          }, e.prototype.advance = function () {
            this.index++
          }, e
        }();
        !function (e) {
          e[e.Invalid = 0] = "Invalid", e[e.Root = 1] = "Root", e[e.Text = 2] = "Text", e[e.Bold = 3] = "Bold", e[e.Italics = 4] = "Italics", e[e.Action = 5] = "Action", e[e.ActionClose = 6] = "ActionClose", e[e.NewLine = 7] = "NewLine"
        }(f || (f = {}))
      }), define(d[74], h([1, 0, 33, 3, 4]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r;
    !function (e) {
      e.Tap = "-monaco-gesturetap", e.Change = "-monaco-gesturechange", e.Start = "-monaco-gesturestart", e.End = "-monaco-gesturesend", e.Contextmenu = "-monaco-gesturecontextmenu"
    }(r = t.EventType || (t.EventType = {}));
    var s = function () {
      function e(e) {
        this.callOnTarget = [], this.activeTouches = {}, this.target = e, this.handle = null
      }

      return e.prototype.dispose = function () {
        this.target = null, this.handle
        && (this.handle.dispose(), this.handle = null)
      }, Object.defineProperty(e.prototype, "target", {
        set: function (e) {
          var t = this;
          this.callOnTarget = i.dispose(
              this.callOnTarget), this.activeTouches = {}, this.targetElement = e, this.targetElement
          && (this.callOnTarget.push(
              o.addDisposableListener(this.targetElement, "touchstart",
                  function (e) {
                    return t.onTouchStart(e)
                  })), this.callOnTarget.push(
              o.addDisposableListener(this.targetElement, "touchend",
                  function (e) {
                    return t.onTouchEnd(e)
                  })), this.callOnTarget.push(
              o.addDisposableListener(this.targetElement, "touchmove",
                  function (e) {
                    return t.onTouchMove(e)
                  })))
        }, enumerable: !0, configurable: !0
      }), e.newGestureEvent = function (e) {
        var t = document.createEvent("CustomEvent");
        return t.initEvent(e, !1, !0), t
      }, e.prototype.onTouchStart = function (t) {
        var n = Date.now();
        t.preventDefault(), this.handle
        && (this.handle.dispose(), this.handle = null);
        for (var i = 0, o = t.targetTouches.length; i < o; i++) {
          var s = t.targetTouches.item(i);
          this.activeTouches[s.identifier] = {
            id: s.identifier,
            initialTarget: s.target,
            initialTimeStamp: n,
            initialPageX: s.pageX,
            initialPageY: s.pageY,
            rollingTimestamps: [n],
            rollingPageX: [s.pageX],
            rollingPageY: [s.pageY]
          };
          var a = e.newGestureEvent(r.Start);
          a.pageX = s.pageX, a.pageY = s.pageY, this.targetElement.dispatchEvent(
              a)
        }
      }, e.prototype.onTouchEnd = function (t) {
        var i = Date.now();
        t.preventDefault(), t.stopPropagation();
        for (var o = Object.keys(this.activeTouches).length, s = 0,
            a = t.changedTouches.length; s < a; s++) {
          var u = t.changedTouches.item(s);
          if (this.activeTouches.hasOwnProperty(String(u.identifier))) {
            var l = this.activeTouches[u.identifier],
                c = Date.now() - l.initialTimeStamp;
            if (c < e.HOLD_DELAY && Math.abs(
                    l.initialPageX - n.tail(l.rollingPageX)) < 30 && Math.abs(
                    l.initialPageY - n.tail(l.rollingPageY))
                < 30) {
              (d = e.newGestureEvent(
                  r.Tap)).initialTarget = l.initialTarget, d.pageX = n.tail(
                  l.rollingPageX), d.pageY = n.tail(
                  l.rollingPageY), this.targetElement.dispatchEvent(d);
            } else if (c
                >= e.HOLD_DELAY && Math.abs(
                    l.initialPageX - n.tail(l.rollingPageX)) < 30 && Math.abs(
                    l.initialPageY - n.tail(l.rollingPageY)) < 30) {
              var d = e.newGestureEvent(r.Contextmenu);
              d.initialTarget = l.initialTarget, d.pageX = n.tail(
                  l.rollingPageX), d.pageY = n.tail(
                  l.rollingPageY), this.targetElement.dispatchEvent(d)
            } else if (1 === o) {
              var h = n.tail(l.rollingPageX), p = n.tail(l.rollingPageY),
                  f = n.tail(l.rollingTimestamps) - l.rollingTimestamps[0],
                  g = h - l.rollingPageX[0], m = p - l.rollingPageY[0];
              this.inertia(i, Math.abs(g) / f, g > 0 ? 1 : -1, h,
                  Math.abs(m) / f, m > 0 ? 1 : -1, p)
            }
            delete this.activeTouches[u.identifier]
          } else {
            console.warn("move of an UNKNOWN touch", u)
          }
        }
      }, e.prototype.inertia = function (t, n, i, s, a, u, l) {
        var c = this;
        this.handle = o.scheduleAtNextAnimationFrame(function () {
          var o = Date.now(), d = o - t, h = 0, p = 0, f = !0;
          n += e.SCROLL_FRICTION * d, a += e.SCROLL_FRICTION * d, n > 0
          && (f = !1, h = i * n * d), a > 0 && (f = !1, p = u * a * d);
          var g = e.newGestureEvent(r.Change);
          g.translationX = h, g.translationY = p, c.targetElement.dispatchEvent(
              g), f || c.inertia(o, n, i, s + h, a, u, l + p)
        })
      }, e.prototype.onTouchMove = function (t) {
        var i = Date.now();
        t.preventDefault(), t.stopPropagation();
        for (var o = 0, s = t.changedTouches.length; o < s; o++) {
          var a = t.changedTouches.item(o);
          if (this.activeTouches.hasOwnProperty(String(a.identifier))) {
            var u = this.activeTouches[a.identifier],
                l = e.newGestureEvent(r.Change);
            l.translationX = a.pageX - n.tail(
                u.rollingPageX), l.translationY = a.pageY - n.tail(
                u.rollingPageY), l.pageX = a.pageX, l.pageY = a.pageY, this.targetElement.dispatchEvent(
                l), u.rollingPageX.length > 3
            && (u.rollingPageX.shift(), u.rollingPageY.shift(), u.rollingTimestamps.shift()), u.rollingPageX.push(
                a.pageX), u.rollingPageY.push(
                a.pageY), u.rollingTimestamps.push(i)
          } else {
            console.warn("end of an UNKNOWN touch", a)
          }
        }
      }, e.HOLD_DELAY = 700, e.SCROLL_FRICTION = -.005, e
    }();
    t.Gesture = s
  }), define(d[110], h([1, 0, 9, 4, 26, 512]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      function e(e) {
        this.domNode = document.createElement(
            "span"), this.domNode.className = "monaco-highlighted-label", this.didEverRender = !1, e.appendChild(
            this.domNode)
      }

      return Object.defineProperty(e.prototype, "element", {
        get: function () {
          return this.domNode
        }, enumerable: !0, configurable: !0
      }), e.prototype.set = function (e, t) {
        void 0 === t && (t = []), e || (e = ""), this.didEverRender && this.text
        === e && o.equals(this.highlights, t) || (Array.isArray(t)
        || (t = []), this.text = e, this.highlights = t, this.render())
      }, e.prototype.render = function () {
        i.clearNode(this.domNode);
        for (var e, t = [], o = 0, s = 0; s < this.highlights.length;
            s++) {
          (e = this.highlights[s]).end !== e.start && (o < e.start
          && (t.push("<span>"), t.push(
              r.expand(n.escape(this.text.substring(o, e.start)))), t.push(
              "</span>"), o = e.end), t.push(
              '<span class="highlight">'), t.push(
              r.expand(n.escape(this.text.substring(e.start, e.end)))), t.push(
              "</span>"), o = e.end);
        }
        o < this.text.length && (t.push("<span>"), t.push(
            r.expand(n.escape(this.text.substring(o)))), t.push(
            "</span>")), this.domNode.innerHTML = t.join(
            ""), this.didEverRender = !0
      }, e.prototype.dispose = function () {
        this.text = null, this.highlights = null
      }, e
    }();
    t.HighlightedLabel = s
  }), define(d[416], h([1, 0, 4]), function (e, t, n) {
    "use strict";

    function i(e) {
      try {
        e.parentElement.removeChild(e)
      } catch (e) {
      }
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e(e) {
        this.renderers = e, this.cache = Object.create(null)
      }

      return e.prototype.alloc = function (e) {
        var t = this.getTemplateCache(e).pop();
        if (!t) {
          var i = n.$(".monaco-list-row");
          t = {
            domNode: i,
            templateId: e,
            templateData: this.renderers[e].renderTemplate(i)
          }
        }
        return t
      }, e.prototype.release = function (e) {
        e && this.releaseRow(e)
      }, e.prototype.releaseRow = function (e) {
        var t = e.domNode, o = e.templateId;
        n.removeClass(t, "scrolling"), i(t), this.getTemplateCache(o).push(e)
      }, e.prototype.getTemplateCache = function (e) {
        return this.cache[e] || (this.cache[e] = [])
      }, e.prototype.garbageCollect = function () {
        var e = this;
        this.cache && Object.keys(this.cache).forEach(function (t) {
          e.cache[t].forEach(function (n) {
            e.renderers[t].disposeTemplate(
                n.templateData), n.domNode = null, n.templateData = null
          }), delete e.cache[t]
        })
      }, e.prototype.dispose = function () {
        this.garbageCollect(), this.cache = null, this.renderers = null
      }, e
    }();
    t.RowCache = o
  }), define(d[41], h([1, 0, 3, 47, 65, 4]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function (e) {
      function t() {
        return null !== e && e.apply(this, arguments) || this
      }

      return f(t, e), t.prototype.onclick = function (e, t) {
        this._register(
            r.addDisposableListener(e, r.EventType.CLICK, function (e) {
              return t(new i.StandardMouseEvent(e))
            }))
      }, t.prototype.onmousedown = function (e, t) {
        this._register(
            r.addDisposableListener(e, r.EventType.MOUSE_DOWN, function (e) {
              return t(new i.StandardMouseEvent(e))
            }))
      }, t.prototype.onmouseover = function (e, t) {
        this._register(
            r.addDisposableListener(e, r.EventType.MOUSE_OVER, function (e) {
              return t(new i.StandardMouseEvent(e))
            }))
      }, t.prototype.onnonbubblingmouseout = function (e, t) {
        this._register(
            r.addDisposableNonBubblingMouseOutListener(e, function (e) {
              return t(new i.StandardMouseEvent(e))
            }))
      }, t.prototype.onkeydown = function (e, t) {
        this._register(
            r.addDisposableListener(e, r.EventType.KEY_DOWN, function (e) {
              return t(new o.StandardKeyboardEvent(e))
            }))
      }, t.prototype.onkeyup = function (e, t) {
        this._register(
            r.addDisposableListener(e, r.EventType.KEY_UP, function (e) {
              return t(new o.StandardKeyboardEvent(e))
            }))
      }, t.prototype.oninput = function (e, t) {
        this._register(r.addDisposableListener(e, r.EventType.INPUT, t))
      }, t.prototype.onblur = function (e, t) {
        this._register(r.addDisposableListener(e, r.EventType.BLUR, t))
      }, t.prototype.onfocus = function (e, t) {
        this._register(r.addDisposableListener(e, r.EventType.FOCUS, t))
      }, t.prototype.onchange = function (e, t) {
        this._register(r.addDisposableListener(e, r.EventType.CHANGE, t))
      }, t
    }(n.Disposable);
    t.Widget = s
  }), define(d[117], h([1, 0, 83, 41, 18]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0}), t.ARROW_IMG_SIZE = 11;
    var r = function (e) {
      function i(i) {
        var r = e.call(this) || this;
        return r._onActivate = i.onActivate, r.bgDomNode = document.createElement(
            "div"), r.bgDomNode.className = "arrow-background", r.bgDomNode.style.position = "absolute", r.bgDomNode.style.width = i.bgWidth
            + "px", r.bgDomNode.style.height = i.bgHeight + "px", void 0
        !== i.top && (r.bgDomNode.style.top = "0px"), void 0 !== i.left
        && (r.bgDomNode.style.left = "0px"), void 0 !== i.bottom
        && (r.bgDomNode.style.bottom = "0px"), void 0 !== i.right
        && (r.bgDomNode.style.right = "0px"), r.domNode = document.createElement(
            "div"), r.domNode.className = i.className, r.domNode.style.position = "absolute", r.domNode.style.width = t.ARROW_IMG_SIZE
            + "px", r.domNode.style.height = t.ARROW_IMG_SIZE + "px", void 0
        !== i.top && (r.domNode.style.top = i.top + "px"), void 0 !== i.left
        && (r.domNode.style.left = i.left + "px"), void 0 !== i.bottom
        && (r.domNode.style.bottom = i.bottom + "px"), void 0 !== i.right
        && (r.domNode.style.right = i.right
            + "px"), r._mouseMoveMonitor = r._register(
            new n.GlobalMouseMoveMonitor), r.onmousedown(r.bgDomNode,
            function (e) {
              return r._arrowMouseDown(e)
            }), r.onmousedown(r.domNode, function (e) {
          return r._arrowMouseDown(e)
        }), r._mousedownRepeatTimer = r._register(
            new o.IntervalTimer), r._mousedownScheduleRepeatTimer = r._register(
            new o.TimeoutTimer), r
      }

      return f(i, e), i.prototype._arrowMouseDown = function (e) {
        var t = this;
        this._onActivate(), this._mousedownRepeatTimer.cancel(), this._mousedownScheduleRepeatTimer.cancelAndSet(
            function () {
              t._mousedownRepeatTimer.cancelAndSet(function () {
                return t._onActivate()
              }, 1e3 / 24)
            }, 200), this._mouseMoveMonitor.startMonitoring(
            n.standardMouseMoveMerger, function (e) {
            }, function () {
              t._mousedownRepeatTimer.cancel(), t._mousedownScheduleRepeatTimer.cancel()
            }), e.preventDefault()
      }, i
    }(i.Widget);
    t.ScrollbarArrow = r
  }), define(d[53], h([1, 0, 7, 38, 79, 11]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.isAction = function (e) {
      return !!e && (e instanceof s || "string" == typeof e.id && "string"
          == typeof e.label && "string" == typeof e.class && "boolean"
          == typeof e.enabled && "boolean" == typeof e.checked && "function"
          == typeof e.run)
    };
    var s = function () {
      function e(e, t, n, i, o) {
        void 0 === t && (t = ""), void 0 === n && (n = ""), void 0 === i
        && (i = !0), this._onDidChange = new r.Emitter, this._id = e, this._label = t, this._cssClass = n, this._enabled = i, this._actionCallback = o
      }

      return e.prototype.dispose = function () {
        this._onDidChange.dispose()
      }, Object.defineProperty(e.prototype, "onDidChange", {
        get: function () {
          return this._onDidChange.event
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "id", {
        get: function () {
          return this._id
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "label", {
        get: function () {
          return this._label
        }, set: function (e) {
          this._setLabel(e)
        }, enumerable: !0, configurable: !0
      }), e.prototype._setLabel = function (e) {
        this._label !== e && (this._label = e, this._onDidChange.fire(
            {label: e}))
      }, Object.defineProperty(e.prototype, "tooltip", {
        get: function () {
          return this._tooltip
        }, set: function (e) {
          this._setTooltip(e)
        }, enumerable: !0, configurable: !0
      }), e.prototype._setTooltip = function (e) {
        this._tooltip !== e && (this._tooltip = e, this._onDidChange.fire(
            {tooltip: e}))
      }, Object.defineProperty(e.prototype, "class", {
        get: function () {
          return this._cssClass
        }, set: function (e) {
          this._setClass(e)
        }, enumerable: !0, configurable: !0
      }), e.prototype._setClass = function (e) {
        this._cssClass !== e && (this._cssClass = e, this._onDidChange.fire(
            {class: e}))
      }, Object.defineProperty(e.prototype, "enabled", {
        get: function () {
          return this._enabled
        }, set: function (e) {
          this._setEnabled(e)
        }, enumerable: !0, configurable: !0
      }), e.prototype._setEnabled = function (e) {
        this._enabled !== e && (this._enabled = e, this._onDidChange.fire(
            {enabled: e}))
      }, Object.defineProperty(e.prototype, "checked", {
        get: function () {
          return this._checked
        }, set: function (e) {
          this._setChecked(e)
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "radio", {
        get: function () {
          return this._radio
        }, set: function (e) {
          this._setRadio(e)
        }, enumerable: !0, configurable: !0
      }), e.prototype._setChecked = function (e) {
        this._checked !== e && (this._checked = e, this._onDidChange.fire(
            {checked: e}))
      }, e.prototype._setRadio = function (e) {
        this._radio !== e && (this._radio = e, this._onDidChange.fire(
            {radio: e}))
      }, Object.defineProperty(e.prototype, "order", {
        get: function () {
          return this._order
        }, set: function (e) {
          this._order = e
        }, enumerable: !0, configurable: !0
      }), e.prototype.run = function (e, t) {
        return void 0 !== this._actionCallback ? this._actionCallback(e)
            : n.TPromise.as(!0)
      }, e
    }();
    t.Action = s;
    var a = function (e) {
      function t() {
        return null !== e && e.apply(this, arguments) || this
      }

      return f(t, e), t.prototype.run = function (e, t) {
        var i = this;
        return e.enabled ? (this.emit(o.EventType.BEFORE_RUN,
            {action: e}), this.runAction(e, t).then(function (t) {
          i.emit(o.EventType.RUN, {action: e, result: t})
        }, function (t) {
          i.emit(o.EventType.RUN, {action: e, error: t})
        })) : n.TPromise.as(null)
      }, t.prototype.runAction = function (e, t) {
        return n.TPromise.as(t ? e.run(t) : e.run())
      }, t
    }(i.EventEmitter);
    t.ActionRunner = a
  }), define(d[165], h([1, 0, 33, 26, 9, 45, 80, 7]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";

        function u() {
          return Object.create(null)
        }

        function l(e) {
          switch (e) {
            case 0:
              return "";
            case 1:
              return S + "*?";
            default:
              return "(?:" + w + "|" + S + "+" + w + "|" + w + S + "+)*?"
          }
        }

        function c(e, t) {
          if (!e) {
            return [];
          }
          for (var n, i = [], o = !1, r = !1, s = "", a = 0; a < e.length;
              a++) {
            switch (n = e[a]) {
              case t:
                if (!o && !r) {
                  i.push(s), s = "";
                  continue
                }
                break;
              case"{":
                o = !0;
                break;
              case"}":
                o = !1;
                break;
              case"[":
                r = !0;
                break;
              case"]":
                r = !1
            }
            s += n
          }
          return s && i.push(s), i
        }

        function d(e) {
          if (!e) {
            return "";
          }
          var t = "", n = c(e, "/");
          if (n.every(function (e) {
            return "**" === e
          })) {
            t = ".*";
          } else {
            var i = !1;
            n.forEach(function (e, r) {
              if ("**" !== e) {
                for (var s, a = !1, u = "", h = !1, p = "", f = 0; f < e.length;
                    f++) {
                  if ("}" !== (s = e[f]) && a) {
                    u += s;
                  } else if ("]" !== s
                      && h) {
                    var g = void 0;
                    switch (s) {
                      case"-":
                      case"^":
                        g = s;
                        break;
                      default:
                        g = o.escapeRegExpCharacters(s)
                    }
                    p += g
                  } else {
                    switch (s) {
                      case"{":
                        a = !0;
                        continue;
                      case"[":
                        h = !0;
                        continue;
                      case"}":
                        var m = "(?:" + c(u, ",").map(function (e) {
                          return d(e)
                        }).join("|") + ")";
                        t += m, a = !1, u = "";
                        break;
                      case"]":
                        t += "[" + p + "]", h = !1, p = "";
                        break;
                      case"?":
                        t += S;
                        continue;
                      case"*":
                        t += l(1);
                        continue;
                      default:
                        t += o.escapeRegExpCharacters(s)
                    }
                  }
                }
                r < n.length - 1 && "**" !== n[r + 1] && (t += w), i = !1
              } else {
                i || (t += l(2), i = !0)
              }
            })
          }
          return t
        }

        function h(e, t) {
          if (!e) {
            return O;
          }
          var n = (e = e.trim()) + "_" + !!t.trimForExclusions, i = I.get(n);
          if (i) {
            return i;
          }
          var r;
          if (L.test(e)) {
            var s = e.substr(4);
            i = function (t, n) {
              return t && o.endsWith(t, s) ? e : null
            }
          } else {
            i = (r = x.exec(p(e, t))) ? f(r[1], e) : (t.trimForExclusions
                ? M : N).test(e) ? g(e, t) : (r = T.exec(p(e, t))) ? m(
                r[1].substr(1), e, !0) : (r = k.exec(p(e, t))) ? m(r[1], e, !1)
                : v(e);
          }
          return I.set(n, i), i
        }

        function p(e, t) {
          return t.trimForExclusions && o.endsWith(e, "/**") ? e.substr(0,
              e.length - 2) : e
        }

        function f(e, t) {
          var n = "/" + e, i = "\\" + e, r = function (r, s) {
            return r ? s ? s === e ? t : null : r === e || o.endsWith(r, n)
            || o.endsWith(r, i) ? t : null : null
          }, s = [e];
          return r.basenames = s, r.patterns = [t], r.allBasenames = s, r
        }

        function g(e, t) {
          var i = b(e.slice(1, -1).split(",").map(function (e) {
            return h(e, t)
          }).filter(function (e) {
            return e !== O
          }), e), o = i.length;
          if (!o) {
            return O;
          }
          if (1 === o) {
            return i[0];
          }
          var r = function (t, n) {
            for (var o = 0, r = i.length; o < r; o++) {
              if (i[o](t, n)) {
                return e;
              }
            }
            return null
          }, s = n.first(i, function (e) {
            return !!e.allBasenames
          });
          s && (r.allBasenames = s.allBasenames);
          var a = i.reduce(function (e, t) {
            return t.allPaths ? e.concat(t.allPaths) : e
          }, []);
          return a.length && (r.allPaths = a), r
        }

        function m(e, t, n) {
          var i = r.nativeSep !== r.sep ? e.replace(E, r.nativeSep) : e,
              s = r.nativeSep + i, a = n ? function (e, n) {
                return e && (e === i || o.endsWith(e, s)) ? t : null
              } : function (e, n) {
                return e && e === i ? t : null
              };
          return a.allPaths = [(n ? "*/" : "./") + e], a
        }

        function v(e) {
          try {
            var t = new RegExp("^" + d(e) + "$");
            return function (n, i) {
              return t.lastIndex = 0, n && t.test(n) ? e : null
            }
          } catch (e) {
            return O
          }
        }

        function _(e, t) {
          if (void 0 === t && (t = {}), !e) {
            return D;
          }
          if ("string" == typeof e) {
            var n = h(e, t);
            if (n === O) {
              return D;
            }
            var i = function (e, t) {
              return !!n(e, t)
            };
            return n.allBasenames
            && (i.allBasenames = n.allBasenames), n.allPaths
            && (i.allPaths = n.allPaths), i
          }
          return y(e, t)
        }

        function y(e, t) {
          var i = b(Object.getOwnPropertyNames(e).map(function (n) {
            return C(n, e[n], t)
          }).filter(function (e) {
            return e !== O
          })), o = i.length;
          if (!o) {
            return O;
          }
          if (!i.some(function (e) {
            return e.requiresSiblings
          })) {
            if (1 === o) {
              return i[0];
            }
            var s = function (e, t, n) {
              for (var o = 0, r = i.length; o < r; o++) {
                var s = i[o](e, t);
                if (s) {
                  return s
                }
              }
              return null
            }, u = n.first(i, function (e) {
              return !!e.allBasenames
            });
            u && (s.allBasenames = u.allBasenames);
            var l = i.reduce(function (e, t) {
              return t.allPaths ? e.concat(t.allPaths) : e
            }, []);
            return l.length && (s.allPaths = l), s
          }
          var c = function (e, t, n) {
            function o(n) {
              if (n && n.length) {
                return t || (t = r.basename(e)), {
                  siblings: n,
                  name: t.substr(0, t.length - r.extname(e).length)
                }
              }
            }

            for (var s, u = !n, l = 0, c = i.length; l < c; l++) {
              var d = i[l](e, t, function () {
                if (!u) {
                  u = !0;
                  var e = n();
                  s = a.TPromise.is(e) ? e.then(o) : o(e)
                }
                return s
              });
              if (d) {
                return d
              }
            }
            return null
          }, d = n.first(i, function (e) {
            return !!e.allBasenames
          });
          d && (c.allBasenames = d.allBasenames);
          var h = i.reduce(function (e, t) {
            return t.allPaths ? e.concat(t.allPaths) : e
          }, []);
          return h.length && (c.allPaths = h), c
        }

        function C(e, t, n) {
          if (!1 === t) {
            return O;
          }
          var i = h(e, n);
          if (i === O) {
            return O;
          }
          if ("boolean" == typeof t) {
            return i;
          }
          if (t) {
            var o = t.when;
            if ("string" == typeof o) {
              var r = function (t) {
                var n = o.replace("$(basename)", t.name);
                return -1 !== t.siblings.indexOf(n) ? e : null
              }, s = function (e, t, n) {
                if (!i(e, t)) {
                  return null;
                }
                var o = n();
                return o ? a.TPromise.is(o) ? o.then(r) : r(o) : null
              };
              return s.requiresSiblings = !0, s
            }
          }
          return i
        }

        function b(e, t) {
          var n = e.filter(function (e) {
            return !!e.basenames
          });
          if (n.length < 2) {
            return e;
          }
          var i, o = n.reduce(function (e, t) {
            return e.concat(t.basenames)
          }, []);
          if (t) {
            i = [];
            for (var r = 0, s = o.length; r < s; r++) {
              i.push(t)
            }
          } else {
            i = n.reduce(function (e, t) {
              return e.concat(t.patterns)
            }, []);
          }
          var a = function (e, t) {
            if (!e) {
              return null;
            }
            if (!t) {
              var n = void 0;
              for (n = e.length; n > 0; n--) {
                var r = e.charCodeAt(n - 1);
                if (47 === r || 92 === r) {
                  break
                }
              }
              t = e.substr(n)
            }
            var s = o.indexOf(t);
            return -1 !== s ? i[s] : null
          };
          a.basenames = o, a.patterns = i, a.allBasenames = o;
          var u = e.filter(function (e) {
            return !e.basenames
          });
          return u.push(a), u
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.getEmptyExpression = u, t.mergeExpressions = function () {
          for (var e = [], t = 0; t < arguments.length;
              t++) {
            e[t] = arguments[t];
          }
          return i.assign.apply(i, [u()].concat(e.filter(function (e) {
            return !!e
          })))
        };
        var w = "[/\\\\]", S = "[^/\\\\]", E = /\//g;
        t.splitGlobAware = c;
        var L = /^\*\*\/\*\.[\w\.-]+$/, x = /^\*\*\/([\w\.-]+)\/?$/,
            N = /^{\*\*\/[\*\.]?[\w\.-]+\/?(,\*\*\/[\*\.]?[\w\.-]+\/?)*}$/,
            M = /^{\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?(,\*\*\/[\*\.]?[\w\.-]+(\/(\*\*)?)?)*}$/,
            T = /^\*\*((\/[\w\.-]+)+)\/?$/, k = /^([\w\.-]+(\/[\w\.-]+)*)\/?$/,
            I = new s.BoundedMap(1e4), D = function () {
              return !1
            }, O = function () {
              return null
            };
        t.match = function (e, t, n) {
          return !(!e || !t) && _(e)(t, void 0, n)
        }, t.parse = _, t.parseToAsync = function (e, t) {
          var n = _(e, t);
          return function (e, t, i) {
            var o = n(e, t, i);
            return o instanceof a.TPromise ? o : a.TPromise.as(o)
          }
        }, t.getBasenameTerms = function (e) {
          return e.allBasenames || []
        }, t.getPathTerms = function (e) {
          return e.allPaths || []
        }
      }), define(d[166], h([1, 0, 45, 29, 9, 165]),
      function (e, t, n, i, o, r) {
        "use strict";

        function s(e) {
          return {
            id: e.id,
            mime: e.mime,
            filename: e.filename,
            extension: e.extension,
            filepattern: e.filepattern,
            firstline: e.firstline,
            userConfigured: e.userConfigured,
            filenameLowercase: e.filename ? e.filename.toLowerCase() : void 0,
            extensionLowercase: e.extension ? e.extension.toLowerCase()
                : void 0,
            filepatternLowercase: e.filepattern ? e.filepattern.toLowerCase()
                : void 0,
            filepatternOnPath: !!e.filepattern && e.filepattern.indexOf(n.sep)
                >= 0
          }
        }

        function a(e, t, n) {
          for (var i, s, a, u = n.length - 1; u >= 0; u--) {
            var l = n[u];
            if (t === l.filenameLowercase) {
              i = l;
              break
            }
            if (l.filepattern && (!s || l.filepattern.length
                > s.filepattern.length)) {
              var c = l.filepatternOnPath ? e : t;
              r.match(l.filepatternLowercase, c) && (s = l)
            }
            l.extension && (!a || l.extension.length > a.extension.length)
            && o.endsWith(t, l.extensionLowercase) && (a = l)
          }
          return i ? i.mime : s ? s.mime : a ? a.mime : null
        }

        function u(e) {
          if (o.startsWithUTF8BOM(e) && (e = e.substr(1)), e.length
          > 0) {
            for (var t = 0; t < c.length; ++t) {
              var n = c[t];
              if (n.firstline) {
                var i = e.match(n.firstline);
                if (i && i.length > 0) {
                  return n.mime
                }
              }
            }
          }
          return null
        }

        function l(e) {
          return !e || ("string" == typeof e ? e === t.MIME_BINARY || e
              === t.MIME_TEXT || e === t.MIME_UNKNOWN : 1 === e.length && l(
              e[0]))
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.MIME_TEXT = "text/plain", t.MIME_BINARY = "application/octet-stream", t.MIME_UNKNOWN = "application/unknown";
        var c = [], d = [], h = [];
        t.registerTextMime = function (e) {
          var t = s(e);
          c.push(t), t.userConfigured ? h.push(t) : d.push(t), t.userConfigured
          || c.forEach(function (e) {
            e.mime === t.mime || e.userConfigured || (t.extension && e.extension
            === t.extension && console.warn(
                "Overwriting extension <<" + t.extension
                + ">> to now point to mime <<" + t.mime + ">>"), t.filename
            && e.filename === t.filename && console.warn(
                "Overwriting filename <<" + t.filename
                + ">> to now point to mime <<" + t.mime + ">>"), t.filepattern
            && e.filepattern === t.filepattern && console.warn(
                "Overwriting filepattern <<" + t.filepattern
                + ">> to now point to mime <<" + t.mime + ">>"), t.firstline
            && e.firstline === t.firstline && console.warn(
                "Overwriting firstline <<" + t.firstline
                + ">> to now point to mime <<" + t.mime + ">>"))
          })
        }, t.clearTextMimes = function (e) {
          e ? (c = c.filter(function (e) {
            return !e.userConfigured
          }), h = []) : (c = [], d = [], h = [])
        }, t.guessMimeTypes = function (e, i) {
          if (!e) {
            return [t.MIME_UNKNOWN];
          }
          e = e.toLowerCase();
          var o = n.basename(e), r = a(e, o, h);
          if (r) {
            return [r, t.MIME_TEXT];
          }
          var s = a(e, o, d);
          if (s) {
            return [s, t.MIME_TEXT];
          }
          if (i) {
            var l = u(i);
            if (l) {
              return [l, t.MIME_TEXT]
            }
          }
          return [t.MIME_UNKNOWN]
        }, t.isBinaryMime = function (e) {
          if (!e) {
            return !1;
          }
          return (i.isArray(e) ? e : e.split(",").map(function (e) {
            return e.trim()
          })).indexOf(t.MIME_BINARY) >= 0
        }, t.isUnspecific = l, t.suggestFilename = function (e, t) {
          for (var n = 0; n < c.length; n++) {
            var i = c[n];
            if (!i.userConfigured && i.id === e && i.extension) {
              return t
                  + i.extension
            }
          }
          return t
        }
      }), define(d[48], h([1, 0, 3, 11]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.Auto = 1] = "Auto", e[e.Hidden = 2] = "Hidden", e[e.Visible = 3] = "Visible"
    }(t.ScrollbarVisibility || (t.ScrollbarVisibility = {}));
    var o = function () {
      function e(e, t, n, i, o, r) {
        t |= 0, n |= 0, i |= 0, o |= 0, r |= 0, (e |= 0) < 0 && (e = 0), n + e
        > t && (n = t - e), n < 0 && (n = 0), i < 0 && (i = 0), r + i > o
        && (r = o - i), r < 0
        && (r = 0), this.width = e, this.scrollWidth = t, this.scrollLeft = n, this.height = i, this.scrollHeight = o, this.scrollTop = r
      }

      return e.prototype.equals = function (e) {
        return this.width === e.width && this.scrollWidth === e.scrollWidth
            && this.scrollLeft === e.scrollLeft && this.height === e.height
            && this.scrollHeight === e.scrollHeight && this.scrollTop
            === e.scrollTop
      }, e.prototype.createScrollEvent = function (e) {
        var t = this.width !== e.width, n = this.scrollWidth !== e.scrollWidth,
            i = this.scrollLeft !== e.scrollLeft, o = this.height !== e.height,
            r = this.scrollHeight !== e.scrollHeight,
            s = this.scrollTop !== e.scrollTop;
        return {
          width: this.width,
          scrollWidth: this.scrollWidth,
          scrollLeft: this.scrollLeft,
          height: this.height,
          scrollHeight: this.scrollHeight,
          scrollTop: this.scrollTop,
          widthChanged: t,
          scrollWidthChanged: n,
          scrollLeftChanged: i,
          heightChanged: o,
          scrollHeightChanged: r,
          scrollTopChanged: s
        }
      }, e
    }();
    t.ScrollState = o;
    var r = function (e) {
      function t() {
        var t = e.call(this) || this;
        return t._onScroll = t._register(
            new i.Emitter), t.onScroll = t._onScroll.event, t._state = new o(0,
            0, 0, 0, 0, 0), t
      }

      return f(t, e), t.prototype.getState = function () {
        return this._state
      }, t.prototype.validateScrollTop = function (e) {
        return e = Math.round(e), e = Math.max(e, 0), e = Math.min(e,
            this._state.scrollHeight - this._state.height)
      }, t.prototype.validateScrollLeft = function (e) {
        return e = Math.round(e), e = Math.max(e, 0), e = Math.min(e,
            this._state.scrollWidth - this._state.width)
      }, t.prototype.updateState = function (e) {
        var t = this._state, n = new o(void 0 !== e.width ? e.width : t.width,
            void 0 !== e.scrollWidth ? e.scrollWidth : t.scrollWidth,
            void 0 !== e.scrollLeft ? e.scrollLeft : t.scrollLeft,
            void 0 !== e.height ? e.height : t.height,
            void 0 !== e.scrollHeight ? e.scrollHeight : t.scrollHeight,
            void 0 !== e.scrollTop ? e.scrollTop : t.scrollTop);
        t.equals(n) || (this._state = n, this._onScroll.fire(
            this._state.createScrollEvent(t)))
      }, t
    }(n.Disposable);
    t.Scrollable = r
  }), define(d[429], h([1, 0, 3, 18, 48]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function (e) {
      function t(t, n, o) {
        var r = e.call(this) || this;
        return r._visibility = t, r._visibleClassName = n, r._invisibleClassName = o, r._domNode = null, r._isVisible = !1, r._isNeeded = !1, r._shouldBeVisible = !1, r._revealTimer = r._register(
            new i.TimeoutTimer), r
      }

      return f(t, e), t.prototype.applyVisibilitySetting = function (e) {
        return this._visibility !== o.ScrollbarVisibility.Hidden
            && (this._visibility === o.ScrollbarVisibility.Visible || e)
      }, t.prototype.setShouldBeVisible = function (e) {
        var t = this.applyVisibilitySetting(e);
        this._shouldBeVisible !== t
        && (this._shouldBeVisible = t, this.ensureVisibility())
      }, t.prototype.setIsNeeded = function (e) {
        this._isNeeded !== e && (this._isNeeded = e, this.ensureVisibility())
      }, t.prototype.setDomNode = function (e) {
        this._domNode = e, this._domNode.setClassName(
            this._invisibleClassName), this.setShouldBeVisible(!1)
      }, t.prototype.ensureVisibility = function () {
        this._isNeeded ? this._shouldBeVisible ? this._reveal() : this._hide(!0)
            : this._hide(!1)
      }, t.prototype._reveal = function () {
        var e = this;
        this._isVisible || (this._isVisible = !0, this._revealTimer.setIfNotSet(
            function () {
              e._domNode.setClassName(e._visibleClassName)
            }, 0))
      }, t.prototype._hide = function (e) {
        this._revealTimer.cancel(), this._isVisible
        && (this._isVisible = !1, this._domNode.setClassName(
            this._invisibleClassName + (e ? " fade" : "")))
      }, t
    }(n.Disposable);
    t.ScrollbarVisibilityController = r
  }), define(d[184], h([1, 0, 15, 4, 83, 41, 27, 117, 429]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n._lazyRender = t.lazyRender, n._host = t.host, n._scrollable = t.scrollable, n._scrollbarState = t.scrollbarState, n._visibilityController = n._register(
                new u.ScrollbarVisibilityController(t.visibility,
                    "visible scrollbar " + t.extraScrollbarClassName,
                    "invisible scrollbar "
                    + t.extraScrollbarClassName)), n._mouseMoveMonitor = n._register(
                new o.GlobalMouseMoveMonitor), n._shouldRender = !0, n.domNode = s.createFastDomNode(
                document.createElement("div")), n.domNode.setAttribute("role",
                "presentation"), n.domNode.setAttribute("aria-hidden",
                "true"), n._visibilityController.setDomNode(
                n.domNode), n.domNode.setPosition("absolute"), n.onmousedown(
                n.domNode.domNode, function (e) {
                  return n._domNodeMouseDown(e)
                }), n
          }

          return f(t, e), t.prototype._createArrow = function (e) {
            var t = this._register(new a.ScrollbarArrow(e));
            this.domNode.domNode.appendChild(
                t.bgDomNode), this.domNode.domNode.appendChild(t.domNode)
          }, t.prototype._createSlider = function (e, t, n, i) {
            var o = this;
            this.slider = s.createFastDomNode(
                document.createElement("div")), this.slider.setClassName(
                "slider"), this.slider.setPosition(
                "absolute"), this.slider.setTop(e), this.slider.setLeft(
                t), this.slider.setWidth(n), this.slider.setHeight(
                i), this.slider.setLayerHinting(
                !0), this.domNode.domNode.appendChild(
                this.slider.domNode), this.onmousedown(this.slider.domNode,
                function (e) {
                  e.leftButton && (e.preventDefault(), o._sliderMouseDown(e,
                      function () {
                      }))
                })
          }, t.prototype._onElementSize = function (e) {
            return this._scrollbarState.setVisibleSize(e)
            && (this._visibilityController.setIsNeeded(
                this._scrollbarState.isNeeded()), this._shouldRender = !0, this._lazyRender
            || this.render()), this._shouldRender
          }, t.prototype._onElementScrollSize = function (e) {
            return this._scrollbarState.setScrollSize(e)
            && (this._visibilityController.setIsNeeded(
                this._scrollbarState.isNeeded()), this._shouldRender = !0, this._lazyRender
            || this.render()), this._shouldRender
          }, t.prototype._onElementScrollPosition = function (e) {
            return this._scrollbarState.setScrollPosition(e)
            && (this._visibilityController.setIsNeeded(
                this._scrollbarState.isNeeded()), this._shouldRender = !0, this._lazyRender
            || this.render()), this._shouldRender
          }, t.prototype.beginReveal = function () {
            this._visibilityController.setShouldBeVisible(!0)
          }, t.prototype.beginHide = function () {
            this._visibilityController.setShouldBeVisible(!1)
          }, t.prototype.render = function () {
            this._shouldRender && (this._shouldRender = !1, this._renderDomNode(
                this._scrollbarState.getRectangleLargeSize(),
                this._scrollbarState.getRectangleSmallSize()), this._updateSlider(
                this._scrollbarState.getSliderSize(),
                this._scrollbarState.getArrowSize()
                + this._scrollbarState.getSliderPosition()))
          }, t.prototype._domNodeMouseDown = function (e) {
            e.target === this.domNode.domNode && this._onMouseDown(e)
          }, t.prototype.delegateMouseDown = function (e) {
            var t = this.domNode.domNode.getClientRects()[0].top,
                n = t + this._scrollbarState.getSliderPosition(),
                i = t + this._scrollbarState.getSliderPosition()
                    + this._scrollbarState.getSliderSize(),
                o = this._sliderMousePosition(e);
            n <= o && o <= i ? e.leftButton
                && (e.preventDefault(), this._sliderMouseDown(e, function () {
                })) : this._onMouseDown(e)
          }, t.prototype.delegateSliderMouseDown = function (e, t) {
            this._sliderMouseDown(e, t)
          }, t.prototype._onMouseDown = function (e) {
            var t = i.getDomNodePagePosition(this.domNode.domNode);
            this.setDesiredScrollPosition(
                this._scrollbarState.getDesiredScrollPositionFromOffset(
                    this._mouseDownRelativePosition(e, t))), e.leftButton
            && (e.preventDefault(), this._sliderMouseDown(e, function () {
            }))
          }, t.prototype._sliderMouseDown = function (e, t) {
            var i = this, r = this._sliderMousePosition(e),
                s = this._sliderOrthogonalMousePosition(e),
                a = this._scrollbarState.clone();
            this.slider.toggleClassName("active",
                !0), this._mouseMoveMonitor.startMonitoring(
                o.standardMouseMoveMerger, function (e) {
                  var t = i._sliderOrthogonalMousePosition(e),
                      o = Math.abs(t - s);
                  if (n.isWindows && o > 140) {
                    i.setDesiredScrollPosition(
                        a.getScrollPosition());
                  } else {
                    var u = i._sliderMousePosition(e) - r;
                    i.setDesiredScrollPosition(
                        a.getDesiredScrollPositionFromDelta(u))
                  }
                }, function () {
                  i.slider.toggleClassName("active",
                      !1), i._host.onDragEnd(), t()
                }), this._host.onDragStart()
          }, t.prototype.setDesiredScrollPosition = function (e) {
            e = this.validateScrollPosition(e);
            var t = this._getScrollPosition();
            return this._setScrollPosition(e), t !== this._getScrollPosition()
            && (this._onElementScrollPosition(this._getScrollPosition()), !0)
          }, t
        }(r.Widget);
        t.AbstractScrollbar = l
      }), define(d[439], h([1, 0, 184, 47, 48, 150, 117]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function (e) {
          function t(t, n, a) {
            var u = e.call(this, {
              lazyRender: n.lazyRender,
              host: a,
              scrollbarState: new r.ScrollbarState(
                  n.horizontalHasArrows ? n.arrowSize : 0,
                  n.horizontal === o.ScrollbarVisibility.Hidden ? 0
                      : n.horizontalScrollbarSize,
                  n.vertical === o.ScrollbarVisibility.Hidden ? 0
                      : n.verticalScrollbarSize),
              visibility: n.horizontal,
              extraScrollbarClassName: "horizontal",
              scrollable: t
            }) || this;
            if (n.horizontalHasArrows) {
              var l = (n.arrowSize - s.ARROW_IMG_SIZE) / 2,
                  c = (n.horizontalScrollbarSize - s.ARROW_IMG_SIZE) / 2;
              u._createArrow({
                className: "left-arrow",
                top: c,
                left: l,
                bottom: void 0,
                right: void 0,
                bgWidth: n.arrowSize,
                bgHeight: n.horizontalScrollbarSize,
                onActivate: function () {
                  return u._host.onMouseWheel(
                      new i.StandardMouseWheelEvent(null, 1, 0))
                }
              }), u._createArrow({
                className: "right-arrow",
                top: c,
                left: void 0,
                bottom: void 0,
                right: l,
                bgWidth: n.arrowSize,
                bgHeight: n.horizontalScrollbarSize,
                onActivate: function () {
                  return u._host.onMouseWheel(
                      new i.StandardMouseWheelEvent(null, -1, 0))
                }
              })
            }
            return u._createSlider(Math.floor(
                    (n.horizontalScrollbarSize - n.horizontalSliderSize) / 2), 0,
                null, n.horizontalSliderSize), u
          }

          return f(t, e), t.prototype._updateSlider = function (e, t) {
            this.slider.setWidth(e), this.slider.setLeft(t)
          }, t.prototype._renderDomNode = function (e, t) {
            this.domNode.setWidth(e), this.domNode.setHeight(
                t), this.domNode.setLeft(0), this.domNode.setBottom(0)
          }, t.prototype.onDidScroll = function (e) {
            return this._shouldRender = this._onElementScrollSize(e.scrollWidth)
                || this._shouldRender, this._shouldRender = this._onElementScrollPosition(
                    e.scrollLeft)
                || this._shouldRender, this._shouldRender = this._onElementSize(
                e.width) || this._shouldRender, this._shouldRender
          }, t.prototype._mouseDownRelativePosition = function (e, t) {
            return e.posx - t.left
          }, t.prototype._sliderMousePosition = function (e) {
            return e.posx
          }, t.prototype._sliderOrthogonalMousePosition = function (e) {
            return e.posy
          }, t.prototype._getScrollPosition = function () {
            return this._scrollable.getState().scrollLeft
          }, t.prototype._setScrollPosition = function (e) {
            this._scrollable.updateState({scrollLeft: e})
          }, t.prototype.validateScrollPosition = function (e) {
            return this._scrollable.validateScrollLeft(e)
          }, t
        }(n.AbstractScrollbar);
        t.HorizontalScrollbar = a
      }), define(d[440], h([1, 0, 184, 47, 48, 150, 117]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function (e) {
          function t(t, n, a) {
            var u = e.call(this, {
              lazyRender: n.lazyRender,
              host: a,
              scrollbarState: new r.ScrollbarState(
                  n.verticalHasArrows ? n.arrowSize : 0,
                  n.vertical === o.ScrollbarVisibility.Hidden ? 0
                      : n.verticalScrollbarSize, 0),
              visibility: n.vertical,
              extraScrollbarClassName: "vertical",
              scrollable: t
            }) || this;
            if (n.verticalHasArrows) {
              var l = (n.arrowSize - s.ARROW_IMG_SIZE) / 2,
                  c = (n.verticalScrollbarSize - s.ARROW_IMG_SIZE) / 2;
              u._createArrow({
                className: "up-arrow",
                top: l,
                left: c,
                bottom: void 0,
                right: void 0,
                bgWidth: n.verticalScrollbarSize,
                bgHeight: n.arrowSize,
                onActivate: function () {
                  return u._host.onMouseWheel(
                      new i.StandardMouseWheelEvent(null, 0, 1))
                }
              }), u._createArrow({
                className: "down-arrow",
                top: void 0,
                left: c,
                bottom: l,
                right: void 0,
                bgWidth: n.verticalScrollbarSize,
                bgHeight: n.arrowSize,
                onActivate: function () {
                  return u._host.onMouseWheel(
                      new i.StandardMouseWheelEvent(null, 0, -1))
                }
              })
            }
            return u._createSlider(0, Math.floor(
                    (n.verticalScrollbarSize - n.verticalSliderSize) / 2),
                n.verticalSliderSize, null), u
          }

          return f(t, e), t.prototype._updateSlider = function (e, t) {
            this.slider.setHeight(e), this.slider.setTop(t)
          }, t.prototype._renderDomNode = function (e, t) {
            this.domNode.setWidth(t), this.domNode.setHeight(
                e), this.domNode.setRight(0), this.domNode.setTop(0)
          }, t.prototype.onDidScroll = function (e) {
            return this._shouldRender = this._onElementScrollSize(
                    e.scrollHeight)
                || this._shouldRender, this._shouldRender = this._onElementScrollPosition(
                    e.scrollTop)
                || this._shouldRender, this._shouldRender = this._onElementSize(
                e.height) || this._shouldRender, this._shouldRender
          }, t.prototype._mouseDownRelativePosition = function (e, t) {
            return e.posy - t.top
          }, t.prototype._sliderMousePosition = function (e) {
            return e.posy
          }, t.prototype._sliderOrthogonalMousePosition = function (e) {
            return e.posx
          }, t.prototype._getScrollPosition = function () {
            return this._scrollable.getState().scrollTop
          }, t.prototype._setScrollPosition = function (e) {
            this._scrollable.updateState({scrollTop: e})
          }, t.prototype.validateScrollPosition = function (e) {
            return this._scrollable.validateScrollTop(e)
          }, t
        }(n.AbstractScrollbar);
        t.VerticalScrollbar = a
      }), define(d[197], h([1, 0, 10, 3, 7, 18, 15]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = "$initialize", u = !1;
        t.logOnceWebWorkerWarning = function (e) {
          s.isWeb && (u || (u = !0, console.warn(
              "Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/Microsoft/monaco-editor#faq")), console.warn(
              e.message))
        };
        var l = function () {
          function e(e) {
            this._workerId = -1, this._handler = e, this._lastSentReq = 0, this._pendingReplies = Object.create(
                null)
          }

          return e.prototype.setWorkerId = function (e) {
            this._workerId = e
          }, e.prototype.sendMessage = function (e, t) {
            var n = String(++this._lastSentReq), i = {c: null, e: null},
                r = new o.TPromise(function (e, t, n) {
                  i.c = e, i.e = t
                }, function () {
                });
            return this._pendingReplies[n] = i, this._send(
                {vsWorker: this._workerId, req: n, method: e, args: t}), r
          }, e.prototype.handleMessage = function (e) {
            var t;
            try {
              t = JSON.parse(e)
            } catch (e) {
            }
            t.vsWorker && (-1 !== this._workerId && t.vsWorker
                !== this._workerId || this._handleMessage(t))
          }, e.prototype._handleMessage = function (e) {
            var t = this;
            if (e.seq) {
              var i = e;
              if (!this._pendingReplies[i.seq]) {
                return void console.warn(
                    "Got reply to unknown seq");
              }
              var o = this._pendingReplies[i.seq];
              if (delete this._pendingReplies[i.seq], i.err) {
                var r = i.err;
                return i.err.$isError
                && ((r = new Error).name = i.err.name, r.message = i.err.message, r.stack = i.err.stack), void o.e(
                    r)
              }
              o.c(i.res)
            } else {
              var s = e, a = s.req;
              this._handler.handleMessage(s.method, s.args).then(function (e) {
                t._send({vsWorker: t._workerId, seq: a, res: e, err: void 0})
              }, function (e) {
                t._send({
                  vsWorker: t._workerId,
                  seq: a,
                  res: void 0,
                  err: n.transformErrorForSerialization(e)
                })
              })
            }
          }, e.prototype._send = function (e) {
            var t = JSON.stringify(e);
            this._handler.sendMessage(t)
          }, e
        }(), c = function (e) {
          function t(t, n) {
            var i = e.call(this) || this;
            i._lastRequestTimestamp = -1;
            var r = null, s = null;
            i._worker = i._register(
                t.create("vs/base/common/worker/simpleWorker", function (e) {
                  i._protocol.handleMessage(e)
                }, function (e) {
                  s(e)
                })), i._protocol = new l({
              sendMessage: function (e) {
                i._worker.postMessage(e)
              }, handleMessage: function (e, t) {
                return o.TPromise.as(null)
              }
            }), i._protocol.setWorkerId(i._worker.getId());
            var u = null, c = self.require;
            "function" == typeof c.getConfig ? u = c.getConfig() : void 0
                !== self.requirejs
                && (u = self.requirejs.s.contexts._.config), i._lazyProxy = new o.TPromise(
                function (e, t, n) {
                  r = e, s = t
                }, function () {
                }), i._onModuleLoaded = i._protocol.sendMessage(a,
                [i._worker.getId(), n, u]), i._onModuleLoaded.then(
                function (e) {
                  for (var t = {}, n = 0; n < e.length; n++) {
                    t[e[n]] = h(e[n],
                        d);
                  }
                  r(t)
                }, function (e) {
                  s(e), i._onError("Worker failed to load " + n, e)
                });
            var d = function (e, t) {
              return i._request(e, t)
            }, h = function (e, t) {
              return function () {
                var n = Array.prototype.slice.call(arguments, 0);
                return t(e, n)
              }
            };
            return i
          }

          return f(t, e), t.prototype.getProxyObject = function () {
            return new r.ShallowCancelThenPromise(this._lazyProxy)
          }, t.prototype.getLastRequestTimestamp = function () {
            return this._lastRequestTimestamp
          }, t.prototype._request = function (e, t) {
            var n = this;
            return new o.TPromise(function (i, o, r) {
              n._onModuleLoaded.then(function () {
                n._lastRequestTimestamp = Date.now(), n._protocol.sendMessage(e,
                    t).then(i, o)
              }, o)
            }, function () {
            })
          }, t.prototype._onError = function (e, t) {
            console.error(e), console.info(t)
          }, t
        }(i.Disposable);
        t.SimpleWorkerClient = c;
        var d = function () {
          function t(e) {
            var t = this;
            this._protocol = new l({
              sendMessage: function (t) {
                e(t)
              }, handleMessage: function (e, n) {
                return t._handleMessage(e, n)
              }
            })
          }

          return t.prototype.onmessage = function (e) {
            this._protocol.handleMessage(e)
          }, t.prototype._handleMessage = function (e, t) {
            if (e === a) {
              return this.initialize(t[0], t[1], t[2]);
            }
            if (!this._requestHandler || "function"
                != typeof this._requestHandler[e]) {
              return o.TPromise.wrapError(
                  new Error("Missing requestHandler or method: " + e));
            }
            try {
              return o.TPromise.as(
                  this._requestHandler[e].apply(this._requestHandler, t))
            } catch (e) {
              return o.TPromise.wrapError(e)
            }
          }, t.prototype.initialize = function (t, n, i) {
            var r = this;
            if (this._protocol.setWorkerId(t), i) {
              void 0 !== i.baseUrl && delete i.baseUrl, void 0 !== i.paths
              && void 0 !== i.paths.vs && delete i.paths.vs;
              var s = i["vs/nls"];
              s && s.pseudo && e(["vs/nls"], function (e) {
                e.setPseudoTranslation(s.pseudo)
              }), i.catchError = !0, self.require.config(i)
            }
            var a, u, l = new o.TPromise(function (e, t, n) {
              a = e, u = t
            });
            return self.require([n], function () {
              for (var e = [], t = 0; t < arguments.length;
                  t++) {
                e[t] = arguments[t];
              }
              var n = e[0];
              r._requestHandler = n.create();
              var i = [];
              for (var o in r._requestHandler) {
                "function"
                == typeof r._requestHandler[o] && i.push(o);
              }
              a(i)
            }, u), l
          }, t
        }();
        t.SimpleWorkerServer = d, t.create = function (e) {
          return new d(e)
        }
      }), define(d[445], h([1, 0, 7, 29]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e(e) {
        this.modelProvider = i.isFunction(e.getModel) ? e : {
          getModel: function () {
            return e
          }
        }
      }

      return e.prototype.getId = function (e, t) {
        if (!t) {
          return null;
        }
        var n = this.modelProvider.getModel();
        return n === t ? "__root__" : n.dataSource.getId(t)
      }, e.prototype.hasChildren = function (e, t) {
        var n = this.modelProvider.getModel();
        return n && n === t && n.entries.length > 0
      }, e.prototype.getChildren = function (e, t) {
        var i = this.modelProvider.getModel();
        return n.TPromise.as(i === t ? i.entries : [])
      }, e.prototype.getParent = function (e, t) {
        return n.TPromise.as(null)
      }, e
    }();
    t.DataSource = o;
    var r = function () {
      function e(e) {
        this.modelProvider = e
      }

      return e.prototype.getAriaLabel = function (e, t) {
        var n = this.modelProvider.getModel();
        return n.accessibilityProvider && n.accessibilityProvider.getAriaLabel(
            t)
      }, e.prototype.getPosInSet = function (e, t) {
        var n = this.modelProvider.getModel();
        return String(n.entries.indexOf(t) + 1)
      }, e.prototype.getSetSize = function () {
        var e = this.modelProvider.getModel();
        return String(e.entries.length)
      }, e
    }();
    t.AccessibilityProvider = r;
    var s = function () {
      function e(e) {
        this.modelProvider = e
      }

      return e.prototype.isVisible = function (e, t) {
        var n = this.modelProvider.getModel();
        return !n.filter || n.filter.isVisible(t)
      }, e
    }();
    t.Filter = s;
    var a = function () {
      function e(e, t) {
        this.modelProvider = e, this.styles = t
      }

      return e.prototype.updateStyles = function (e) {
        this.styles = e
      }, e.prototype.getHeight = function (e, t) {
        return this.modelProvider.getModel().renderer.getHeight(t)
      }, e.prototype.getTemplateId = function (e, t) {
        return this.modelProvider.getModel().renderer.getTemplateId(t)
      }, e.prototype.renderTemplate = function (e, t, n) {
        return this.modelProvider.getModel().renderer.renderTemplate(t, n,
            this.styles)
      }, e.prototype.renderElement = function (e, t, n, i) {
        this.modelProvider.getModel().renderer.renderElement(t, n, i,
            this.styles)
      }, e.prototype.disposeTemplate = function (e, t, n) {
        this.modelProvider.getModel().renderer.disposeTemplate(t, n)
      }, e
    }();
    t.Renderer = a
  }), define(d[100], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.PREVIEW = 0] = "PREVIEW", e[e.OPEN = 1] = "OPEN", e[e.OPEN_IN_BACKGROUND = 2] = "OPEN_IN_BACKGROUND"
    }(t.Mode || (t.Mode = {}))
  }), define(d[448], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e, t, n) {
        this._posx = e, this._posy = t, this._target = n
      }

      return e.prototype.preventDefault = function () {
      }, e.prototype.stopPropagation = function () {
      }, Object.defineProperty(e.prototype, "posx", {
        get: function () {
          return this._posx
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "posy", {
        get: function () {
          return this._posy
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "target", {
        get: function () {
          return this._target
        }, enumerable: !0, configurable: !0
      }), e
    }();
    t.ContextMenuEvent = n;
    var i = function (e) {
      function t(t) {
        var n = e.call(this, t.posx, t.posy, t.target) || this;
        return n.originalEvent = t, n
      }

      return f(t, e), t.prototype.preventDefault = function () {
        this.originalEvent.preventDefault()
      }, t.prototype.stopPropagation = function () {
        this.originalEvent.stopPropagation()
      }, t
    }(n);
    t.MouseContextMenuEvent = i;
    var o = function (e) {
      function t(t, n, i) {
        var o = e.call(this, t, n, i.target) || this;
        return o.originalEvent = i, o
      }

      return f(t, e), t.prototype.preventDefault = function () {
        this.originalEvent.preventDefault()
      }, t.prototype.stopPropagation = function () {
        this.originalEvent.stopPropagation()
      }, t
    }(n);
    t.KeyboardContextMenuEvent = o;
    var r;
    !function (e) {
      e[e.COPY = 0] = "COPY", e[e.MOVE = 1] = "MOVE"
    }(r = t.DragOverEffect || (t.DragOverEffect = {}));
    var s;
    !function (e) {
      e[e.BUBBLE_DOWN = 0] = "BUBBLE_DOWN", e[e.BUBBLE_UP = 1] = "BUBBLE_UP"
    }(s = t.DragOverBubble
        || (t.DragOverBubble = {})), t.DRAG_OVER_REJECT = {accept: !1}, t.DRAG_OVER_ACCEPT = {accept: !0}, t.DRAG_OVER_ACCEPT_BUBBLE_UP = {
      accept: !0,
      bubble: s.BUBBLE_UP
    }, t.DRAG_OVER_ACCEPT_BUBBLE_DOWN = function (e) {
      return void 0 === e && (e = !1), {
        accept: !0,
        bubble: s.BUBBLE_DOWN,
        autoExpand: e
      }
    }, t.DRAG_OVER_ACCEPT_BUBBLE_UP_COPY = {
      accept: !0,
      bubble: s.BUBBLE_UP,
      effect: r.COPY
    }, t.DRAG_OVER_ACCEPT_BUBBLE_DOWN_COPY = function (e) {
      return void 0 === e && (e = !1), {
        accept: !0,
        bubble: s.BUBBLE_DOWN,
        effect: r.COPY,
        autoExpand: e
      }
    }
  }),define(d[461], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e) {
        this.elements = e
      }

      return e.prototype.update = function (e) {
      }, e.prototype.getData = function () {
        return this.elements
      }, e
    }();
    t.ElementsDragAndDropData = n;
    var i = function () {
      function e(e) {
        this.elements = e
      }

      return e.prototype.update = function (e) {
      }, e.prototype.getData = function () {
        return this.elements
      }, e
    }();
    t.ExternalElementsDragAndDropData = i;
    var o = function () {
      function e() {
        this.types = [], this.files = []
      }

      return e.prototype.update = function (e) {
        e.dataTransfer.types && (this.types = [], Array.prototype.push.apply(
            this.types, e.dataTransfer.types)), e.dataTransfer.files
        && (this.files = [], Array.prototype.push.apply(this.files,
            e.dataTransfer.files), this.files = this.files.filter(function (e) {
          return e.size || e.type
        }))
      }, e.prototype.getData = function () {
        return {types: this.types, files: this.files}
      }, e
    }();
    t.DesktopDragAndDropData = o
  }),define(d[466], h([1, 0, 72, 10, 3, 33, 38, 7]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";

        function u(e, t) {
          for (var n = e.getHierarchy(), i = t.getHierarchy(),
              o = n[r.commonPrefixLength(n, i) - 1], s = o.getNavigator(),
              a = null, u = null, l = 0, c = [];
              o && (null === a || null === u);) {
            c.push(o), o === e && (a = l), o
            === t && (u = l), l++, o = s.next();
          }
          if (null === a || null === u) {
            return [];
          }
          var d = Math.min(a, u), h = Math.max(a, u);
          return c.slice(d, h + 1)
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n._item = t, n
          }

          return f(t, e), Object.defineProperty(t.prototype, "item", {
            get: function () {
              return this._item
            }, enumerable: !0, configurable: !0
          }), t.prototype.dispose = function () {
            this.emit("unlock"), e.prototype.dispose.call(this)
          }, t
        }(s.EventEmitter);
        t.LockData = l;
        var c = function () {
          function e() {
            this.locks = Object.create({})
          }

          return e.prototype.isLocked = function (e) {
            return !!this.locks[e.id]
          }, e.prototype.run = function (e, t) {
            var n = this, i = this.getLock(e);
            if (i) {
              var o;
              return new a.TPromise(function (r, s) {
                o = i.addOneTimeListener("unlock", function () {
                  return n.run(e, t).then(r, s)
                })
              }, function () {
                o.dispose()
              })
            }
            var r;
            return new a.TPromise(function (i, o) {
              if (e.isDisposed()) {
                return o(new Error("Item is disposed."));
              }
              var s = n.locks[e.id] = new l(e);
              return r = t().then(function (t) {
                return delete n.locks[e.id], s.dispose(), t
              }).then(i, o)
            }, function () {
              return r.cancel()
            })
          }, e.prototype.getLock = function (e) {
            var t;
            for (t in this.locks) {
              var n = this.locks[t];
              if (e.intersects(n.item)) {
                return n
              }
            }
            return null
          }, e
        }();
        t.Lock = c;
        var d = function (e) {
          function t() {
            var t = e.call(this) || this;
            return t._isDisposed = !1, t.items = {}, t
          }

          return f(t, e), t.prototype.register = function (e) {
            n.ok(!this.isRegistered(e.id), "item already registered: "
                + e.id), this.items[e.id] = {
              item: e,
              disposable: this.addEmitter(e)
            }
          }, t.prototype.deregister = function (e) {
            n.ok(this.isRegistered(e.id), "item not registered: "
                + e.id), this.items[e.id].disposable.dispose(), delete this.items[e.id]
          }, t.prototype.isRegistered = function (e) {
            return this.items.hasOwnProperty(e)
          }, t.prototype.getItem = function (e) {
            var t = this.items[e];
            return t ? t.item : null
          }, t.prototype.dispose = function () {
            e.prototype.dispose.call(
                this), this.items = null, this._isDisposed = !0
          }, t.prototype.isDisposed = function () {
            return this._isDisposed
          }, t
        }(s.EventEmitter);
        t.ItemRegistry = d;
        var h = function (e) {
          function t(t, n, i, o, r) {
            var s = e.call(this) || this;
            return s.registry = n, s.context = i, s.lock = o, s.element = r, s.id = t, s.registry.register(
                s), s.doesHaveChildren = s.context.dataSource.hasChildren(
                s.context.tree,
                s.element), s.needsChildrenRefresh = !0, s.parent = null, s.previous = null, s.next = null, s.firstChild = null, s.lastChild = null, s.userContent = null, s.traits = {}, s.depth = 0, s.expanded = s.context.dataSource.shouldAutoexpand
                && s.context.dataSource.shouldAutoexpand(s.context.tree,
                    r), s.emit("item:create",
                {item: s}), s.visible = s._isVisible(), s.height = s._getHeight(), s._isDisposed = !1, s
          }

          return f(t, e), t.prototype.getElement = function () {
            return this.element
          }, t.prototype.hasChildren = function () {
            return this.doesHaveChildren
          }, t.prototype.getDepth = function () {
            return this.depth
          }, t.prototype.isVisible = function () {
            return this.visible
          }, t.prototype.setVisible = function (e) {
            this.visible = e
          }, t.prototype.isExpanded = function () {
            return this.expanded
          }, t.prototype._setExpanded = function (e) {
            this.expanded = e
          }, t.prototype.reveal = function (e) {
            void 0 === e && (e = null);
            var t = {item: this, relativeTop: e};
            this.emit("item:reveal", t)
          }, t.prototype.expand = function () {
            var e = this;
            return this.isExpanded() || !this.doesHaveChildren
            || this.lock.isLocked(this) ? a.TPromise.as(!1) : this.lock.run(
                this, function () {
                  var t = {item: e};
                  return e.emit("item:expanding", t), (e.needsChildrenRefresh
                      ? e.refreshChildren(!1, !0, !0) : a.TPromise.as(
                          null)).then(function () {
                    return e._setExpanded(!0), e.emit("item:expanded", t), !0
                  })
                }).then(function (t) {
              return !e.isDisposed()
                  && (e.context.options.autoExpandSingleChildren && t && null
                  !== e.firstChild && e.firstChild === e.lastChild
                  && e.firstChild.isVisible() ? e.firstChild.expand().then(
                      function () {
                        return !0
                      }) : t)
            })
          }, t.prototype.collapse = function (e) {
            var t = this;
            if (void 0 === e && (e = !1), e) {
              var n = a.TPromise.as(null);
              return this.forEachChild(function (e) {
                n = n.then(function () {
                  return e.collapse(!0)
                })
              }), n.then(function () {
                return t.collapse(!1)
              })
            }
            return !this.isExpanded() || this.lock.isLocked(this)
                ? a.TPromise.as(!1) : this.lock.run(this, function () {
                  var e = {item: t};
                  return t.emit("item:collapsing", e), t._setExpanded(
                      !1), t.emit("item:collapsed", e), a.TPromise.as(!0)
                })
          }, t.prototype.addTrait = function (e) {
            var t = {item: this, trait: e};
            this.traits[e] = !0, this.emit("item:addTrait", t)
          }, t.prototype.removeTrait = function (e) {
            var t = {item: this, trait: e};
            delete this.traits[e], this.emit("item:removeTrait", t)
          }, t.prototype.hasTrait = function (e) {
            return this.traits[e] || !1
          }, t.prototype.getAllTraits = function () {
            var e, t = [];
            for (e in this.traits) {
              this.traits.hasOwnProperty(e)
              && this.traits[e] && t.push(e);
            }
            return t
          }, t.prototype.getHeight = function () {
            return this.height
          }, t.prototype.refreshChildren = function (e, n, o) {
            var r = this;
            if (void 0 === n && (n = !1), void 0 === o && (o = !1), !o
            && !this.isExpanded()) {
              return this.needsChildrenRefresh = !0, a.TPromise.as(
                  this);
            }
            this.needsChildrenRefresh = !1;
            var s = function () {
              var o = {item: r, isNested: n};
              r.emit("item:childrenRefreshing", o);
              return (r.doesHaveChildren ? r.context.dataSource.getChildren(
                  r.context.tree, r.element) : a.TPromise.as([])).then(
                  function (n) {
                    if (r.isDisposed()
                        || r.registry.isDisposed()) {
                      return a.TPromise.as(null);
                    }
                    if (!Array.isArray(n)) {
                      return a.TPromise.wrapError(
                          new Error("Please return an array of children."));
                    }
                    n = n ? n.slice(0) : [], n = r.sort(n);
                    for (var i = {}; null
                    !== r.firstChild;) {
                      i[r.firstChild.id] = r.firstChild, r.removeChild(
                          r.firstChild);
                    }
                    for (var o = 0, s = n.length; o < s; o++) {
                      var u = n[o],
                          l = r.context.dataSource.getId(r.context.tree, u),
                          c = i[l] || new t(l, r.registry, r.context, r.lock,
                              u);
                      c.element = u, e
                      && (c.needsChildrenRefresh = e), delete i[l], r.addChild(
                          c)
                    }
                    for (var d in i) {
                      i.hasOwnProperty(d) && i[d].dispose();
                    }
                    return e ? a.Promise.join(r.mapEachChild(function (t) {
                      return t.doRefresh(e, !0)
                    })) : a.TPromise.as(null)
                  }).then(null, i.onUnexpectedError).then(function () {
                return r.emit("item:childrenRefreshed", o)
              })
            };
            return n ? s() : this.lock.run(this, s)
          }, t.prototype.doRefresh = function (e, t) {
            void 0 === t && (t = !1);
            var n = {item: this};
            return this.doesHaveChildren = this.context.dataSource.hasChildren(
                this.context.tree,
                this.element), this.height = this._getHeight(), this.setVisible(
                this._isVisible()), this.emit("item:refresh",
                n), this.refreshChildren(e, t)
          }, t.prototype.refresh = function (e) {
            return this.doRefresh(e)
          }, t.prototype.getNavigator = function () {
            return new g(this)
          }, t.prototype.intersects = function (e) {
            return this.isAncestorOf(e) || e.isAncestorOf(this)
          }, t.prototype.getHierarchy = function () {
            var e = [], t = this;
            do {
              e.push(t), t = t.parent
            } while (t);
            return e.reverse(), e
          }, t.prototype.isAncestorOf = function (e) {
            for (; e;) {
              if (e.id === this.id) {
                return !0;
              }
              e = e.parent
            }
            return !1
          }, t.prototype.addChild = function (e, t) {
            void 0 === t && (t = this.lastChild);
            var n = null === this.firstChild, i = null === t,
                o = t === this.lastChild;
            n
                ? (this.firstChild = this.lastChild = e, e.next = e.previous = null)
                : i
                    ? (this.firstChild.previous = e, e.next = this.firstChild, e.previous = null, this.firstChild = e)
                    : o
                        ? (this.lastChild.next = e, e.next = null, e.previous = this.lastChild, this.lastChild = e)
                        : (e.previous = t, e.next = t.next, t.next.previous = e, t.next = e), e.parent = this, e.depth = this.depth
                + 1
          }, t.prototype.removeChild = function (e) {
            var t = this.firstChild === e, n = this.lastChild === e;
            t && n ? this.firstChild = this.lastChild = null : t
                ? (e.next.previous = null, this.firstChild = e.next) : n
                    ? (e.previous.next = null, this.lastChild = e.previous)
                    : (e.next.previous = e.previous, e.previous.next = e.next), e.parent = null, e.depth = null
          }, t.prototype.forEachChild = function (e) {
            for (var t, n = this.firstChild; n;) {
              t = n.next, e(n), n = t
            }
          }, t.prototype.mapEachChild = function (e) {
            var t = [];
            return this.forEachChild(function (n) {
              t.push(e(n))
            }), t
          }, t.prototype.sort = function (e) {
            var t = this;
            return this.context.sorter ? e.sort(function (e, n) {
              return t.context.sorter.compare(t.context.tree, e, n)
            }) : e
          }, t.prototype._getHeight = function () {
            return this.context.renderer.getHeight(this.context.tree,
                this.element)
          }, t.prototype._isVisible = function () {
            return this.context.filter.isVisible(this.context.tree,
                this.element)
          }, t.prototype.isDisposed = function () {
            return this._isDisposed
          }, t.prototype.dispose = function () {
            this.forEachChild(function (e) {
              return e.dispose()
            }), this.parent = null, this.previous = null, this.next = null, this.firstChild = null, this.lastChild = null;
            var t = {item: this};
            this.emit("item:dispose", t), this.registry.deregister(
                this), e.prototype.dispose.call(this), this._isDisposed = !0
          }, t
        }(s.EventEmitter);
        t.Item = h;
        var p = function (e) {
          function t(t, n, i, o, r) {
            return e.call(this, t, n, i, o, r) || this
          }

          return f(t, e), t.prototype.isVisible = function () {
            return !1
          }, t.prototype.setVisible = function (e) {
          }, t.prototype.isExpanded = function () {
            return !0
          }, t.prototype._setExpanded = function (e) {
          }, t.prototype.render = function () {
          }, t.prototype._getHeight = function () {
            return 0
          }, t.prototype._isVisible = function () {
            return !1
          }, t
        }(h), g = function () {
          function e(e, t) {
            void 0 === t && (t = !0), this.item = e, this.start = t ? e : null
          }

          return e.lastDescendantOf = function (t) {
            return t ? t instanceof p || t.isVisible() && t.isExpanded() && null
            !== t.lastChild ? e.lastDescendantOf(t.lastChild) : t : null
          }, e.prototype.current = function () {
            return this.item || null
          }, e.prototype.next = function () {
            if (this.item) {
              do {
                if ((this.item instanceof p || this.item.isVisible()
                        && this.item.isExpanded())
                    && this.item.firstChild) {
                  this.item = this.item.firstChild;
                } else if (this.item
                    === this.start) {
                  this.item = null;
                } else {
                  for (; this.item && this.item !== this.start
                  && !this.item.next;) {
                    this.item = this.item.parent;
                  }
                  this.item === this.start
                  && (this.item = null), this.item = this.item ? this.item.next
                      : null
                }
              } while (this.item && !this.item.isVisible());
            }
            return this.item || null
          }, e.prototype.previous = function () {
            if (this.item) {
              do {
                var t = e.lastDescendantOf(this.item.previous);
                t ? this.item = t : this.item.parent && this.item.parent
                !== this.start && this.item.parent.isVisible()
                    ? this.item = this.item.parent : this.item = null
              } while (this.item && !this.item.isVisible());
            }
            return this.item || null
          }, e.prototype.parent = function () {
            if (this.item) {
              var e = this.item.parent;
              e && e !== this.start && e.isVisible() ? this.item = e
                  : this.item = null
            }
            return this.item || null
          }, e.prototype.first = function () {
            return this.item = this.start, this.next(), this.item || null
          }, e.prototype.last = function () {
            return e.lastDescendantOf(this.start)
          }, e
        }();
        t.TreeNavigator = g;
        var m = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n.context = t, n.input = null, n.traitsToItems = {}, n
          }

          return f(t, e), t.prototype.setInput = function (e) {
            var t = this, n = {item: this.input};
            this.emit("clearingInput", n), this.setSelection(
                []), this.setFocus(), this.setHighlight(), this.lock = new c, this.input
            && this.input.dispose(), this.registry
            && (this.registry.dispose(), this.registryDisposable.dispose()), this.registry = new d, this.registryDisposable = o.combinedDisposable(
                [this.addEmitter(this.registry),
                  this.registry.addListener("item:dispose", function (e) {
                    e.item.getAllTraits().forEach(function (n) {
                      return delete t.traitsToItems[n][e.item.id]
                    })
                  })]);
            var i = this.context.dataSource.getId(this.context.tree, e);
            return this.input = new p(i, this.registry, this.context, this.lock,
                e), n = {item: this.input}, this.emit("setInput",
                n), this.refresh(this.input)
          }, t.prototype.getInput = function () {
            return this.input ? this.input.getElement() : null
          }, t.prototype.refresh = function (e, t) {
            var n = this;
            void 0 === e && (e = null), void 0 === t && (t = !0);
            var i = this.getItem(e);
            if (!i) {
              return a.TPromise.as(null);
            }
            var o = {item: i, recursive: t};
            return this.emit("refreshing", o), i.refresh(t).then(function () {
              n.emit("refreshed", o)
            })
          }, t.prototype.expand = function (e) {
            var t = this.getItem(e);
            return t ? t.expand() : a.TPromise.as(!1)
          }, t.prototype.expandAll = function (e) {
            if (!e) {
              e = [];
              for (var t, n = this.getNavigator(); t = n.next();) {
                e.push(t)
              }
            }
            for (var i = [], o = 0, r = e.length; o < r; o++) {
              i.push(
                  this.expand(e[o]));
            }
            return a.Promise.join(i)
          }, t.prototype.collapse = function (e, t) {
            void 0 === t && (t = !1);
            var n = this.getItem(e);
            return n ? n.collapse(t) : a.TPromise.as(!1)
          }, t.prototype.collapseAll = function (e, t) {
            void 0 === e && (e = null), void 0 === t && (t = !1), e
            || (e = [this.input], t = !0);
            for (var n = [], i = 0, o = e.length; i < o; i++) {
              n.push(
                  this.collapse(e[i], t));
            }
            return a.Promise.join(n)
          }, t.prototype.toggleExpansion = function (e) {
            return this.isExpanded(e) ? this.collapse(e) : this.expand(e)
          }, t.prototype.toggleExpansionAll = function (e) {
            for (var t = [], n = 0, i = e.length; n < i; n++) {
              t.push(
                  this.toggleExpansion(e[n]));
            }
            return a.Promise.join(t)
          }, t.prototype.isExpanded = function (e) {
            var t = this.getItem(e);
            return !!t && t.isExpanded()
          }, t.prototype.getExpandedElements = function () {
            for (var e, t = [], n = this.getNavigator();
                e = n.next();) {
              e.isExpanded() && t.push(e.getElement());
            }
            return t
          }, t.prototype.reveal = function (e, t) {
            var n = this;
            return void 0 === t && (t = null), this.resolveUnknownParentChain(
                e).then(function (e) {
              var t = a.TPromise.as(null);
              return e.forEach(function (e) {
                t = t.then(function () {
                  return n.expand(e)
                })
              }), t
            }).then(function () {
              var i = n.getItem(e);
              if (i) {
                return i.reveal(t)
              }
            })
          }, t.prototype.resolveUnknownParentChain = function (e) {
            var t = this;
            return this.context.dataSource.getParent(this.context.tree, e).then(
                function (e) {
                  return e ? t.resolveUnknownParentChain(e).then(function (t) {
                    return t.push(e), t
                  }) : a.TPromise.as([])
                })
          }, t.prototype.setHighlight = function (e, t) {
            this.setTraits("highlighted", e ? [e] : []);
            var n = {highlight: this.getHighlight(), payload: t};
            this.emit("highlight", n)
          }, t.prototype.getHighlight = function (e) {
            var t = this.getElementsWithTrait("highlighted", e);
            return 0 === t.length ? null : t[0]
          }, t.prototype.isHighlighted = function (e) {
            var t = this.getItem(e);
            return !!t && t.hasTrait("highlighted")
          }, t.prototype.select = function (e, t) {
            this.selectAll([e], t)
          }, t.prototype.selectRange = function (e, t, n) {
            var i = this.getItem(e), o = this.getItem(t);
            i && o && this.selectAll(u(i, o), n)
          }, t.prototype.deselectRange = function (e, t, n) {
            var i = this.getItem(e), o = this.getItem(t);
            i && o && this.deselectAll(u(i, o), n)
          }, t.prototype.selectAll = function (e, t) {
            this.addTraits("selected", e);
            var n = {selection: this.getSelection(), payload: t};
            this.emit("selection", n)
          }, t.prototype.deselect = function (e, t) {
            this.deselectAll([e], t)
          }, t.prototype.deselectAll = function (e, t) {
            this.removeTraits("selected", e);
            var n = {selection: this.getSelection(), payload: t};
            this.emit("selection", n)
          }, t.prototype.setSelection = function (e, t) {
            this.setTraits("selected", e);
            var n = {selection: this.getSelection(), payload: t};
            this.emit("selection", n)
          }, t.prototype.toggleSelection = function (e, t) {
            this.toggleTrait("selected", e);
            var n = {selection: this.getSelection(), payload: t};
            this.emit("selection", n)
          }, t.prototype.isSelected = function (e) {
            var t = this.getItem(e);
            return !!t && t.hasTrait("selected")
          }, t.prototype.getSelection = function (e) {
            return this.getElementsWithTrait("selected", e)
          }, t.prototype.selectNext = function (e, t, n) {
            void 0 === e && (e = 1), void 0 === t && (t = !0);
            for (var i, o = this.getSelection(),
                r = o.length > 0 ? o[0] : this.input,
                s = this.getNavigator(r, !1), a = 0; a < e && (i = s.next());
                a++) {
              r = i;
            }
            t ? this.setSelection([r], n) : this.select(r, n)
          }, t.prototype.selectPrevious = function (e, t, n) {
            void 0 === e && (e = 1), void 0 === t && (t = !0);
            var i = this.getSelection(), o = null, r = null;
            if (0 === i.length) {
              for (s = this.getNavigator(this.input); o = s.next();) {
                r = o;
              }
              o = r
            } else {
              o = i[0];
              for (var s = this.getNavigator(o, !1), a = 0;
                  a < e && (r = s.previous()); a++) {
                o = r
              }
            }
            t ? this.setSelection([o], n) : this.select(o, n)
          }, t.prototype.selectParent = function (e, t) {
            void 0 === t && (t = !0);
            var n = this.getSelection(), i = n.length > 0 ? n[0] : this.input,
                o = this.getNavigator(i, !1).parent();
            o && (t ? this.setSelection([o], e) : this.select(o, e))
          }, t.prototype.setFocus = function (e, t) {
            this.setTraits("focused", e ? [e] : []);
            var n = {focus: this.getFocus(), payload: t};
            this.emit("focus", n)
          }, t.prototype.isFocused = function (e) {
            var t = this.getItem(e);
            return !!t && t.hasTrait("focused")
          }, t.prototype.getFocus = function (e) {
            var t = this.getElementsWithTrait("focused", e);
            return 0 === t.length ? null : t[0]
          }, t.prototype.focusNext = function (e, t) {
            void 0 === e && (e = 1);
            for (var n, i = this.getFocus() || this.input,
                o = this.getNavigator(i, !1), r = 0; r < e && (n = o.next());
                r++) {
              i = n;
            }
            this.setFocus(i, t)
          }, t.prototype.focusPrevious = function (e, t) {
            void 0 === e && (e = 1);
            for (var n, i = this.getFocus() || this.input,
                o = this.getNavigator(i, !1), r = 0;
                r < e && (n = o.previous()); r++) {
              i = n;
            }
            this.setFocus(i, t)
          }, t.prototype.focusParent = function (e) {
            var t = this.getFocus() || this.input,
                n = this.getNavigator(t, !1).parent();
            n && this.setFocus(n, e)
          }, t.prototype.focusFirstChild = function (e) {
            var t = this.getItem(this.getFocus() || this.input),
                n = this.getNavigator(t, !1), i = n.next();
            n.parent() === t && this.setFocus(i, e)
          }, t.prototype.focusFirst = function (e, t) {
            this.focusNth(0, e, t)
          }, t.prototype.focusNth = function (e, t, n) {
            for (var i = this.getParent(n), o = this.getNavigator(i),
                r = o.first(), s = 0; s < e; s++) {
              r = o.next();
            }
            r && this.setFocus(r, t)
          }, t.prototype.focusLast = function (e, t) {
            var n, i = this.getParent(t);
            (n = t ? i.lastChild : this.getNavigator(i).last())
            && this.setFocus(n, e)
          }, t.prototype.getParent = function (e) {
            if (e) {
              var t = this.getItem(e);
              if (t && t.parent) {
                return t.parent
              }
            }
            return this.getItem(this.input)
          }, t.prototype.getNavigator = function (e, t) {
            return void 0 === e && (e = null), void 0 === t && (t = !0), new g(
                this.getItem(e), t)
          }, t.prototype.getItem = function (e) {
            return void 0 === e && (e = null), null === e ? this.input : e
            instanceof h ? e : "string" == typeof e ? this.registry.getItem(e)
                : this.registry.getItem(
                    this.context.dataSource.getId(this.context.tree, e))
          }, t.prototype.addTraits = function (e, t) {
            for (var n, i = this.traitsToItems[e] || {}, o = 0, r = t.length;
                o < r; o++) {
              (n = this.getItem(t[o])) && (n.addTrait(
                  e), i[n.id] = n);
            }
            this.traitsToItems[e] = i
          }, t.prototype.removeTraits = function (e, t) {
            var n, i, o = this.traitsToItems[e] || {};
            if (0 === t.length) {
              for (i in o) {
                o.hasOwnProperty(i) && (n = o[i]).removeTrait(e);
              }
              delete this.traitsToItems[e]
            } else {
              for (var r = 0, s = t.length; r < s; r++) {
                (n = this.getItem(
                    t[r])) && (n.removeTrait(e), delete o[n.id])
              }
            }
          }, t.prototype.hasTrait = function (e, t) {
            var n = this.getItem(t);
            return n && n.hasTrait(e)
          }, t.prototype.toggleTrait = function (e, t) {
            var n = this.getItem(t);
            n && (n.hasTrait(e) ? this.removeTraits(e, [t]) : this.addTraits(e,
                [t]))
          }, t.prototype.setTraits = function (e, t) {
            if (0 === t.length) {
              this.removeTraits(e, t);
            } else {
              for (var n, i = {}, o = 0, r = t.length; o < r;
                  o++) {
                (n = this.getItem(t[o])) && (i[n.id] = n);
              }
              var s, a = this.traitsToItems[e] || {}, u = [];
              for (s in a) {
                a.hasOwnProperty(s) && (i.hasOwnProperty(s)
                    ? delete i[s] : u.push(a[s]));
              }
              for (var o = 0, r = u.length; o < r; o++) {
                (n = u[o]).removeTrait(
                    e), delete a[n.id];
              }
              for (s in i) {
                i.hasOwnProperty(s) && ((n = i[s]).addTrait(
                    e), a[s] = n);
              }
              this.traitsToItems[e] = a
            }
          }, t.prototype.getElementsWithTrait = function (e, t) {
            var n, i = [], o = this.traitsToItems[e] || {};
            for (n in o) {
              o.hasOwnProperty(n) && (o[n].isVisible() || t)
              && i.push(o[n].getElement());
            }
            return i
          }, t.prototype.dispose = function () {
            this.registry
            && (this.registry.dispose(), this.registry = null), e.prototype.dispose.call(
                this)
          }, t
        }(s.EventEmitter);
        t.TreeModel = m
      }),define(d[472], h([1, 0, 38, 107]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function (e) {
      function t() {
        var t = e.call(this) || this;
        return t.heightMap = [], t.indexes = {}, t
      }

      return f(t, e), t.prototype.getTotalHeight = function () {
        var e = this.heightMap[this.heightMap.length - 1];
        return e ? e.top + e.height : 0
      }, t.prototype.onInsertItems = function (e, t) {
        void 0 === t && (t = null);
        var n, i, o, r, s, a = 0;
        if (null === t) {
          o = 0, s = 0;
        } else {
          if (o = this.indexes[t] + 1, !(i = this.heightMap[o
          - 1])) {
            return void console.error("view item doesnt exist");
          }
          s = i.top + i.height
        }
        for (var u = this.heightMap.splice.bind(this.heightMap, o, 0), l = [];
            n = e.next();) {
          (i = this.createViewItem(n)).top = s + a, this.emit(
              "viewItem:create",
              {item: i.model}), this.indexes[n.id] = o++, l.push(
              i), a += i.height;
        }
        for (u.apply(this.heightMap, l), r = o; r < this.heightMap.length;
            r++) {
          (i = this.heightMap[r]).top += a, this.indexes[i.model.id] = r;
        }
        for (r = l.length - 1; r >= 0; r--) {
          this.onInsertItem(l[r]);
        }
        for (r = this.heightMap.length - 1; r >= o; r--) {
          this.onRefreshItem(
              this.heightMap[r]);
        }
        return a
      }, t.prototype.onInsertItem = function (e) {
      }, t.prototype.onRemoveItems = function (e) {
        for (var t, n, i, o = null, r = 0; t = e.next();) {
          if (i = this.indexes[t], !(n = this.heightMap[i])) {
            return void console.error(
                "view item doesnt exist");
          }
          r -= n.height, delete this.indexes[t], this.onRemoveItem(n), null
          === o && (o = i)
        }
        if (0 !== r) {
          for (this.heightMap.splice(o, i - o + 1), i = o;
              i < this.heightMap.length;
              i++) {
            (n = this.heightMap[i]).top += r, this.indexes[n.model.id] = i, this.onRefreshItem(
                n)
          }
        }
      }, t.prototype.onRemoveItem = function (e) {
      }, t.prototype.onRefreshItemSet = function (e) {
        var t = this, n = e.sort(function (e, n) {
          return t.indexes[e.id] - t.indexes[n.id]
        });
        this.onRefreshItems(new i.ArrayIterator(n))
      }, t.prototype.onRefreshItems = function (e) {
        for (var t, n, i, o, r = null, s = 0; t = e.next();) {
          for (o = this.indexes[t.id]; 0 !== s && null !== r && r < o;
              r++) {
            (n = this.heightMap[r]).top += s, this.onRefreshItem(n);
          }
          n = this.heightMap[o], i = t.getHeight(), n.top += s, s += i
              - n.height, n.height = i, this.onRefreshItem(n, !0), r = o + 1
        }
        if (0 !== s && null !== r) {
          for (; r < this.heightMap.length;
              r++) {
            (n = this.heightMap[r]).top += s, this.onRefreshItem(n)
          }
        }
      }, t.prototype.onRefreshItem = function (e, t) {
        void 0 === t && (t = !1)
      }, t.prototype.itemsCount = function () {
        return this.heightMap.length
      }, t.prototype.itemAt = function (e) {
        return this.heightMap[this.indexAt(e)].model.id
      }, t.prototype.withItemsInRange = function (e, t, n) {
        e = this.indexAt(e), t = this.indexAt(t);
        for (var i = e; i <= t; i++) {
          n(this.heightMap[i].model.id)
        }
      }, t.prototype.indexAt = function (e) {
        for (var t, n, i = 0, o = this.heightMap.length;
            i < o;) {
          if (t = Math.floor((i + o) / 2), n = this.heightMap[t], e
          < n.top) {
            o = t;
          } else {
            if (!(e >= n.top + n.height)) {
              return t;
            }
            if (i === t) {
              break;
            }
            i = t
          }
        }
        return this.heightMap.length
      }, t.prototype.indexAfter = function (e) {
        return Math.min(this.indexAt(e) + 1, this.heightMap.length)
      }, t.prototype.itemAtIndex = function (e) {
        return this.heightMap[e]
      }, t.prototype.itemAfter = function (e) {
        return this.heightMap[this.indexes[e.model.id] + 1] || null
      }, t.prototype.createViewItem = function (e) {
        throw new Error("not implemented")
      }, t.prototype.dispose = function () {
        this.heightMap = null, this.indexes = null
      }, t
    }(n.EventEmitter);
    t.HeightMap = o
  }),define(d[473], h([1, 0, 15, 197]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function (e, t) {
      return void 0 === t && (t = !1), n.globals.MonacoEnvironment
      && n.globals.MonacoEnvironment.hasOwnProperty(e)
          ? n.globals.MonacoEnvironment[e] : t
    }("getWorkerUrl", null) || function (t, n) {
      return e.toUrl("./" + t) + "#" + n
    }, r = function () {
      function e(e, t, n, i, r) {
        this.id = t, this.worker = new Worker(
            o("workerMain.js", n)), this.postMessage(
            e), this.worker.onmessage = function (e) {
          i(e.data)
        }, "function" == typeof this.worker.addEventListener
        && this.worker.addEventListener("error", r)
      }

      return e.prototype.getId = function () {
        return this.id
      }, e.prototype.postMessage = function (e) {
        this.worker && this.worker.postMessage(e)
      }, e.prototype.dispose = function () {
        this.worker.terminate(), this.worker = null
      }, e
    }(), s = function () {
      function e(e) {
        this._label = e, this._webWorkerFailedBeforeError = !1
      }

      return e.prototype.create = function (t, n, o) {
        var s = this, a = ++e.LAST_WORKER_ID;
        if (this._webWorkerFailedBeforeError) {
          throw this._webWorkerFailedBeforeError;
        }
        return new r(t, a, this._label || "anonymous" + a, n, function (e) {
          i.logOnceWebWorkerWarning(e), s._webWorkerFailedBeforeError = e, o(e)
        })
      }, e.LAST_WORKER_ID = 0, e
    }();
    t.DefaultWorkerFactory = s
  }),define(d[484], h([5]), {}),define(d[52],
      h([1, 0, 7, 29, 3, 9, 72, 4, 484]), function (e, t, n, i, o, r, s, a) {
        "use strict";

        function u(e, t) {
          s.ok(i.isString(e), "Expected String as parameter");
          var n = document.getElementById(e);
          return n ? new x(n, t) : null
        }

        function l(e) {
          return e[b] || (e[b] = {}), e[b]
        }

        function c(e) {
          return !!e[b]
        }

        function d(e, t) {
          return e instanceof N ? new N(e) : new x(e.getHTMLElement(), t)
        }

        function h(e, t) {
          return new x(e, t)
        }

        function p() {
          return new x(null, !0)
        }

        function g(e, t, n) {
          l(e)[t] = n
        }

        function m(e, t, n) {
          if (c(e)) {
            var o = l(e)[t];
            if (!i.isUndefined(o)) {
              return o
            }
          }
          return n
        }

        function v(e, t) {
          c(e) && delete l(e)[t]
        }

        function _(e, t) {
          g(e, w, t)
        }

        function y(e) {
          v(e, w)
        }

        function C(e) {
          return m(e, w)
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.withElementById = u, t.Build = {withElementById: u};
        var b = "_msDataKey", w = "__$binding", S = function () {
          return function (e, t) {
            this.x = e, this.y = t
          }
        }();
        t.Position = S;
        var E = function () {
          return function (e, t, n, i) {
            this.top = e, this.right = t, this.bottom = n, this.left = i
          }
        }();
        t.Box = E;
        var L = function () {
          function e(e, t) {
            this.width = e, this.height = t
          }

          return e.prototype.substract = function (t) {
            return new e(this.width - t.left - t.right,
                this.height - t.top - t.bottom)
          }, e
        }();
        t.Dimension = L;
        var x = function () {
          function e(e, t) {
            this.offdom = t, this.container = e, this.currentElement = e, this.createdElements = [], this.toUnbind = {}, this.captureToUnbind = {}
          }

          return e.prototype.asContainer = function () {
            return d(this, this.offdom)
          }, e.prototype.clone = function () {
            var t = new e(this.container, this.offdom);
            return t.currentElement = this.currentElement, t.createdElements = this.createdElements, t.captureToUnbind = this.captureToUnbind, t.toUnbind = this.toUnbind, t
          }, e.prototype.and = function (t) {
            t instanceof e || t instanceof N || (t = new e(t, this.offdom));
            var n = [this];
            if (t instanceof N) {
              for (var i = 0; i < t.length; i++) {
                n.push(
                    t.item(i));
              }
            } else {
              n.push(t);
            }
            return new N(n)
          }, e.prototype.build = function (t, n) {
            s.ok(this.offdom,
                "This builder was not created off-dom, so build() can not be called."), t
                ? t instanceof e && (t = t.getHTMLElement())
                : t = this.container, s.ok(t,
                "Builder can only be build() with a container provided."), s.ok(
                a.isHTMLElement(t),
                "The container must either be a HTMLElement or a Builder.");
            var o, r, u = t, l = u.childNodes;
            if (i.isNumber(n) && n
                < l.length) {
              for (o = 0, r = this.createdElements.length; o < r;
                  o++) {
                u.insertBefore(this.createdElements[o],
                    l[n++]);
              }
            } else {
              for (o = 0, r = this.createdElements.length;
                  o < r; o++) {
                u.appendChild(this.createdElements[o]);
              }
            }
            return this
          }, e.prototype.appendTo = function (t, n) {
            t ? t instanceof e && (t = t.getHTMLElement())
                : t = this.container, s.ok(t,
                "Builder can only be build() with a container provided."), s.ok(
                a.isHTMLElement(t),
                "The container must either be a HTMLElement or a Builder.");
            var o = t;
            this.currentElement.parentNode
            && this.currentElement.parentNode.removeChild(this.currentElement);
            var r = o.childNodes;
            return i.isNumber(n) && n < r.length ? o.insertBefore(
                this.currentElement, r[n]) : o.appendChild(
                this.currentElement), this
          }, e.prototype.append = function (t, n) {
            return s.ok(t, "Need a child to append"), a.isHTMLElement(t)
            && (t = h(t)), s.ok(t instanceof e || t instanceof N,
                "Need a child to append"), t.appendTo(this, n), this
          }, e.prototype.offDOM = function () {
            return this.currentElement.parentNode
            && this.currentElement.parentNode.removeChild(
                this.currentElement), this
          }, e.prototype.getHTMLElement = function () {
            return this.currentElement
          }, e.prototype.getContainer = function () {
            return this.container
          }, e.prototype.div = function (e, t) {
            return this.doElement("div", e, t)
          }, e.prototype.p = function (e, t) {
            return this.doElement("p", e, t)
          }, e.prototype.ul = function (e, t) {
            return this.doElement("ul", e, t)
          }, e.prototype.ol = function (e, t) {
            return this.doElement("ol", e, t)
          }, e.prototype.li = function (e, t) {
            return this.doElement("li", e, t)
          }, e.prototype.span = function (e, t) {
            return this.doElement("span", e, t)
          }, e.prototype.img = function (e, t) {
            return this.doElement("img", e, t)
          }, e.prototype.a = function (e, t) {
            return this.doElement("a", e, t)
          }, e.prototype.header = function (e, t) {
            return this.doElement("header", e, t)
          }, e.prototype.section = function (e, t) {
            return this.doElement("section", e, t)
          }, e.prototype.footer = function (e, t) {
            return this.doElement("footer", e, t)
          }, e.prototype.element = function (e, t, n) {
            return this.doElement(e, t, n)
          }, e.prototype.doElement = function (t, n, o) {
            var r = document.createElement(t);
            if (this.currentElement = r, this.offdom
            && this.createdElements.push(r), i.isObject(n) && this.attr(
                n), i.isFunction(n) && (o = n), i.isFunction(o)) {
              var s = new e(r);
              o.call(s, s)
            }
            return this.offdom || this.container.appendChild(r), this
          }, e.prototype.domFocus = function () {
            return this.currentElement.focus(), this
          }, e.prototype.hasFocus = function () {
            return document.activeElement === this.currentElement
          }, e.prototype.domSelect = function (e) {
            void 0 === e && (e = null);
            var t = this.currentElement;
            return t.select(), e && t.setSelectionRange(e.start, e.end), this
          }, e.prototype.domBlur = function () {
            return this.currentElement.blur(), this
          }, e.prototype.domClick = function () {
            return this.currentElement.click(), this
          }, e.prototype.on = function (e, t, n, o) {
            var r = this;
            if (i.isArray(e)) {
              e.forEach(function (e) {
                r.on(e, t, n, o)
              });
            } else {
              var s = e, u = a.addDisposableListener(this.currentElement, s,
                  function (e) {
                    t(e, r, u)
                  }, o || !1);
              o ? (this.captureToUnbind[s]
              || (this.captureToUnbind[s] = []), this.captureToUnbind[s].push(
                  u)) : (this.toUnbind[s]
              || (this.toUnbind[s] = []), this.toUnbind[s].push(u));
              var l = this.getProperty("__$listeners", []);
              l.push(u), this.setProperty("__$listeners", l), n && i.isArray(n)
              && n.push(u)
            }
            return this
          }, e.prototype.off = function (e, t) {
            var n = this;
            if (i.isArray(e)) {
              e.forEach(function (e) {
                n.off(e)
              });
            } else {
              var r = e;
              t ? this.captureToUnbind[r]
                  && (this.captureToUnbind[r] = o.dispose(
                      this.captureToUnbind[r])) : this.toUnbind[r]
                  && (this.toUnbind[r] = o.dispose(this.toUnbind[r]))
            }
            return this
          }, e.prototype.once = function (e, t, n, o) {
            var r = this;
            if (i.isArray(e)) {
              e.forEach(function (e) {
                r.once(e, t)
              });
            } else {
              var s = e, u = a.addDisposableListener(this.currentElement, s,
                  function (e) {
                    t(e, r, u), u.dispose()
                  }, o || !1);
              n && i.isArray(n) && n.push(u)
            }
            return this
          }, e.prototype.preventDefault = function (e, t, n, i) {
            return this.on(e, function (e) {
              e.preventDefault(), t && (e.stopPropagation ? e.stopPropagation()
                  : e.cancelBubble = !0)
            }, n, i)
          }, e.prototype.attr = function (e, t) {
            if (i.isObject(e)) {
              for (var n in e) {
                if (e.hasOwnProperty(n)) {
                  var o = e[n];
                  this.doSetAttr(n, o)
                }
              }
              return this
            }
            return i.isString(e) && !i.isString(t)
                ? this.currentElement.getAttribute(e) : (i.isString(e)
                && (i.isString(t) || (t = String(t)), this.doSetAttr(e,
                    t)), this)
          }, e.prototype.doSetAttr = function (e, t) {
            "class" === e && (e = "addClass"), this[e] ? i.isArray(t)
                    ? this[e].apply(this, t) : this[e].call(this, t)
                : this.currentElement.setAttribute(e, t)
          }, e.prototype.removeAttribute = function (e) {
            this.currentElement.removeAttribute(e)
          }, e.prototype.id = function (e) {
            return this.currentElement.setAttribute("id", e), this
          }, e.prototype.src = function (e) {
            return this.currentElement.setAttribute("src", e), this
          }, e.prototype.href = function (e) {
            return this.currentElement.setAttribute("href", e), this
          }, e.prototype.title = function (e) {
            return this.currentElement.setAttribute("title", e), this
          }, e.prototype.name = function (e) {
            return this.currentElement.setAttribute("name", e), this
          }, e.prototype.type = function (e) {
            return this.currentElement.setAttribute("type", e), this
          }, e.prototype.value = function (e) {
            return this.currentElement.setAttribute("value", e), this
          }, e.prototype.alt = function (e) {
            return this.currentElement.setAttribute("alt", e), this
          }, e.prototype.draggable = function (e) {
            return this.currentElement.setAttribute("draggable",
                e ? "true" : "false"), this
          }, e.prototype.tabindex = function (e) {
            return this.currentElement.setAttribute("tabindex",
                e.toString()), this
          }, e.prototype.style = function (e, t) {
            if (i.isObject(e)) {
              for (var n in e) {
                if (e.hasOwnProperty(n)) {
                  var o = e[n];
                  this.doSetStyle(n, o)
                }
              }
              return this
            }
            var r = i.isString(e);
            return r && i.isUndefined(t)
                ? this.currentElement.style[this.cssKeyToJavaScriptProperty(e)]
                : (r && this.doSetStyle(e, t), this)
          }, e.prototype.doSetStyle = function (e, t) {
            if (e.indexOf("-") >= 0) {
              var n = e.split("-");
              e = n[0];
              for (var i = 1; i < n.length; i++) {
                var o = n[i];
                e = e + o.charAt(0).toUpperCase() + o.substr(1)
              }
            }
            this.currentElement.style[this.cssKeyToJavaScriptProperty(e)] = t
          }, e.prototype.cssKeyToJavaScriptProperty = function (e) {
            if (e.indexOf("-") >= 0) {
              var t = e.split("-");
              e = t[0];
              for (var n = 1; n < t.length; n++) {
                var i = t[n];
                e = e + i.charAt(0).toUpperCase() + i.substr(1)
              }
            } else {
              "float" === e && (e = "cssFloat");
            }
            return e
          }, e.prototype.getComputedStyle = function () {
            return a.getComputedStyle(this.currentElement)
          }, e.prototype.addClass = function () {
            for (var e = this, t = [], n = 0; n < arguments.length;
                n++) {
              t[n] = arguments[n];
            }
            return t.forEach(function (t) {
              t.split(" ").forEach(function (t) {
                a.addClass(e.currentElement, t)
              })
            }), this
          }, e.prototype.setClass = function (e, t) {
            return void 0 === t && (t = null), null === t
                ? this.currentElement.className = e : t ? this.addClass(e)
                    : this.removeClass(e), this
          }, e.prototype.hasClass = function (e) {
            return a.hasClass(this.currentElement, e)
          }, e.prototype.removeClass = function () {
            for (var e = this, t = [], n = 0; n < arguments.length;
                n++) {
              t[n] = arguments[n];
            }
            return t.forEach(function (t) {
              t.split(" ").forEach(function (t) {
                a.removeClass(e.currentElement, t)
              })
            }), this
          }, e.prototype.swapClass = function (e, t) {
            return this.hasClass(e) ? (this.removeClass(e), this.addClass(t))
                : (this.removeClass(t), this.addClass(e)), this
          }, e.prototype.toggleClass = function (e) {
            return this.hasClass(e) ? this.removeClass(e) : this.addClass(
                e), this
          }, e.prototype.color = function (e) {
            return this.currentElement.style.color = e, this
          }, e.prototype.background = function (e) {
            return this.currentElement.style.backgroundColor = e, this
          }, e.prototype.padding = function (e, t, n, o) {
            return i.isString(e) && e.indexOf(" ") >= 0 ? this.padding.apply(
                this, e.split(" ")) : (i.isUndefinedOrNull(e)
            || (this.currentElement.style.paddingTop = this.toPixel(
                e)), i.isUndefinedOrNull(t)
            || (this.currentElement.style.paddingRight = this.toPixel(
                t)), i.isUndefinedOrNull(n)
            || (this.currentElement.style.paddingBottom = this.toPixel(
                n)), i.isUndefinedOrNull(o)
            || (this.currentElement.style.paddingLeft = this.toPixel(o)), this)
          }, e.prototype.margin = function (e, t, n, o) {
            return i.isString(e) && e.indexOf(" ") >= 0 ? this.margin.apply(
                this, e.split(" ")) : (i.isUndefinedOrNull(e)
            || (this.currentElement.style.marginTop = this.toPixel(
                e)), i.isUndefinedOrNull(t)
            || (this.currentElement.style.marginRight = this.toPixel(
                t)), i.isUndefinedOrNull(n)
            || (this.currentElement.style.marginBottom = this.toPixel(
                n)), i.isUndefinedOrNull(o)
            || (this.currentElement.style.marginLeft = this.toPixel(o)), this)
          }, e.prototype.position = function (e, t, n, o, r) {
            return i.isString(e) && e.indexOf(" ") >= 0 ? this.position.apply(
                this, e.split(" ")) : (i.isUndefinedOrNull(e)
            || (this.currentElement.style.top = this.toPixel(
                e)), i.isUndefinedOrNull(t)
            || (this.currentElement.style.right = this.toPixel(
                t)), i.isUndefinedOrNull(n)
            || (this.currentElement.style.bottom = this.toPixel(
                n)), i.isUndefinedOrNull(o)
            || (this.currentElement.style.left = this.toPixel(o)), r
            || (r = "absolute"), this.currentElement.style.position = r, this)
          }, e.prototype.size = function (e, t) {
            return i.isString(e) && e.indexOf(" ") >= 0 ? this.size.apply(this,
                e.split(" ")) : (i.isUndefinedOrNull(e)
            || (this.currentElement.style.width = this.toPixel(
                e)), i.isUndefinedOrNull(t)
            || (this.currentElement.style.height = this.toPixel(t)), this)
          }, e.prototype.minSize = function (e, t) {
            return i.isString(e) && e.indexOf(" ") >= 0 ? this.minSize.apply(
                this, e.split(" ")) : (i.isUndefinedOrNull(e)
            || (this.currentElement.style.minWidth = this.toPixel(
                e)), i.isUndefinedOrNull(t)
            || (this.currentElement.style.minHeight = this.toPixel(t)), this)
          }, e.prototype.maxSize = function (e, t) {
            return i.isString(e) && e.indexOf(" ") >= 0 ? this.maxSize.apply(
                this, e.split(" ")) : (i.isUndefinedOrNull(e)
            || (this.currentElement.style.maxWidth = this.toPixel(
                e)), i.isUndefinedOrNull(t)
            || (this.currentElement.style.maxHeight = this.toPixel(t)), this)
          }, e.prototype.float = function (e) {
            return this.currentElement.style.cssFloat = e, this
          }, e.prototype.clear = function (e) {
            return this.currentElement.style.clear = e, this
          }, e.prototype.normal = function () {
            return this.currentElement.style.fontStyle = "normal", this.currentElement.style.fontWeight = "normal", this.currentElement.style.textDecoration = "none", this
          }, e.prototype.italic = function () {
            return this.currentElement.style.fontStyle = "italic", this
          }, e.prototype.bold = function () {
            return this.currentElement.style.fontWeight = "bold", this
          }, e.prototype.underline = function () {
            return this.currentElement.style.textDecoration = "underline", this
          }, e.prototype.overflow = function (e) {
            return this.currentElement.style.overflow = e, this
          }, e.prototype.display = function (e) {
            return this.currentElement.style.display = e, this
          }, e.prototype.disable = function () {
            return this.currentElement.setAttribute("disabled",
                "disabled"), this
          }, e.prototype.enable = function () {
            return this.currentElement.removeAttribute("disabled"), this
          }, e.prototype.show = function () {
            return this.hasClass("builder-hidden") && this.removeClass(
                "builder-hidden"), this.attr("aria-hidden",
                "false"), this.cancelVisibilityPromise(), this
          }, e.prototype.showDelayed = function (e) {
            var t = this;
            this.cancelVisibilityPromise();
            var i = n.TPromise.timeout(e);
            return this.setProperty("__$visibility", i), i.done(function () {
              t.removeProperty("__$visibility"), t.show()
            }), this
          }, e.prototype.hide = function () {
            return this.hasClass("builder-hidden") || this.addClass(
                "builder-hidden"), this.attr("aria-hidden",
                "true"), this.cancelVisibilityPromise(), this
          }, e.prototype.isHidden = function () {
            return this.hasClass("builder-hidden") || "none"
                === this.currentElement.style.display
          }, e.prototype.toggleVisibility = function () {
            return this.cancelVisibilityPromise(), this.swapClass(
                "builder-visible", "builder-hidden"), this.isHidden()
                ? this.attr("aria-hidden", "true") : this.attr("aria-hidden",
                    "false"), this
          }, e.prototype.cancelVisibilityPromise = function () {
            var e = this.getProperty("__$visibility");
            e && (e.cancel(), this.removeProperty("__$visibility"))
          }, e.prototype.border = function (e, t, n) {
            return i.isString(e) && e.indexOf(" ") >= 0 ? this.border.apply(
                    this, e.split(" "))
                : (this.currentElement.style.borderWidth = this.toPixel(e), n
                && (this.currentElement.style.borderColor = n), t
                && (this.currentElement.style.borderStyle = t), this)
          }, e.prototype.borderTop = function (e, t, n) {
            return i.isString(e) && e.indexOf(" ") >= 0 ? this.borderTop.apply(
                    this, e.split(" "))
                : (this.currentElement.style.borderTopWidth = this.toPixel(e), n
                && (this.currentElement.style.borderTopColor = n), t
                && (this.currentElement.style.borderTopStyle = t), this)
          }, e.prototype.borderBottom = function (e, t, n) {
            return i.isString(e) && e.indexOf(" ") >= 0
                ? this.borderBottom.apply(this, e.split(" "))
                : (this.currentElement.style.borderBottomWidth = this.toPixel(
                    e), n
                && (this.currentElement.style.borderBottomColor = n), t
                && (this.currentElement.style.borderBottomStyle = t), this)
          }, e.prototype.borderLeft = function (e, t, n) {
            return i.isString(e) && e.indexOf(" ") >= 0 ? this.borderLeft.apply(
                    this, e.split(" "))
                : (this.currentElement.style.borderLeftWidth = this.toPixel(
                    e), n && (this.currentElement.style.borderLeftColor = n), t
                && (this.currentElement.style.borderLeftStyle = t), this)
          }, e.prototype.borderRight = function (e, t, n) {
            return i.isString(e) && e.indexOf(" ") >= 0
                ? this.borderRight.apply(this, e.split(" "))
                : (this.currentElement.style.borderRightWidth = this.toPixel(
                    e), n && (this.currentElement.style.borderRightColor = n), t
                && (this.currentElement.style.borderRightStyle = t), this)
          }, e.prototype.textAlign = function (e) {
            return this.currentElement.style.textAlign = e, this
          }, e.prototype.verticalAlign = function (e) {
            return this.currentElement.style.verticalAlign = e, this
          }, e.prototype.toPixel = function (e) {
            return -1 === e.toString().indexOf("px") ? e.toString() + "px" : e
          }, e.prototype.innerHtml = function (e, t) {
            return t ? this.currentElement.innerHTML += e
                : this.currentElement.innerHTML = e, this
          }, e.prototype.text = function (e, t) {
            return t ? 0 === this.currentElement.children.length
                    ? this.currentElement.textContent += e
                    : this.currentElement.appendChild(document.createTextNode(e))
                : this.currentElement.textContent = e, this
          }, e.prototype.safeInnerHtml = function (e, t) {
            return this.innerHtml(r.escape(e), t)
          }, e.prototype.bind = function (e) {
            return _(this.currentElement, e), this
          }, e.prototype.unbind = function () {
            return y(this.currentElement), this
          }, e.prototype.getBinding = function () {
            return C(this.currentElement)
          }, e.prototype.setProperty = function (e, t) {
            return g(this.currentElement, e, t), this
          }, e.prototype.getProperty = function (e, t) {
            return m(this.currentElement, e, t)
          }, e.prototype.removeProperty = function (e) {
            return c(this.currentElement) && delete l(
                this.currentElement)[e], this
          }, e.prototype.parent = function (e) {
            return s.ok(!this.offdom,
                "Builder was created with offdom = true and thus has no parent set"), h(
                this.currentElement.parentNode, e)
          }, e.prototype.children = function (e) {
            for (var t = this.currentElement.children, n = [], i = 0;
                i < t.length; i++) {
              n.push(h(t.item(i), e));
            }
            return new N(n)
          }, e.prototype.child = function (e) {
            return void 0 === e && (e = 0), h(
                this.currentElement.children.item(e))
          }, e.prototype.removeChild = function (e) {
            return this.currentElement === e.parent().getHTMLElement()
            && this.currentElement.removeChild(e.getHTMLElement()), this
          }, e.prototype.select = function (e, t) {
            s.ok(i.isString(e), "Expected String as parameter");
            for (var n = this.currentElement.querySelectorAll(e), o = [], r = 0;
                r < n.length; r++) {
              o.push(h(n.item(r), t));
            }
            return new N(o)
          }, e.prototype.matches = function (e) {
            var t = this.currentElement,
                n = t.webkitMatchesSelector || t.mozMatchesSelector
                    || t.msMatchesSelector || t.oMatchesSelector;
            return n && n.call(t, e)
          },e.prototype.isEmpty = function () {
            return !this.currentElement.childNodes || 0
                === this.currentElement.childNodes.length
          },e.prototype.unbindDescendants = function (e) {
            if (e && e.children) {
              for (var t = 0, n = e.children.length; t < n;
                  t++) {
                var o = e.children.item(t);
                if (c(o)) {
                  var r = l(o).__$listeners;
                  if (i.isArray(r)) {
                    for (; r.length;) {
                      r.pop().dispose();
                    }
                  }
                  delete o[b]
                }
                this.unbindDescendants(o)
              }
            }
          },e.prototype.empty = function () {
            return this.unbindDescendants(
                this.currentElement), this.clearChildren(), this.offdom
            && (this.createdElements = []), this
          },e.prototype.clearChildren = function () {
            return this.currentElement && a.clearNode(this.currentElement), this
          },e.prototype.destroy = function () {
            if (this.currentElement && (this.currentElement.parentNode
            && this.currentElement.parentNode.removeChild(
                this.currentElement), this.empty(), c(this.currentElement))) {
              var e = l(this.currentElement).__$listeners;
              if (i.isArray(e)) {
                for (; e.length;) {
                  e.pop().dispose();
                }
              }
              delete this.currentElement[b]
            }
            var t;
            for (t in this.toUnbind) {
              this.toUnbind.hasOwnProperty(t)
              && i.isArray(this.toUnbind[t]) && (this.toUnbind[t] = o.dispose(
                  this.toUnbind[t]));
            }
            for (t in this.captureToUnbind) {
              this.captureToUnbind.hasOwnProperty(
                  t) && i.isArray(this.captureToUnbind[t])
              && (this.captureToUnbind[t] = o.dispose(this.captureToUnbind[t]));
            }
            this.currentElement = null, this.container = null, this.offdom = null, this.createdElements = null, this.captureToUnbind = null, this.toUnbind = null
          },e.prototype.dispose = function () {
            this.destroy()
          },e.prototype.getTotalSize = function () {
            var e = a.getTotalWidth(this.currentElement),
                t = a.getTotalHeight(this.currentElement);
            return new L(e, t)
          },e.prototype.getContentSize = function () {
            var e = a.getContentWidth(this.currentElement),
                t = a.getContentHeight(this.currentElement);
            return new L(e, t)
          },e.prototype.getClientArea = function () {
            if (this.currentElement !== document.body) {
              return new L(
                  this.currentElement.clientWidth,
                  this.currentElement.clientHeight);
            }
            if (window.innerWidth && window.innerHeight) {
              return new L(
                  window.innerWidth, window.innerHeight);
            }
            if (document.body && document.body.clientWidth
                && document.body.clientWidth) {
              return new L(
                  document.body.clientWidth, document.body.clientHeight);
            }
            if (document.documentElement && document.documentElement.clientWidth
                && document.documentElement.clientHeight) {
              return new L(
                  document.documentElement.clientWidth,
                  document.documentElement.clientHeight);
            }
            throw new Error("Unable to figure out browser width and height")
          },e
        }();
        t.Builder = x;
        var N = function (e) {
          function t(n) {
            var o = this;
            if (s.ok(i.isArray(n) || n instanceof t,
                "Expected Array or MultiBuilder as parameter"), o = e.call(this)
                || this, o.length = 0, o.builders = [], i.isArray(
                n)) {
              for (r = 0; r < n.length; r++) {
                n[r] instanceof HTMLElement
                    ? o.push(h(n[r])) : o.push(n[r]);
              }
            } else {
              for (var r = 0;
                  r < n.length; r++) {
                o.push(n.item(r));
              }
            }
            var a = o;
            for (var u in x.prototype) {
              "clone" !== u && "and" !== u
              && x.prototype.hasOwnProperty(u) && i.isFunction(x.prototype[u])
              && function (e) {
                a[e] = function () {
                  for (var n, o = Array.prototype.slice.call(arguments), r = !1,
                      s = 0; s < a.length; s++) {
                    var u = a.item(s)[e].apply(a.item(s), o);
                    if (u instanceof t) {
                      n || (n = []), r = !0;
                      for (var l = 0; l < u.length; l++) {
                        n.push(u.item(l))
                      }
                    } else {
                      i.isUndefined(u) || u instanceof x || (n
                      || (n = []), n.push(u))
                    }
                  }
                  return n && r ? new t(n) : n || a
                }
              }(u);
            }
            return o
          }

          return f(t, e), t.prototype.item = function (e) {
            return this.builders[e]
          }, t.prototype.push = function () {
            for (var e = [], t = 0; t < arguments.length;
                t++) {
              e[t] = arguments[t];
            }
            for (var n = 0; n < e.length; n++) {
              this.builders.push(e[n]);
            }
            this.length = this.builders.length
          }, t.prototype.pop = function () {
            var e = this.builders.pop();
            return this.length = this.builders.length, e
          }, t.prototype.concat = function (e) {
            var t = this.builders.concat(e);
            return this.length = this.builders.length, t
          }, t.prototype.shift = function () {
            var e = this.builders.shift();
            return this.length = this.builders.length, e
          }, t.prototype.unshift = function (e) {
            var t = this.builders.unshift(e);
            return this.length = this.builders.length, t
          }, t.prototype.slice = function (e, t) {
            var n = this.builders.slice(e, t);
            return this.length = this.builders.length, n
          }, t.prototype.splice = function (e, t) {
            var n = this.builders.splice(e, t);
            return this.length = this.builders.length, n
          }, t.prototype.clone = function () {
            return new t(this)
          }, t.prototype.and = function (e) {
            e instanceof x || e instanceof t || (e = new x(e));
            var n = [];
            if (e instanceof t) {
              for (var i = 0; i < e.length; i++) {
                n.push(
                    e.item(i));
              }
            } else {
              n.push(e);
            }
            return this.push.apply(this, n), this
          }, t
        }(x);
        t.MultiBuilder = N, t.setPropertyOnElement = g, t.getPropertyFromElement = m, t.removePropertyFromElement = v, t.bindElement = _, t.unbindElement = y, t.getBindingFromElement = C, t.Binding = {
          setPropertyOnElement: g,
          getPropertyFromElement: m,
          removePropertyFromElement: v,
          bindElement: _,
          unbindElement: y,
          getBindingFromElement: C
        };
        var M = /([\w\-]+)?(#([\w\-]+))?((.([\w\-]+))*)/;
        t.$ = function (e) {
          if (i.isUndefined(e)) {
            return p();
          }
          if (!e) {
            throw new Error("Bad use of $");
          }
          if (a.isHTMLElement(e) || e === window) {
            return h(e);
          }
          if (i.isArray(e)) {
            return new N(e);
          }
          if (e instanceof x) {
            return d(e);
          }
          if (i.isString(e)) {
            if ("<" === e[0]) {
              var t = void 0, n = document.createElement("div");
              if (n.innerHTML = r.format.apply(r, arguments), 0
              === n.children.length) {
                throw new Error("Bad use of $");
              }
              if (1
                  === n.children.length) {
                return t = n.firstChild, n.removeChild(
                    t), h(t);
              }
              for (var o = []; n.firstChild;) {
                t = n.firstChild, n.removeChild(
                    t), o.push(h(t));
              }
              return new N(o)
            }
            if (1 === arguments.length) {
              var s = M.exec(e);
              if (!s) {
                throw new Error("Bad use of $");
              }
              var u = s[1] || "div", l = s[3] || void 0,
                  c = (s[4] || "").replace(/\./g, " "), f = {};
              return l && (f.id = l), c && (f.class = c), p().element(u, f)
            }
            var g = p();
            return g.element.apply(g, arguments), g
          }
          throw new Error("Bad use of $")
        }, t.$.Box = E, t.$.Dimension = L, t.$.Position = S, t.$.Builder = x, t.$.MultiBuilder = N, t.$.Build = t.Build, t.$.Binding = t.Binding
      }),define(d[496], h([5]), {}),define(d[500], h([5]), {}),define(d[505],
      h([5]), {}),define(d[506], h([1, 0, 4, 26, 41, 32, 505]),
      function (e, t, n, i, o, r) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var s = {inputActiveOptionBorder: r.Color.fromHex("#007ACC")},
            a = function (e) {
              function t(t) {
                var n = e.call(this) || this;
                return n._opts = i.clone(t), i.mixin(n._opts, s,
                    !1), n._checked = n._opts.isChecked, n.domNode = document.createElement(
                    "div"), n.domNode.title = n._opts.title, n.domNode.className = n._className(), n.domNode.tabIndex = 0, n.domNode.setAttribute(
                    "role", "checkbox"), n.domNode.setAttribute("aria-checked",
                    String(n._checked)), n.domNode.setAttribute("aria-label",
                    n._opts.title), n.applyStyles(), n.onclick(n.domNode,
                    function (e) {
                      n.checked = !n._checked, n._opts.onChange(
                          !1), e.preventDefault()
                    }), n.onkeydown(n.domNode, function (e) {
                  if (10 === e.keyCode || 3
                      === e.keyCode) {
                    return n.checked = !n._checked, n._opts.onChange(
                        !0), void e.preventDefault();
                  }
                  n._opts.onKeyDown && n._opts.onKeyDown(e)
                }), n
              }

              return f(t, e), t.prototype.focus = function () {
                this.domNode.focus()
              }, Object.defineProperty(t.prototype, "checked", {
                get: function () {
                  return this._checked
                }, set: function (e) {
                  this._checked = e, this.domNode.setAttribute("aria-checked",
                      String(
                          this._checked)), this.domNode.className = this._className(), this.applyStyles()
                }, enumerable: !0, configurable: !0
              }), t.prototype._className = function () {
                return "custom-checkbox " + this._opts.actionClassName + " "
                    + (this._checked ? "checked" : "unchecked")
              }, t.prototype.width = function () {
                return 22
              }, t.prototype.style = function (e) {
                e.inputActiveOptionBorder
                && (this._opts.inputActiveOptionBorder = e.inputActiveOptionBorder), this.applyStyles()
              }, t.prototype.applyStyles = function () {
                this.domNode && (this.domNode.style.borderColor = this._checked
                && this._opts.inputActiveOptionBorder
                    ? this._opts.inputActiveOptionBorder.toString()
                    : "transparent")
              }, t.prototype.enable = function () {
                this.domNode.tabIndex = 0, this.domNode.setAttribute(
                    "aria-disabled", String(!1))
              }, t.prototype.disable = function () {
                n.removeTabIndexAndUpdateFocus(
                    this.domNode), this.domNode.setAttribute("aria-disabled",
                    String(!0))
              }, t
            }(o.Widget);
        t.Checkbox = a
      }),define(d[510], h([5]), {}),define(d[160], h([1, 0, 52, 4, 3, 38, 510]),
      function (e, t, n, i, o, r) {
        "use strict";

        function s(e, t, n, i, o) {
          var r = function (e, t, n, i) {
            return t ? e : i ? n : e
          }, s = function (e, t, n, i, o) {
            return o ? r(e, t, n, i) : r(n, i, e, t)
          };
          return {
            top: function () {
              var o = t.top - e.height, r = t.top + t.height,
                  a = o >= n.top && o + e.height <= n.top + n.height,
                  l = r >= n.top && r + e.height <= n.top + n.height;
              return s(o, a, r, l, i === u.ABOVE)
            }(), left: function () {
              var i = t.left, r = t.left + t.width - e.width,
                  u = i >= n.left && i + e.width <= n.left + n.width,
                  l = r >= n.left && r + e.width <= n.left + n.width;
              return s(i, u, r, l, o === a.LEFT)
            }()
          }
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var a;
        !function (e) {
          e[e.LEFT = 0] = "LEFT", e[e.RIGHT = 1] = "RIGHT"
        }(a = t.AnchorAlignment || (t.AnchorAlignment = {}));
        var u;
        !function (e) {
          e[e.BELOW = 0] = "BELOW", e[e.ABOVE = 1] = "ABOVE"
        }(u = t.AnchorPosition || (t.AnchorPosition = {}));
        var l = function (e) {
          function t(t) {
            var i = e.call(this) || this;
            return i.$view = n.$(".context-view").hide(), i.setContainer(
                t), i.toDispose = [{
              dispose: function () {
                i.setContainer(null)
              }
            }], i.toDisposeOnClean = null, i
          }

          return f(t, e), t.prototype.setContainer = function (e) {
            var i = this;
            this.$container && (this.$container.off(
                t.BUBBLE_UP_EVENTS), this.$container.off(t.BUBBLE_DOWN_EVENTS,
                !0), this.$container = null), e && (this.$container = n.$(
                e), this.$view.appendTo(this.$container), this.$container.on(
                t.BUBBLE_UP_EVENTS, function (e) {
                  i.onDOMEvent(e, document.activeElement, !1)
                }), this.$container.on(t.BUBBLE_DOWN_EVENTS, function (e) {
              i.onDOMEvent(e, document.activeElement, !0)
            }, null, !0))
          }, t.prototype.show = function (e) {
            this.isVisible() && this.hide(), this.$view.setClass(
                "context-view").empty().style({
              top: "0px",
              left: "0px"
            }).show(), this.toDisposeOnClean = e.render(
                this.$view.getHTMLElement()), this.delegate = e, this.doLayout()
          }, t.prototype.layout = function () {
            this.isVisible() && (!1 !== this.delegate.canRelayout
                ? (this.delegate.layout
                && this.delegate.layout(), this.doLayout()) : this.hide())
          }, t.prototype.doLayout = function () {
            var e, t = this.delegate.getAnchor();
            if (i.isHTMLElement(t)) {
              var n = i.getDomNodePagePosition(t);
              e = {top: n.top, left: n.left, width: n.width, height: n.height}
            } else {
              var o = t;
              e = {
                top: o.y,
                left: o.x,
                width: o.width || 0,
                height: o.height || 0
              }
            }
            var r = {
                  top: i.StandardWindow.scrollY,
                  left: i.StandardWindow.scrollX,
                  height: window.innerHeight,
                  width: window.innerWidth
                }, l = this.$view.getTotalSize(),
                c = {width: l.width, height: l.height},
                d = this.delegate.anchorPosition || u.BELOW,
                h = this.delegate.anchorAlignment || a.LEFT,
                p = s(c, e, r, d, h),
                f = i.getDomNodePagePosition(this.$container.getHTMLElement());
            p.top -= f.top, p.left -= f.left, this.$view.removeClass("top",
                "bottom", "left", "right"), this.$view.addClass(
                d === u.BELOW ? "bottom" : "top"), this.$view.addClass(
                h === a.LEFT ? "left" : "right"), this.$view.style(
                {top: p.top + "px", left: p.left + "px", width: "initial"})
          }, t.prototype.hide = function (e) {
            this.delegate && this.delegate.onHide && this.delegate.onHide(
                e), this.delegate = null, this.toDisposeOnClean
            && (this.toDisposeOnClean.dispose(), this.toDisposeOnClean = null), this.$view.hide()
          }, t.prototype.isVisible = function () {
            return !!this.delegate
          }, t.prototype.onDOMEvent = function (e, t, n) {
            this.delegate && (this.delegate.onDOMEvent
                ? this.delegate.onDOMEvent(e, document.activeElement) : n
                && !i.isAncestor(e.target, this.$container.getHTMLElement())
                && this.hide())
          }, t.prototype.dispose = function () {
            e.prototype.dispose.call(
                this), this.hide(), this.toDispose = o.dispose(this.toDispose)
          }, t.BUBBLE_UP_EVENTS = ["click", "keydown", "focus",
            "blur"], t.BUBBLE_DOWN_EVENTS = ["click"], t
        }(r.EventEmitter);
        t.ContextView = l
      }),define(d[201], h([5]), {}),define(d[204], h([1, 0, 4, 9, 32, 26, 201]),
      function (e, t, n, i, o, r) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var s = {
          badgeBackground: o.Color.fromHex("#4D4D4D"),
          badgeForeground: o.Color.fromHex("#FFFFFF")
        }, a = function () {
          function e(e, t) {
            this.options = t || Object.create(null), r.mixin(this.options, s,
                !1), this.badgeBackground = this.options.badgeBackground, this.badgeForeground = this.options.badgeForeground, this.badgeBorder = this.options.badgeBorder, this.element = n.append(
                e,
                n.$(".monaco-count-badge")), this.titleFormat = this.options.titleFormat
                || "", this.setCount(this.options.count || 0)
          }

          return e.prototype.setCount = function (e) {
            this.count = e, this.render()
          }, e.prototype.setTitleFormat = function (e) {
            this.titleFormat = e, this.render()
          }, e.prototype.render = function () {
            this.element.textContent = ""
                + this.count, this.element.title = i.format(this.titleFormat,
                this.count), this.applyStyles()
          }, e.prototype.style = function (e) {
            this.badgeBackground = e.badgeBackground, this.badgeForeground = e.badgeForeground, this.badgeBorder = e.badgeBorder, this.applyStyles()
          }, e.prototype.applyStyles = function () {
            if (this.element) {
              var e = this.badgeBackground ? this.badgeBackground.toString()
                      : null,
                  t = this.badgeForeground ? this.badgeForeground.toString()
                      : null,
                  n = this.badgeBorder ? this.badgeBorder.toString() : null;
              this.element.style.backgroundColor = e, this.element.style.color = t, this.element.style.borderWidth = n
                  ? "1px" : null, this.element.style.borderStyle = n ? "solid"
                  : null, this.element.style.borderColor = n
            }
          }, e
        }();
        t.CountBadge = a
      }),define(d[205], h([5]), {}),define(d[206], h([5]), {}),define(d[208],
      h([5]), {}),define(d[162], h([1, 0, 4, 110, 45, 174, 208]),
      function (e, t, n, i, o, r) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var s = function () {
          function e(e, t) {
            this.domNode = n.append(e, n.$(".monaco-icon-label")), t
            && t.supportHighlights ? this.labelNode = new i.HighlightedLabel(
                    n.append(this.domNode, n.$("a.label-name")))
                : this.labelNode = n.append(this.domNode,
                    n.$("a.label-name")), this.descriptionNode = n.append(
                this.domNode, n.$("span.label-description"))
          }

          return Object.defineProperty(e.prototype, "element", {
            get: function () {
              return this.domNode
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "labelElement", {
            get: function () {
              var e = this.labelNode;
              return e instanceof i.HighlightedLabel ? e.element : e
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "descriptionElement", {
            get: function () {
              return this.descriptionNode
            }, enumerable: !0, configurable: !0
          }), e.prototype.setValue = function (e, t, o) {
            var r = this.labelNode;
            r instanceof i.HighlightedLabel ? r.set(e || "",
                o ? o.matches : void 0) : r.textContent = e
                || "", this.descriptionNode.textContent = t || "", t
                ? n.removeClass(this.descriptionNode, "empty") : n.addClass(
                    this.descriptionNode, "empty"), this.domNode.title = o
            && o.title ? o.title : "";
            var s = ["monaco-icon-label"];
            o && (o.extraClasses && s.push.apply(s, o.extraClasses), o.italic
            && s.push("italic")), this.domNode.className = s.join(" ")
          }, e.prototype.dispose = function () {
            var e = this.labelNode;
            e instanceof i.HighlightedLabel && e.dispose()
          }, e
        }();
        t.IconLabel = s;
        var a = function (e) {
          function t(t, n, i, o) {
            var r = e.call(this, t) || this;
            return r.setFile(n, i, o), r
          }

          return f(t, e), t.prototype.setFile = function (e, t, n) {
            var i = o.dirname(e.fsPath);
            this.setValue(o.basename(e.fsPath),
                i && "." !== i ? r.getPathLabel(i, t, n) : "",
                {title: e.fsPath})
          }, t
        }(s);
        t.FileLabel = a
      }),define(d[211], h([5]), {}),define(d[212], h([5]), {}),define(d[213],
      h([5]), {}),define(d[218], h([5]), {}),define(d[219], h([5]), {}),define(
      d[220], h([1, 0, 7, 72, 52, 4, 3, 32, 26, 219]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = {progressBarBackground: a.Color.fromHex("#0E70C0")},
            c = function () {
              function e(e, t) {
                this.options = t || Object.create(null), u.mixin(this.options,
                    l,
                    !1), this.toUnbind = [], this.workedVal = 0, this.progressBarBackground = this.options.progressBarBackground, this.create(
                    e)
              }

              return e.prototype.create = function (e) {
                var t = this;
                e.div({class: "progress-container"}, function (e) {
                  t.element = e.clone(), e.div({class: "progress-bit"}).on(
                      [r.EventType.ANIMATION_START, r.EventType.ANIMATION_END,
                        r.EventType.ANIMATION_ITERATION], function (e) {
                        switch (e.type) {
                          case r.EventType.ANIMATION_START:
                          case r.EventType.ANIMATION_END:
                            t.animationRunning = e.type
                                === r.EventType.ANIMATION_START;
                            break;
                          case r.EventType.ANIMATION_ITERATION:
                            t.animationStopToken && t.animationStopToken(null)
                        }
                      }, t.toUnbind), t.bit = e.getHTMLElement()
                }), this.applyStyles()
              }, e.prototype.off = function () {
                this.bit.style.width = "inherit", this.bit.style.opacity = "1", this.element.removeClass(
                    "active"), this.element.removeClass(
                    "infinite"), this.element.removeClass(
                    "discrete"), this.workedVal = 0, this.totalWork = void 0
              }, e.prototype.done = function () {
                return this.doDone(!0)
              }, e.prototype.stop = function () {
                return this.doDone(!1)
              }, e.prototype.doDone = function (e) {
                var t = this;
                return this.element.addClass("done"), this.element.hasClass(
                    "infinite") ? (this.bit.style.opacity = "0", e
                    ? n.TPromise.timeout(200).then(function () {
                      return t.off()
                    }) : this.off()) : (this.bit.style.width = "inherit", e
                    ? n.TPromise.timeout(200).then(function () {
                      return t.off()
                    }) : this.off()), this
              }, e.prototype.infinite = function () {
                return this.bit.style.width = "2%", this.bit.style.opacity = "1", this.element.removeClass(
                    "discrete"), this.element.removeClass(
                    "done"), this.element.addClass(
                    "active"), this.element.addClass("infinite"), this
              }, e.prototype.total = function (e) {
                return this.workedVal = 0, this.totalWork = e, this
              }, e.prototype.hasTotal = function () {
                return !isNaN(this.totalWork)
              }, e.prototype.worked = function (e) {
                return i.ok(!isNaN(this.totalWork),
                    "Total work not set"), e = Number(e), i.ok(!isNaN(e),
                    "Value is not a number"), e = Math.max(1,
                    e), this.workedVal += e, this.workedVal = Math.min(
                    this.totalWork, this.workedVal), this.element.hasClass(
                    "infinite") && this.element.removeClass(
                    "infinite"), this.element.hasClass("done")
                && this.element.removeClass("done"), this.element.hasClass(
                    "active") || this.element.addClass(
                    "active"), this.element.hasClass("discrete")
                || this.element.addClass(
                    "discrete"), this.bit.style.width = this.workedVal
                    / this.totalWork * 100 + "%", this
              }, e.prototype.getContainer = function () {
                return o.$(this.element)
              }, e.prototype.style = function (e) {
                this.progressBarBackground = e.progressBarBackground, this.applyStyles()
              }, e.prototype.applyStyles = function () {
                if (this.bit) {
                  var e = this.progressBarBackground
                      ? this.progressBarBackground.toString() : null;
                  this.bit.style.backgroundColor = e
                }
              }, e.prototype.dispose = function () {
                this.toUnbind = s.dispose(this.toUnbind)
              }, e
            }();
        t.ProgressBar = c
      }),define(d[224], h([5]), {}),define(d[99],
      h([1, 0, 3, 52, 28, 15, 29, 4, 74, 38, 47, 11, 224]),
      function (e, t, n, i, o, r, s, a, u, l, c, d) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var h;
        !function (e) {
          e[e.VERTICAL = 0] = "VERTICAL", e[e.HORIZONTAL = 1] = "HORIZONTAL"
        }(h = t.Orientation || (t.Orientation = {}));
        var p = function (e) {
          function t(t, n, s) {
            void 0 === s && (s = {});
            var l = e.call(this) || this;
            return l.$e = i.$(".monaco-sash").appendTo(t), r.isMacintosh
            && l.$e.addClass("mac"), l.gesture = new u.Gesture(
                l.$e.getHTMLElement()), l.$e.on(a.EventType.MOUSE_DOWN,
                function (e) {
                  l.onMouseDown(e)
                }), l.$e.on(a.EventType.DBLCLICK, function (e) {
              l.emit("reset", e)
            }), l.$e.on(u.EventType.Start, function (e) {
              l.onTouchStart(e)
            }), l.size = s.baseSize || 5, o.isIPad
            && (l.size *= 4, l.$e.addClass("touch")), l.setOrientation(
                s.orientation
                || h.VERTICAL), l.isDisabled = !1, l.hidden = !1, l.layoutProvider = n, l
          }

          return f(t, e), t.prototype.getHTMLElement = function () {
            return this.$e.getHTMLElement()
          }, t.prototype.setOrientation = function (e) {
            this.orientation = e, this.$e.removeClass("horizontal",
                "vertical"), this.$e.addClass(
                this.getOrientation()), this.orientation === h.HORIZONTAL
                ? this.$e.size(null, this.size) : this.$e.size(
                    this.size), this.layoutProvider && this.layout()
          }, t.prototype.getOrientation = function () {
            return this.orientation === h.HORIZONTAL ? "horizontal" : "vertical"
          }, t.prototype.onMouseDown = function (e) {
            var t = this;
            if (a.EventHelper.stop(e, !1), !this.isDisabled) {
              var n = i.$(a.getElementsByTagName("iframe"));
              n && n.style("pointer-events", "none");
              var o = new c.StandardMouseEvent(e), s = o.posx, u = o.posy,
                  l = {startX: s, currentX: s, startY: u, currentY: u};
              this.$e.addClass("active"), this.emit("start", l);
              var d = i.$(window),
                  h = this.getOrientation() + "-cursor-container"
                      + (r.isMacintosh ? "-mac" : ""), p = s, f = u;
              d.on("mousemove", function (e) {
                a.EventHelper.stop(e, !1);
                var n = new c.StandardMouseEvent(e), i = {
                  startX: s,
                  currentX: n.posx,
                  startY: u,
                  currentY: n.posy
                };
                p = n.posx, f = n.posy, t.emit("change", i)
              }).once("mouseup", function (e) {
                a.EventHelper.stop(e, !1), t.$e.removeClass("active"), t.emit(
                    "end"), d.off("mousemove"), document.body.classList.remove(
                    h);
                var n = i.$(a.getElementsByTagName("iframe"));
                n && n.style("pointer-events", "auto")
              }), document.body.classList.add(h)
            }
          }, t.prototype.onTouchStart = function (e) {
            var t = this;
            a.EventHelper.stop(e);
            var i = [], o = e.pageX, r = e.pageY;
            this.emit("start",
                {startX: o, currentX: o, startY: r, currentY: r});
            var l = o, c = r;
            i.push(a.addDisposableListener(this.$e.getHTMLElement(),
                u.EventType.Change, function (e) {
                  s.isNumber(e.pageX) && s.isNumber(e.pageY) && (t.emit(
                      "change", {
                        startX: o,
                        currentX: e.pageX,
                        startY: r,
                        currentY: e.pageY
                      }), l = e.pageX, c = e.pageY)
                })), i.push(a.addDisposableListener(this.$e.getHTMLElement(),
                u.EventType.End, function (e) {
                  t.emit("end"), n.dispose(i)
                }))
          }, t.prototype.layout = function () {
            var e;
            if (this.orientation === h.VERTICAL) {
              var t = this.layoutProvider;
              e = {
                left: t.getVerticalSashLeft(this) - this.size / 2 + "px"
              }, t.getVerticalSashTop && (e.top = t.getVerticalSashTop(this)
                  + "px"), t.getVerticalSashHeight
              && (e.height = t.getVerticalSashHeight(this) + "px")
            } else {
              var n = this.layoutProvider;
              e = {
                top: n.getHorizontalSashTop(this) - this.size / 2 + "px"
              }, n.getHorizontalSashLeft && (e.left = n.getHorizontalSashLeft(
                  this) + "px"), n.getHorizontalSashWidth
              && (e.width = n.getHorizontalSashWidth(this) + "px")
            }
            this.$e.style(e)
          }, t.prototype.show = function () {
            this.hidden = !1, this.$e.show()
          }, t.prototype.hide = function () {
            this.hidden = !0, this.$e.hide()
          }, t.prototype.isHidden = function () {
            return this.hidden
          }, t.prototype.enable = function () {
            this.$e.removeClass("disabled"), this.isDisabled = !1
          }, t.prototype.disable = function () {
            this.$e.addClass("disabled"), this.isDisabled = !0
          }, t.prototype.dispose = function () {
            this.$e
            && (this.$e.destroy(), this.$e = null), e.prototype.dispose.call(
                this)
          }, t
        }(l.EventEmitter);
        t.Sash = p;
        var g = function (e) {
          function t(t, n) {
            var i = e.call(this) || this;
            return i.minWidth = n, i._onPositionChange = new d.Emitter, i.ratio = .5, i.sash = new p(
                t, i), i._register(i.sash.addListener("start", function () {
              return i.onSashDragStart()
            })), i._register(i.sash.addListener("change", function (e) {
              return i.onSashDrag(e)
            })), i._register(i.sash.addListener("end", function () {
              return i.onSashDragEnd()
            })), i._register(i.sash.addListener("reset", function () {
              return i.onSashReset()
            })), i
          }

          return f(t, e), Object.defineProperty(t.prototype, "onPositionChange",
              {
                get: function () {
                  return this._onPositionChange.event
                }, enumerable: !0, configurable: !0
              }), t.prototype.getVerticalSashTop = function () {
            return 0
          }, t.prototype.getVerticalSashLeft = function () {
            return this.position
          }, t.prototype.getVerticalSashHeight = function () {
            return this.dimension.height
          }, t.prototype.setDimenesion = function (e) {
            this.dimension = e, this.compute(this.ratio)
          }, t.prototype.onSashDragStart = function () {
            this.startPosition = this.position
          }, t.prototype.onSashDrag = function (e) {
            this.compute((this.startPosition + (e.currentX - e.startX))
                / this.dimension.width)
          }, t.prototype.compute = function (e) {
            this.computeSashPosition(e), this.ratio = this.position
                / this.dimension.width, this._onPositionChange.fire(
                this.position)
          }, t.prototype.onSashDragEnd = function () {
            this.sash.layout()
          }, t.prototype.onSashReset = function () {
            this.ratio = .5, this._onPositionChange.fire(
                this.position), this.sash.layout()
          }, t.prototype.computeSashPosition = function (e) {
            void 0 === e && (e = this.ratio);
            var t = this.dimension.width, n = Math.floor((e || .5) * t),
                i = Math.floor(.5 * t);
            t > 2 * this.minWidth ? (n < this.minWidth && (n = this.minWidth), n
                > t - this.minWidth && (n = t - this.minWidth))
                : n = i, this.position !== n
            && (this.position = n, this.sash.layout())
          }, t
        }(n.Disposable);
        t.VSash = g
      }),define(d[228], h([5]), {}),define(d[63],
      h([1, 0, 4, 15, 47, 439, 440, 3, 48, 41, 18, 27, 11, 228]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h) {
        "use strict";

        function p(e) {
          var t = {
            lazyRender: void 0 !== e.lazyRender && e.lazyRender,
            className: void 0 !== e.className ? e.className : "",
            useShadows: void 0 === e.useShadows || e.useShadows,
            handleMouseWheel: void 0 === e.handleMouseWheel
                || e.handleMouseWheel,
            flipAxes: void 0 !== e.flipAxes && e.flipAxes,
            alwaysConsumeMouseWheel: void 0 !== e.alwaysConsumeMouseWheel
                && e.alwaysConsumeMouseWheel,
            scrollYToX: void 0 !== e.scrollYToX && e.scrollYToX,
            mouseWheelScrollSensitivity: void 0
            !== e.mouseWheelScrollSensitivity ? e.mouseWheelScrollSensitivity
                : 1,
            arrowSize: void 0 !== e.arrowSize ? e.arrowSize : 11,
            listenOnDomNode: void 0 !== e.listenOnDomNode ? e.listenOnDomNode
                : null,
            horizontal: void 0 !== e.horizontal ? e.horizontal
                : u.ScrollbarVisibility.Auto,
            horizontalScrollbarSize: void 0 !== e.horizontalScrollbarSize
                ? e.horizontalScrollbarSize : 10,
            horizontalSliderSize: void 0 !== e.horizontalSliderSize
                ? e.horizontalSliderSize : 0,
            horizontalHasArrows: void 0 !== e.horizontalHasArrows
                && e.horizontalHasArrows,
            vertical: void 0 !== e.vertical ? e.vertical
                : u.ScrollbarVisibility.Auto,
            verticalScrollbarSize: void 0 !== e.verticalScrollbarSize
                ? e.verticalScrollbarSize : 10,
            verticalHasArrows: void 0 !== e.verticalHasArrows
                && e.verticalHasArrows,
            verticalSliderSize: void 0 !== e.verticalSliderSize
                ? e.verticalSliderSize : 0
          };
          return t.horizontalSliderSize = void 0 !== e.horizontalSliderSize
              ? e.horizontalSliderSize
              : t.horizontalScrollbarSize, t.verticalSliderSize = void 0
          !== e.verticalSliderSize ? e.verticalSliderSize
              : t.verticalScrollbarSize, i.isMacintosh
          && (t.className += " mac"), t
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var g = function (e) {
          function t(t, n, i) {
            var o = e.call(this) || this;
            o._onScroll = o._register(
                new h.Emitter), o.onScroll = o._onScroll.event, t.style.overflow = "hidden", o._options = p(
                n), o._scrollable = void 0 === i ? o._register(new u.Scrollable)
                : i, o._register(o._scrollable.onScroll(function (e) {
              o._onDidScroll(e), o._onScroll.fire(e)
            }));
            var a = {
              onMouseWheel: function (e) {
                return o._onMouseWheel(e)
              }, onDragStart: function () {
                return o._onDragStart()
              }, onDragEnd: function () {
                return o._onDragEnd()
              }
            };
            return o._verticalScrollbar = o._register(
                new s.VerticalScrollbar(o._scrollable, o._options,
                    a)), o._horizontalScrollbar = o._register(
                new r.HorizontalScrollbar(o._scrollable, o._options,
                    a)), o._domNode = document.createElement(
                "div"), o._domNode.className = "monaco-scrollable-element "
                + o._options.className, o._domNode.setAttribute("role",
                "presentation"), o._domNode.style.position = "relative", o._domNode.style.overflow = "hidden", o._domNode.appendChild(
                t), o._domNode.appendChild(
                o._horizontalScrollbar.domNode.domNode), o._domNode.appendChild(
                o._verticalScrollbar.domNode.domNode), o._options.useShadows
            && (o._leftShadowDomNode = d.createFastDomNode(
                document.createElement(
                    "div")), o._leftShadowDomNode.setClassName(
                "shadow"), o._domNode.appendChild(
                o._leftShadowDomNode.domNode), o._topShadowDomNode = d.createFastDomNode(
                document.createElement(
                    "div")), o._topShadowDomNode.setClassName(
                "shadow"), o._domNode.appendChild(
                o._topShadowDomNode.domNode), o._topLeftShadowDomNode = d.createFastDomNode(
                document.createElement(
                    "div")), o._topLeftShadowDomNode.setClassName(
                "shadow top-left-corner"), o._domNode.appendChild(
                o._topLeftShadowDomNode.domNode)), o._listenOnDomNode = o._options.listenOnDomNode
                || o._domNode, o._mouseWheelToDispose = [], o._setListeningToMouseWheel(
                o._options.handleMouseWheel), o.onmouseover(o._listenOnDomNode,
                function (e) {
                  return o._onMouseOver(e)
                }), o.onnonbubblingmouseout(o._listenOnDomNode, function (e) {
              return o._onMouseOut(e)
            }), o._hideTimeout = o._register(
                new c.TimeoutTimer), o._isDragging = !1, o._mouseIsOver = !1, o._shouldRender = !0, o
          }

          return f(t, e), t.prototype.dispose = function () {
            this._mouseWheelToDispose = a.dispose(
                this._mouseWheelToDispose), e.prototype.dispose.call(this)
          }, t.prototype.getDomNode = function () {
            return this._domNode
          }, t.prototype.getOverviewRulerLayoutInfo = function () {
            return {
              parent: this._domNode,
              insertBefore: this._verticalScrollbar.domNode.domNode
            }
          }, t.prototype.delegateVerticalScrollbarMouseDown = function (e) {
            this._verticalScrollbar.delegateMouseDown(e)
          }, t.prototype.delegateSliderMouseDown = function (e, t) {
            this._verticalScrollbar.delegateSliderMouseDown(e, t)
          }, t.prototype.updateState = function (e) {
            this._scrollable.updateState(e)
          }, t.prototype.getScrollState = function () {
            return this._scrollable.getState()
          }, t.prototype.updateClassName = function (e) {
            this._options.className = e, i.isMacintosh
            && (this._options.className += " mac"), this._domNode.className = "monaco-scrollable-element "
                + this._options.className
          }, t.prototype.updateOptions = function (e) {
            var t = p(e);
            this._options.handleMouseWheel = t.handleMouseWheel, this._options.mouseWheelScrollSensitivity = t.mouseWheelScrollSensitivity, this._setListeningToMouseWheel(
                this._options.handleMouseWheel), this._options.lazyRender
            || this._render()
          }, t.prototype._setListeningToMouseWheel = function (e) {
            var t = this;
            if (this._mouseWheelToDispose.length > 0 !== e
                && (this._mouseWheelToDispose = a.dispose(
                    this._mouseWheelToDispose), e)) {
              var i = function (e) {
                var n = new o.StandardMouseWheelEvent(e);
                t._onMouseWheel(n)
              };
              this._mouseWheelToDispose.push(
                  n.addDisposableListener(this._listenOnDomNode, "mousewheel",
                      i)), this._mouseWheelToDispose.push(
                  n.addDisposableListener(this._listenOnDomNode,
                      "DOMMouseScroll", i))
            }
          }, t.prototype._onMouseWheel = function (e) {
            var t = -1, n = -1;
            if (e.deltaY || e.deltaX) {
              var o = e.deltaY * this._options.mouseWheelScrollSensitivity,
                  r = e.deltaX * this._options.mouseWheelScrollSensitivity;
              this._options.flipAxes && (o = (c = [r, o])[0], r = c[1]);
              var s = !i.isMacintosh && e.browserEvent.shiftKey;
              !this._options.scrollYToX && !s || r
              || (r = o, o = 0), i.isMacintosh && (o && Math.abs(r) < .2
              && (r = 0), Math.abs(o) > .5 * Math.abs(r) && (r = 0));
              var a = this._scrollable.getState();
              if (o) {
                var u = a.scrollTop;
                (t = this._verticalScrollbar.validateScrollPosition(
                    (-1 !== t ? t : u) - 50 * o)) === u && (t = -1)
              }
              if (r) {
                var l = a.scrollLeft;
                (n = this._horizontalScrollbar.validateScrollPosition(
                    (-1 !== n ? n : l) - 50 * r)) === l && (n = -1)
              }
              -1 === t && -1 === n || (-1 !== t
              && (this._shouldRender = this._verticalScrollbar.setDesiredScrollPosition(
                  t) || this._shouldRender, t = -1), -1 !== n
              && (this._shouldRender = this._horizontalScrollbar.setDesiredScrollPosition(
                  n) || this._shouldRender, n = -1))
            }
            (this._options.alwaysConsumeMouseWheel || this._shouldRender)
            && (e.preventDefault(), e.stopPropagation());
            var c
          }, t.prototype._onDidScroll = function (e) {
            this._shouldRender = this._horizontalScrollbar.onDidScroll(e)
                || this._shouldRender, this._shouldRender = this._verticalScrollbar.onDidScroll(
                e) || this._shouldRender, this._options.useShadows
            && (this._shouldRender = !0), this._reveal(), this._options.lazyRender
            || this._render()
          }, t.prototype.renderNow = function () {
            if (!this._options.lazyRender) {
              throw new Error(
                  "Please use `lazyRender` together with `renderNow`!");
            }
            this._render()
          }, t.prototype._render = function () {
            if (this._shouldRender
                && (this._shouldRender = !1, this._horizontalScrollbar.render(), this._verticalScrollbar.render(), this._options.useShadows)) {
              var e = this._scrollable.getState(), t = e.scrollTop > 0,
                  n = e.scrollLeft > 0;
              this._leftShadowDomNode.setClassName("shadow" + (n ? " left"
                  : "")), this._topShadowDomNode.setClassName(
                  "shadow" + (t ? " top"
                      : "")), this._topLeftShadowDomNode.setClassName(
                  "shadow top-left-corner" + (t ? " top" : "") + (n ? " left"
                      : ""))
            }
          }, t.prototype._onDragStart = function () {
            this._isDragging = !0, this._reveal()
          }, t.prototype._onDragEnd = function () {
            this._isDragging = !1, this._hide()
          }, t.prototype._onMouseOut = function (e) {
            this._mouseIsOver = !1, this._hide()
          }, t.prototype._onMouseOver = function (e) {
            this._mouseIsOver = !0, this._reveal()
          }, t.prototype._reveal = function () {
            this._verticalScrollbar.beginReveal(), this._horizontalScrollbar.beginReveal(), this._scheduleHide()
          }, t.prototype._hide = function () {
            this._mouseIsOver || this._isDragging
            || (this._verticalScrollbar.beginHide(), this._horizontalScrollbar.beginHide())
          }, t.prototype._scheduleHide = function () {
            var e = this;
            this._mouseIsOver || this._isDragging
            || this._hideTimeout.cancelAndSet(function () {
              return e._hide()
            }, 500)
          }, t
        }(l.Widget);
        t.ScrollableElement = g;
        var m = function (e) {
          function t(t, n) {
            var i = e.call(this, t, n) || this;
            return i._element = t, i.onScroll(function (e) {
              e.scrollTopChanged
              && (i._element.scrollTop = e.scrollTop), e.scrollLeftChanged
              && (i._element.scrollLeft = e.scrollLeft)
            }), i.scanDomNode(), i
          }

          return f(t, e), t.prototype.scanDomNode = function () {
            this.updateState({
              width: this._element.clientWidth,
              scrollWidth: this._element.scrollWidth,
              scrollLeft: this._element.scrollLeft,
              height: this._element.clientHeight,
              scrollHeight: this._element.scrollHeight,
              scrollTop: this._element.scrollTop
            })
          }, t
        }(g);
        t.DomScrollableElement = m
      }),define(d[232], h([1, 0, 26, 3, 74, 4, 124, 63, 48, 415, 416, 15, 28]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var p = ["click", "dblclick", "mouseup", "mousedown", "mouseover",
              "mousemove", "mouseout", "contextmenu", "touchstart"],
            f = {useShadows: !0}, g = function () {
              function e(e, t, i, r) {
                void 0 === r
                && (r = f), this.delegate = t, this.items = [], this.itemId = 0, this.rangeMap = new l.RangeMap, this.renderers = n.toObject(
                    i, function (e) {
                      return e.templateId
                    }), this.cache = new c.RowCache(
                    this.renderers), this.lastRenderTop = 0, this.lastRenderHeight = 0, this._domNode = document.createElement(
                    "div"), this._domNode.className = "monaco-list", this.rowsContainer = document.createElement(
                    "div"), this.rowsContainer.className = "monaco-list-rows", this.gesture = new o.Gesture(
                    this.rowsContainer), this.scrollableElement = new a.ScrollableElement(
                    this.rowsContainer, {
                      alwaysConsumeMouseWheel: !0,
                      horizontal: u.ScrollbarVisibility.Hidden,
                      vertical: u.ScrollbarVisibility.Auto,
                      useShadows: n.getOrDefault(r, function (e) {
                        return e.useShadows
                      }, f.useShadows)
                    }), this._domNode.appendChild(
                    this.scrollableElement.getDomNode()), e.appendChild(
                    this._domNode), this.disposables = [this.rangeMap, this.gesture,
                  this.scrollableElement], this.scrollableElement.onScroll(
                    this.onScroll, this, this.disposables), s.domEvent(
                    this.rowsContainer, o.EventType.Change)(this.onTouchChange,
                    this, this.disposables), this.layout()
              }

              return Object.defineProperty(e.prototype, "domNode", {
                get: function () {
                  return this._domNode
                }, enumerable: !0, configurable: !0
              }), e.prototype.splice = function (e, t, n) {
                var i = this;
                void 0 === n && (n = []);
                var o = this.getRenderRange(this.lastRenderTop,
                    this.lastRenderHeight);
                l.each(o, function (e) {
                  return i.removeItemFromDOM(i.items[e])
                });
                var r = n.map(function (e) {
                  return {
                    id: String(i.itemId++),
                    element: e,
                    size: i.delegate.getHeight(e),
                    templateId: i.delegate.getTemplateId(e),
                    row: null
                  }
                });
                (c = this.rangeMap).splice.apply(c, [e, t].concat(r));
                var s = (d = this.items).splice.apply(d, [e, t].concat(r)),
                    a = this.getRenderRange(this.lastRenderTop,
                        this.lastRenderHeight);
                l.each(a, function (e) {
                  return i.insertItemInDOM(i.items[e], e)
                });
                var u = this.getContentHeight();
                return this.rowsContainer.style.height = u
                    + "px", this.scrollableElement.updateState(
                    {scrollHeight: u}), s.map(function (e) {
                  return e.element
                });
                var c, d
              }, Object.defineProperty(e.prototype, "length", {
                get: function () {
                  return this.items.length
                }, enumerable: !0, configurable: !0
              }), Object.defineProperty(e.prototype, "renderHeight", {
                get: function () {
                  return this.scrollableElement.getScrollState().height
                }, enumerable: !0, configurable: !0
              }), e.prototype.element = function (e) {
                return this.items[e].element
              }, e.prototype.domElement = function (e) {
                var t = this.items[e].row;
                return t && t.domNode
              }, e.prototype.elementHeight = function (e) {
                return this.items[e].size
              }, e.prototype.elementTop = function (e) {
                return this.rangeMap.positionAt(e)
              }, e.prototype.indexAt = function (e) {
                return this.rangeMap.indexAt(e)
              }, e.prototype.indexAfter = function (e) {
                return this.rangeMap.indexAfter(e)
              }, e.prototype.layout = function (e) {
                this.scrollableElement.updateState(
                    {height: e || r.getContentHeight(this._domNode)})
              }, e.prototype.render = function (e, t) {
                var n = this, i = this.getRenderRange(this.lastRenderTop,
                        this.lastRenderHeight), o = this.getRenderRange(e, t),
                    r = l.relativeComplement(o, i), s = l.relativeComplement(i, o);
                if (r.forEach(function (e) {
                  return l.each(e, function (e) {
                    return n.insertItemInDOM(n.items[e], e)
                  })
                }), s.forEach(function (e) {
                  return l.each(e, function (e) {
                    return n.removeItemFromDOM(n.items[e])
                  })
                }), h.canUseTranslate3d() && !d.isWindows) {
                  var a = "translate3d(0px, -" + e + "px, 0px)";
                  this.rowsContainer.style.transform = a, this.rowsContainer.style.webkitTransform = a
                } else {
                  this.rowsContainer.style.top = "-" + e + "px";
                }
                this.lastRenderTop = e, this.lastRenderHeight = t
              }, e.prototype.insertItemInDOM = function (e, t) {
                e.row || (e.row = this.cache.alloc(
                    e.templateId)), e.row.domNode.parentElement
                || this.rowsContainer.appendChild(e.row.domNode);
                var n = this.renderers[e.templateId];
                e.row.domNode.style.top = this.elementTop(t)
                    + "px", e.row.domNode.style.height = e.size
                    + "px", e.row.domNode.setAttribute("data-index",
                    "" + t), n.renderElement(e.element, t, e.row.templateData)
              }, e.prototype.removeItemFromDOM = function (e) {
                this.cache.release(e.row), e.row = null
              }, e.prototype.getContentHeight = function () {
                return this.rangeMap.size
              }, e.prototype.getScrollTop = function () {
                return this.scrollableElement.getScrollState().scrollTop
              }, e.prototype.setScrollTop = function (e) {
                this.scrollableElement.updateState({scrollTop: e})
              }, Object.defineProperty(e.prototype, "scrollTop", {
                get: function () {
                  return this.getScrollTop()
                }, set: function (e) {
                  this.setScrollTop(e)
                }, enumerable: !0, configurable: !0
              }), e.prototype.addListener = function (e, t, n) {
                var i = this, s = t, a = this.domNode;
                return p.indexOf(e) > -1 ? t = function (e) {
                  return i.fireScopedEvent(e, s, i.getItemIndexFromMouseEvent(e))
                } : e === o.EventType.Tap
                    && (a = this.rowsContainer, t = function (e) {
                      return i.fireScopedEvent(e, s,
                          i.getItemIndexFromGestureEvent(e))
                    }), r.addDisposableListener(a, e, t, n)
              }, e.prototype.fireScopedEvent = function (e, t, i) {
                if (!(i < 0)) {
                  var o = this.items[i].element;
                  t(n.assign(e, {element: o, index: i}))
                }
              }, e.prototype.onScroll = function (e) {
                this.render(e.scrollTop, e.height)
              }, e.prototype.onTouchChange = function (e) {
                e.preventDefault(), e.stopPropagation(), this.scrollTop -= e.translationY
              }, e.prototype.getItemIndexFromMouseEvent = function (e) {
                return this.getItemIndexFromEventTarget(e.target)
              }, e.prototype.getItemIndexFromGestureEvent = function (e) {
                return this.getItemIndexFromEventTarget(e.initialTarget)
              }, e.prototype.getItemIndexFromEventTarget = function (e) {
                for (; e instanceof HTMLElement && e !== this.rowsContainer;) {
                  var t = e, n = t.getAttribute("data-index");
                  if (n) {
                    var i = Number(n);
                    if (!isNaN(i)) {
                      return i
                    }
                  }
                  e = t.parentElement
                }
                return -1
              }, e.prototype.getRenderRange = function (e, t) {
                return {
                  start: this.rangeMap.indexAt(e),
                  end: this.rangeMap.indexAfter(e + t - 1)
                }
              }, e.prototype.dispose = function () {
                this.items = null, this._domNode && this._domNode.parentElement
                && (this._domNode.parentNode.removeChild(
                    this._domNode), this._domNode = null), this.disposables = i.dispose(
                    this.disposables)
              }, e
            }();
        t.ListView = g
      });
  var v = this && this.__decorate || function (e, t, n, i) {
    var o, r = arguments.length,
        s = r < 3 ? t : null === i ? i = Object.getOwnPropertyDescriptor(t, n)
            : i;
    if ("object" == typeof Reflect && "function"
        == typeof Reflect.decorate) {
      s = Reflect.decorate(e, t, n,
          i);
    } else {
      for (var a = e.length - 1; a >= 0; a--) {
        (o = e[a]) && (s = (r
        < 3 ? o(s) : r > 3 ? o(t, n, s) : o(t, n)) || s);
      }
    }
    return r > 3 && s && Object.defineProperty(t, n, s), s
  };
  define(d[234],
      h([1, 0, 3, 29, 33, 136, 446, 4, 15, 74, 65, 11, 124, 232, 32, 26, 213]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m) {
        "use strict";

        function _(e) {
          return u.isMacintosh ? e.metaKey : e.ctrlKey
        }

        function y(e) {
          return e.shiftKey
        }

        function C(e) {
          return _(e) || y(e)
        }

        function b(e, t) {
          var n = e.indexOf(t);
          if (-1 === n) {
            return [];
          }
          for (var i = [], o = n - 1; o >= 0 && e[o] === t - (n - o);) {
            i.push(
                e[o--]);
          }
          for (i.reverse(), o = n;
              o < e.length && e[o] === t + (o - n);) {
            i.push(e[o++]);
          }
          return i
        }

        function w(e, t) {
          for (var n = [], i = 0, o = 0; i < e.length || o < t.length;) {
            if (i
                >= e.length) {
              n.push(t[o++]);
            } else if (o >= t.length) {
              n.push(
                  e[i++]);
            } else {
              if (e[i] === t[o]) {
                n.push(e[i]), i++, o++;
                continue
              }
              e[i] < t[o] ? n.push(e[i++]) : n.push(t[o++])
            }
          }
          return n
        }

        function S(e, t) {
          for (var n = [], i = 0, o = 0; i < e.length || o < t.length;) {
            if (i
                >= e.length) {
              n.push(t[o++]);
            } else if (o >= t.length) {
              n.push(
                  e[i++]);
            } else {
              if (e[i] === t[o]) {
                i++, o++;
                continue
              }
              e[i] < t[o] ? n.push(e[i++]) : o++
            }
          }
          return n
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var E = function () {
          function e(e) {
            this.spliceables = e
          }

          return e.prototype.splice = function (e, t, n) {
            this.spliceables.forEach(function (i) {
              return i.splice(e, t, n)
            })
          }, e
        }(), L = function () {
          function e(e) {
            this.trait = e, this.rendered = []
          }

          return Object.defineProperty(e.prototype, "templateId", {
            get: function () {
              return "template:" + this.trait.trait
            }, enumerable: !0, configurable: !0
          }), e.prototype.renderTemplate = function (e) {
            return {container: e, elementDisposable: n.empty}
          }, e.prototype.renderElement = function (e, t, i) {
            var o = this;
            i.elementDisposable.dispose();
            var s = {index: t, templateData: i};
            this.rendered.push(s), i.elementDisposable = n.toDisposable(
                r.once(function () {
                  return o.rendered.splice(o.rendered.indexOf(s), 1)
                })), this.trait.renderIndex(t, i.container)
          }, e.prototype.renderIndexes = function (e) {
            var t = this;
            this.rendered.filter(function (t) {
              var n = t.index;
              return e.indexOf(n) > -1
            }).forEach(function (e) {
              var n = e.index, i = e.templateData;
              return t.trait.renderIndex(n, i.container)
            })
          }, e.prototype.splice = function (e, t) {
            for (var n = 0; n < t; n++) {
              var i = "key_" + (e + n), o = this.rendered[i];
              o && o.elementDisposable.dispose()
            }
          }, e.prototype.disposeTemplate = function (e) {
            e.elementDisposable.dispose()
          }, e
        }(), x = function () {
          function e(e) {
            this._trait = e, this._onChange = new d.Emitter, this.indexes = []
          }

          return Object.defineProperty(e.prototype, "onChange", {
            get: function () {
              return this._onChange.event
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "trait", {
            get: function () {
              return this._trait
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "renderer", {
            get: function () {
              return new L(this)
            }, enumerable: !0, configurable: !0
          }), e.prototype.splice = function (e, t, n) {
            var i = n.length - t, o = e + t,
                r = this.indexes.filter(function (t) {
                  return t < e
                }).concat(n.reduce(function (t, n, i) {
                  return n ? t.concat([i + e]) : t
                }, []), this.indexes.filter(function (e) {
                  return e >= o
                }).map(function (e) {
                  return e + i
                }));
            this.renderer.splice(e, t), this.set(r)
          }, e.prototype.renderIndex = function (e, t) {
            a.toggleClass(t, this._trait, this.contains(e))
          }, e.prototype.set = function (e) {
            var t = this.indexes;
            this.indexes = e;
            var n = w(t, e);
            return this.renderer.renderIndexes(n), this._onChange.fire(
                {indexes: e}), t
          }, e.prototype.get = function () {
            return this.indexes
          }, e.prototype.contains = function (e) {
            return this.indexes.some(function (t) {
              return t === e
            })
          }, e.prototype.dispose = function () {
            this.indexes = null, this._onChange = n.dispose(this._onChange)
          }, v([s.memoize], e.prototype, "renderer", null), e
        }(), N = function (e) {
          function t(t) {
            var n = e.call(this, "focused") || this;
            return n.getDomId = t, n
          }

          return f(t, e), t.prototype.renderIndex = function (t, n) {
            e.prototype.renderIndex.call(this, t, n), n.setAttribute("role",
                "treeitem"), n.setAttribute("id", this.getDomId(t))
          }, t
        }(x), M = function () {
          function e() {
            this.length = 0
          }

          return Object.defineProperty(e.prototype, "templateId", {
            get: function () {
              return "aria"
            }, enumerable: !0, configurable: !0
          }), e.prototype.splice = function (e, t, n) {
            this.length += n.length - t
          }, e.prototype.renderTemplate = function (e) {
            return e
          }, e.prototype.renderElement = function (e, t, n) {
            n.setAttribute("aria-setsize", "" + this.length), n.setAttribute(
                "aria-posinset", "" + (t + 1))
          }, e.prototype.disposeTemplate = function (e) {
          }, e
        }(), T = function () {
          function e(e, t, n) {
            this.trait = e, this.view = t, this.getId = n
          }

          return e.prototype.splice = function (e, t, n) {
            var i = this;
            if (!this.getId) {
              return this.trait.splice(e, t, n.map(function (e) {
                return !1
              }));
            }
            var o = this.trait.get().map(function (e) {
              return i.getId(i.view.element(e))
            }), r = n.map(function (e) {
              return o.indexOf(i.getId(e)) > -1
            });
            this.trait.splice(e, t, r)
          }, e
        }(), k = function () {
          function e(e, t) {
            this.list = e, this.view = t, this.disposables = [];
            var n = d.chain(h.domEvent(t.domNode, "keydown")).map(function (e) {
              return new c.StandardKeyboardEvent(e)
            });
            n.filter(function (e) {
              return 3 === e.keyCode
            }).on(this.onEnter, this, this.disposables), n.filter(function (e) {
              return 16 === e.keyCode
            }).on(this.onUpArrow, this, this.disposables), n.filter(
                function (e) {
                  return 18 === e.keyCode
                }).on(this.onDownArrow, this, this.disposables), n.filter(
                function (e) {
                  return 11 === e.keyCode
                }).on(this.onPageUpArrow, this, this.disposables), n.filter(
                function (e) {
                  return 12 === e.keyCode
                }).on(this.onPageDownArrow, this, this.disposables)
          }

          return e.prototype.onEnter = function (e) {
            e.preventDefault(), e.stopPropagation(), this.list.setSelection(
                this.list.getFocus()), this.list.open(this.list.getFocus())
          }, e.prototype.onUpArrow = function (e) {
            e.preventDefault(), e.stopPropagation(), this.list.focusPrevious(), this.list.reveal(
                this.list.getFocus()[0]), this.view.domNode.focus()
          }, e.prototype.onDownArrow = function (e) {
            e.preventDefault(), e.stopPropagation(), this.list.focusNext(), this.list.reveal(
                this.list.getFocus()[0]), this.view.domNode.focus()
          }, e.prototype.onPageUpArrow = function (e) {
            e.preventDefault(), e.stopPropagation(), this.list.focusPreviousPage(), this.list.reveal(
                this.list.getFocus()[0]), this.view.domNode.focus()
          }, e.prototype.onPageDownArrow = function (e) {
            e.preventDefault(), e.stopPropagation(), this.list.focusNextPage(), this.list.reveal(
                this.list.getFocus()[0]), this.view.domNode.focus()
          }, e.prototype.dispose = function () {
            this.disposables = n.dispose(this.disposables)
          }, e
        }(), I = function () {
          function e(e, t, n) {
            void 0 === n && (n = {});
            var i = this;
            this.list = e, this.view = t, this.options = n, this.disposables = [], this.disposables.push(
                t.addListener("mousedown", function (e) {
                  return i.onMouseDown(e)
                })), this.disposables.push(t.addListener("click", function (e) {
              return i.onPointer(e)
            })), this.disposables.push(t.addListener("dblclick", function (e) {
              return i.onDoubleClick(e)
            })), this.disposables.push(
                t.addListener("touchstart", function (e) {
                  return i.onMouseDown(e)
                })), this.disposables.push(
                t.addListener(l.EventType.Tap, function (e) {
                  return i.onPointer(e)
                }))
          }

          return Object.defineProperty(e.prototype, "onContextMenu", {
            get: function () {
              var e = this,
                  t = d.chain(h.domEvent(this.view.domNode, "keydown")).map(
                      function (e) {
                        return new c.StandardKeyboardEvent(e)
                      }).filter(function (t) {
                    return e.list.getFocus().length > 0
                  }).filter(function (e) {
                    return 58 === e.keyCode || e.shiftKey && 68 === e.keyCode
                  }).map(function (t) {
                    var n = e.list.getFocus()[0];
                    return {
                      index: n,
                      element: e.view.element(n),
                      anchor: e.view.domElement(n)
                    }
                  }).filter(function (e) {
                    return !!e.anchor
                  }).event, n = d.chain(d.fromCallback(function (t) {
                    return e.view.addListener("contextmenu", t)
                  })).map(function (e) {
                    return {
                      element: e.element,
                      index: e.index,
                      anchor: {x: e.clientX + 1, y: e.clientY}
                    }
                  }).event;
              return d.any(t, n)
            }, enumerable: !0, configurable: !0
          }), e.prototype.onMouseDown = function (e) {
            e.preventDefault(), e.stopPropagation(), this.view.domNode.focus();
            var t = this.list.getFocus()[0];
            if (t = void 0 === t ? this.list.getSelection()[0] : t, y(
                e)) {
              return this.changeSelection(e, t);
            }
            var n = e.index;
            if (this.list.setFocus([n]), C(e)) {
              return this.changeSelection(e,
                  t);
            }
            this.options.selectOnMouseDown && (this.list.setSelection(
                [n]), this.list.open([n]))
          }, e.prototype.onPointer = function (e) {
            if (e.preventDefault(), e.stopPropagation(), !C(e)) {
              var t = this.list.getFocus();
              this.list.setSelection(t), this.list.open(t)
            }
          }, e.prototype.onDoubleClick = function (e) {
            if (e.preventDefault(), e.stopPropagation(), !C(e)) {
              var t = this.list.getFocus();
              this.list.setSelection(t), this.list.pin(t)
            }
          }, e.prototype.changeSelection = function (e, t) {
            var n = e.index;
            if (y(e) && void 0 !== t) {
              var i = Math.min(t, n), r = Math.max(t, n), s = o.range(r + 1, i),
                  a = b(w(u = this.list.getSelection(), [t]), t);
              if (0 === a.length) {
                return;
              }
              l = w(s, S(u, a));
              this.list.setSelection(l)
            } else if (_(e)) {
              var u = this.list.getSelection(), l = u.filter(function (e) {
                return e !== n
              });
              u.length === l.length ? this.list.setSelection(l.concat([n]))
                  : this.list.setSelection(l)
            }
          }, e.prototype.dispose = function () {
            this.disposables = n.dispose(this.disposables)
          }, v([s.memoize], e.prototype, "onContextMenu", null), e
        }(), D = {
          listFocusBackground: g.Color.fromHex("#073655"),
          listActiveSelectionBackground: g.Color.fromHex("#0E639C"),
          listActiveSelectionForeground: g.Color.fromHex("#FFFFFF"),
          listFocusAndSelectionBackground: g.Color.fromHex("#094771"),
          listFocusAndSelectionForeground: g.Color.fromHex("#FFFFFF"),
          listInactiveSelectionBackground: g.Color.fromHex("#3F3F46"),
          listHoverBackground: g.Color.fromHex("#2A2D2E"),
          listDropBackground: g.Color.fromHex("#383B3D")
        }, O = {keyboardSupport: !0, mouseSupport: !0}, R = function (e, t) {
          return e - t
        }, P = function () {
          function e(e, t) {
            this._templateId = e, this.renderers = t
          }

          return Object.defineProperty(e.prototype, "templateId", {
            get: function () {
              return this._templateId
            }, enumerable: !0, configurable: !0
          }), e.prototype.renderTemplate = function (e) {
            return this.renderers.map(function (t) {
              return t.renderTemplate(e)
            })
          }, e.prototype.renderElement = function (e, t, n) {
            this.renderers.forEach(function (i, o) {
              return i.renderElement(e, t, n[o])
            })
          }, e.prototype.disposeTemplate = function (e) {
            this.renderers.forEach(function (t, n) {
              return t.disposeTemplate(e[n])
            })
          }, e
        }(), A = function () {
          function e(t, n, i, o) {
            void 0 === o && (o = O);
            var r = this;
            this.idPrefix = "list_id_"
                + ++e.InstanceCount, this._onContextMenu = d.default.None, this._onOpen = new d.Emitter, this._onPin = new d.Emitter, this._onDispose = new d.Emitter;
            var s = new M;
            if (this.focus = new N(function (e) {
              return r.getElementDomId(e)
            }), this.selection = new x(
                "selected"), this.eventBufferer = new d.EventBufferer, m.mixin(
                o, D, !1), i = i.map(function (e) {
              return new P(e.templateId,
                  [s, r.focus.renderer, r.selection.renderer, e])
            }), this.view = new p.ListView(t, n, i,
                o), this.view.domNode.setAttribute("role", "tree"), a.addClass(
                this.view.domNode,
                this.idPrefix), this.view.domNode.tabIndex = 0, this.styleElement = a.createStyleSheet(
                this.view.domNode), this.spliceable = new E(
                [s, new T(this.focus, this.view, o.identityProvider),
                  new T(this.selection, this.view, o.identityProvider),
                  this.view]), this.disposables = [this.focus, this.selection,
              this.view, this._onDispose], this.onDOMFocus = d.mapEvent(
                h.domEvent(this.view.domNode, "focus", !0), function () {
                  return null
                }), this.onDOMBlur = d.mapEvent(
                h.domEvent(this.view.domNode, "blur", !0), function () {
                  return null
                }), "boolean" != typeof o.keyboardSupport
            || o.keyboardSupport) {
              u = new k(this, this.view);
              this.disposables.push(u)
            }
            if ("boolean" != typeof o.mouseSupport || o.mouseSupport) {
              var u = new I(this, this.view, o);
              this.disposables.push(u), this._onContextMenu = u.onContextMenu
            }
            this.onFocusChange(this._onFocusChange, this,
                this.disposables), this.onSelectionChange(
                this._onSelectionChange, this, this.disposables), o.ariaLabel
            && this.view.domNode.setAttribute("aria-label",
                o.ariaLabel), this.style(o)
          }

          return Object.defineProperty(e.prototype, "onFocusChange", {
            get: function () {
              var e = this;
              return d.mapEvent(
                  this.eventBufferer.wrapEvent(this.focus.onChange),
                  function (t) {
                    return e.toListEvent(t)
                  })
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "onSelectionChange", {
            get: function () {
              var e = this;
              return d.mapEvent(
                  this.eventBufferer.wrapEvent(this.selection.onChange),
                  function (t) {
                    return e.toListEvent(t)
                  })
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "onContextMenu", {
            get: function () {
              return this._onContextMenu
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "onOpen", {
            get: function () {
              var e = this;
              return d.mapEvent(this._onOpen.event, function (t) {
                return e.toListEvent({indexes: t})
              })
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "onPin", {
            get: function () {
              var e = this;
              return d.mapEvent(this._onPin.event, function (t) {
                return e.toListEvent({indexes: t})
              })
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "onDispose", {
            get: function () {
              return this._onDispose.event
            }, enumerable: !0, configurable: !0
          }), e.prototype.splice = function (e, t, n) {
            var i = this;
            void 0 === n && (n = []), this.eventBufferer.bufferEvents(
                function () {
                  return i.spliceable.splice(e, t, n)
                })
          }, Object.defineProperty(e.prototype, "length", {
            get: function () {
              return this.view.length
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "contentHeight", {
            get: function () {
              return this.view.getContentHeight()
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "scrollTop", {
            get: function () {
              return this.view.getScrollTop()
            }, set: function (e) {
              this.view.setScrollTop(e)
            }, enumerable: !0, configurable: !0
          }), e.prototype.layout = function (e) {
            this.view.layout(e)
          }, e.prototype.setSelection = function (e) {
            e = e.sort(R), this.selection.set(e)
          }, e.prototype.selectNext = function (e, t) {
            if (void 0 === e && (e = 1), void 0 === t && (t = !1), 0
            !== this.length) {
              var n = this.selection.get(), i = n.length > 0 ? n[0] + e : 0;
              this.setSelection(
                  t ? [i % this.length] : [Math.min(i, this.length - 1)])
            }
          }, e.prototype.selectPrevious = function (e, t) {
            if (void 0 === e && (e = 1), void 0 === t && (t = !1), 0
            !== this.length) {
              var n = this.selection.get(), i = n.length > 0 ? n[0] - e : 0;
              t && i < 0 && (i = this.length + i
                  % this.length), this.setSelection([Math.max(i, 0)])
            }
          }, e.prototype.getSelection = function () {
            return this.selection.get()
          }, e.prototype.getSelectedElements = function () {
            var e = this;
            return this.getSelection().map(function (t) {
              return e.view.element(t)
            })
          }, e.prototype.setFocus = function (e) {
            e = e.sort(R), this.focus.set(e)
          }, e.prototype.focusNext = function (e, t) {
            if (void 0 === e && (e = 1), void 0 === t && (t = !1), 0
            !== this.length) {
              var n = this.focus.get(), i = n.length > 0 ? n[0] + e : 0;
              this.setFocus(
                  t ? [i % this.length] : [Math.min(i, this.length - 1)])
            }
          }, e.prototype.focusPrevious = function (e, t) {
            if (void 0 === e && (e = 1), void 0 === t && (t = !1), 0
            !== this.length) {
              var n = this.focus.get(), i = n.length > 0 ? n[0] - e : 0;
              t && i < 0 && (i = (this.length + i % this.length)
                  % this.length), this.setFocus([Math.max(i, 0)])
            }
          }, e.prototype.focusNextPage = function () {
            var e = this, t = this.view.indexAt(
                this.view.getScrollTop() + this.view.renderHeight);
            t = 0 === t ? 0 : t - 1;
            var n = this.view.element(t);
            if (this.getFocusedElements()[0] !== n) {
              this.setFocus([t]);
            } else {
              var i = this.view.getScrollTop();
              this.view.setScrollTop(
                  i + this.view.renderHeight - this.view.elementHeight(
                      t)), this.view.getScrollTop() !== i && setTimeout(
                  function () {
                    return e.focusNextPage()
                  }, 0)
            }
          }, e.prototype.focusPreviousPage = function () {
            var e, t = this, n = this.view.getScrollTop();
            e = 0 === n ? this.view.indexAt(n) : this.view.indexAfter(n - 1);
            var i = this.view.element(e);
            if (this.getFocusedElements()[0] !== i) {
              this.setFocus([e]);
            } else {
              var o = n;
              this.view.setScrollTop(
                  n - this.view.renderHeight), this.view.getScrollTop() !== o
              && setTimeout(function () {
                return t.focusPreviousPage()
              }, 0)
            }
          }, e.prototype.focusLast = function () {
            0 !== this.length && this.setFocus([this.length - 1])
          }, e.prototype.focusFirst = function () {
            0 !== this.length && this.setFocus([0])
          }, e.prototype.getFocus = function () {
            return this.focus.get()
          }, e.prototype.getFocusedElements = function () {
            var e = this;
            return this.getFocus().map(function (t) {
              return e.view.element(t)
            })
          }, e.prototype.reveal = function (e, t) {
            var n = this.view.getScrollTop(), o = this.view.elementTop(e),
                r = this.view.elementHeight(e);
            if (i.isNumber(t)) {
              t = (t = t < 0 ? 0 : t) > 1 ? 1 : t;
              var s = r - this.view.renderHeight;
              this.view.setScrollTop(s * t + o)
            } else {
              var a = o + r, u = n + this.view.renderHeight;
              o < n ? this.view.setScrollTop(o) : a >= u
                  && this.view.setScrollTop(a - this.view.renderHeight)
            }
          }, e.prototype.getElementDomId = function (e) {
            return this.idPrefix + "_" + e
          }, e.prototype.isDOMFocused = function () {
            return this.view.domNode === document.activeElement
          }, e.prototype.getHTMLElement = function () {
            return this.view.domNode
          }, e.prototype.open = function (e) {
            this._onOpen.fire(e)
          }, e.prototype.pin = function (e) {
            this._onPin.fire(e)
          }, e.prototype.style = function (e) {
            var t = [];
            e.listFocusBackground && t.push(".monaco-list." + this.idPrefix
                + ":focus .monaco-list-row.focused { background-color: "
                + e.listFocusBackground + "; }"), e.listFocusForeground
            && t.push(".monaco-list." + this.idPrefix
                + ":focus .monaco-list-row.focused { color: "
                + e.listFocusForeground
                + "; }"), e.listActiveSelectionBackground && (t.push(
                ".monaco-list." + this.idPrefix
                + ":focus .monaco-list-row.selected { background-color: "
                + e.listActiveSelectionBackground + "; }"), t.push(
                ".monaco-list." + this.idPrefix
                + ":focus .monaco-list-row.selected:hover { background-color: "
                + e.listActiveSelectionBackground
                + "; }")), e.listActiveSelectionForeground && t.push(
                ".monaco-list." + this.idPrefix
                + ":focus .monaco-list-row.selected { color: "
                + e.listActiveSelectionForeground
                + "; }"), e.listFocusAndSelectionBackground && t.push(
                ".monaco-list." + this.idPrefix
                + ":focus .monaco-list-row.selected.focused { background-color: "
                + e.listFocusAndSelectionBackground
                + "; }"), e.listFocusAndSelectionForeground && t.push(
                ".monaco-list." + this.idPrefix
                + ":focus .monaco-list-row.selected.focused { color: "
                + e.listFocusAndSelectionForeground
                + "; }"), e.listInactiveFocusBackground && (t.push(
                ".monaco-list." + this.idPrefix
                + " .monaco-list-row.focused { background-color:  "
                + e.listInactiveFocusBackground + "; }"), t.push(
                ".monaco-list." + this.idPrefix
                + " .monaco-list-row.focused:hover { background-color:  "
                + e.listInactiveFocusBackground
                + "; }")), e.listInactiveSelectionBackground && (t.push(
                ".monaco-list." + this.idPrefix
                + " .monaco-list-row.selected { background-color:  "
                + e.listInactiveSelectionBackground + "; }"), t.push(
                ".monaco-list." + this.idPrefix
                + " .monaco-list-row.selected:hover { background-color:  "
                + e.listInactiveSelectionBackground
                + "; }")), e.listInactiveSelectionForeground && t.push(
                ".monaco-list." + this.idPrefix
                + " .monaco-list-row.selected { color: "
                + e.listInactiveSelectionForeground
                + "; }"), e.listHoverBackground && t.push(
                ".monaco-list." + this.idPrefix
                + " .monaco-list-row:hover { background-color:  "
                + e.listHoverBackground + "; }"), e.listHoverForeground
            && t.push(".monaco-list." + this.idPrefix
                + " .monaco-list-row:hover { color:  " + e.listHoverForeground
                + "; }"), e.listSelectionOutline && t.push(
                ".monaco-list." + this.idPrefix
                + " .monaco-list-row.selected { outline: 1px dotted "
                + e.listSelectionOutline
                + "; outline-offset: -1px; }"), e.listFocusOutline && t.push(
                ".monaco-list." + this.idPrefix
                + ":focus .monaco-list-row.focused { outline: 1px solid "
                + e.listFocusOutline
                + "; outline-offset: -1px; }"), e.listInactiveFocusOutline
            && t.push(".monaco-list." + this.idPrefix
                + " .monaco-list-row.focused { outline: 1px dotted "
                + e.listInactiveFocusOutline
                + "; outline-offset: -1px; }"), e.listHoverOutline && t.push(
                ".monaco-list." + this.idPrefix
                + " .monaco-list-row:hover { outline: 1px dashed "
                + e.listHoverOutline
                + "; outline-offset: -1px; }"), this.styleElement.innerHTML = t.join(
                "\n")
          }, e.prototype.toListEvent = function (e) {
            var t = this, n = e.indexes;
            return {
              indexes: n, elements: n.map(function (e) {
                return t.view.element(e)
              })
            }
          }, e.prototype._onFocusChange = function () {
            var e = this.focus.get();
            e.length > 0 ? this.view.domNode.setAttribute(
                    "aria-activedescendant", this.getElementDomId(e[0]))
                : this.view.domNode.removeAttribute(
                    "aria-activedescendant"), this.view.domNode.setAttribute("role",
                "tree"), a.toggleClass(this.view.domNode, "element-focused",
                e.length > 0)
          }, e.prototype._onSelectionChange = function () {
            var e = this.selection.get();
            a.toggleClass(this.view.domNode, "selection-none",
                0 === e.length), a.toggleClass(this.view.domNode,
                "selection-single", 1 === e.length), a.toggleClass(
                this.view.domNode, "selection-multiple", e.length > 1)
          }, e.prototype.dispose = function () {
            this._onDispose.fire(), this.disposables = n.dispose(
                this.disposables)
          }, e.InstanceCount = 0, v([s.memoize], e.prototype, "onFocusChange",
              null), v([s.memoize], e.prototype, "onSelectionChange", null), v(
              [s.memoize], e.prototype, "onOpen", null), v([s.memoize],
              e.prototype, "onPin", null), e
        }();
        t.List = A
      }), define(d[238],
      h([1, 0, 15, 28, 7, 3, 4, 139, 74, 9, 47, 65, 461, 107, 63, 48, 472, 448,
        11]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, v, _, y) {
        "use strict";

        function C(e) {
          try {
            e.parentElement.removeChild(e)
          } catch (e) {
          }
        }

        function b(e, t) {
          return !e && !t || !(!e || !t) && (e.accept === t.accept && (e.bubble
              === t.bubble && e.effect === t.effect))
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var w = function () {
          function e(e) {
            this.context = e, this._cache = {"": []}
          }

          return e.prototype.alloc = function (e) {
            var t = this.cache(e).pop();
            if (!t) {
              var n = document.createElement("div");
              n.className = "content";
              var i = document.createElement("div");
              i.appendChild(n), t = {
                element: i,
                templateId: e,
                templateData: this.context.renderer.renderTemplate(
                    this.context.tree, e, n)
              }
            }
            return t
          }, e.prototype.release = function (e, t) {
            C(t.element), this.cache(e).push(t)
          }, e.prototype.cache = function (e) {
            return this._cache[e] || (this._cache[e] = [])
          }, e.prototype.garbageCollect = function () {
            var e = this;
            this._cache && Object.keys(this._cache).forEach(function (t) {
              e._cache[t].forEach(function (n) {
                e.context.renderer.disposeTemplate(e.context.tree, t,
                    n.templateData), n.element = null, n.templateData = null
              }), delete e._cache[t]
            })
          }, e.prototype.dispose = function () {
            this.garbageCollect(), this._cache = null, this.context = null
          }, e
        }();
        t.RowCache = w;
        var S = function () {
          function e(e, t) {
            var n = this;
            this.context = e, this.model = t, this.id = this.model.id, this.row = null, this.top = 0, this.height = t.getHeight(), this._styles = {}, t.getAllTraits().forEach(
                function (e) {
                  return n._styles[e] = !0
                }), t.isExpanded() && this.addClass("expanded")
          }

          return Object.defineProperty(e.prototype, "expanded", {
            set: function (e) {
              e ? this.addClass("expanded") : this.removeClass("expanded")
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "loading", {
            set: function (e) {
              e ? this.addClass("loading") : this.removeClass("loading")
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "draggable", {
            get: function () {
              return this._draggable
            }, set: function (e) {
              this._draggable = e, this.render(!0)
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "dropTarget", {
            set: function (e) {
              e ? this.addClass("drop-target") : this.removeClass("drop-target")
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "element", {
            get: function () {
              return this.row && this.row.element
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "templateId", {
            get: function () {
              return this._templateId
                  || (this._templateId = this.context.renderer.getTemplateId
                      && this.context.renderer.getTemplateId(this.context.tree,
                          this.model.getElement()))
            }, enumerable: !0, configurable: !0
          }), e.prototype.addClass = function (e) {
            this._styles[e] = !0, this.render(!0)
          }, e.prototype.removeClass = function (e) {
            delete this._styles[e], this.render(!0)
          }, e.prototype.render = function (e) {
            var t = this;
            if (void 0 === e && (e = !1), this.model && this.element) {
              var n = ["monaco-tree-row"];
              n.push.apply(n,
                  Object.keys(this._styles)), this.model.hasChildren()
              && n.push("has-children"), this.element.className = n.join(
                  " "), this.element.draggable = this.draggable, this.element.style.height = this.height
                  + "px", this.element.setAttribute("role", "treeitem");
              var i = this.context.accessibilityProvider,
                  o = i.getAriaLabel(this.context.tree,
                      this.model.getElement());
              if (o && this.element.setAttribute("aria-label", o), i.getPosInSet
              && i.getSetSize && (this.element.setAttribute("aria-setsize",
                  i.getSetSize()), this.element.setAttribute("aria-posinset",
                  i.getPosInSet(this.context.tree,
                      this.model.getElement()))), this.model.hasTrait(
                  "focused")) {
                var r = l.safeBtoa(this.model.id);
                this.element.setAttribute("aria-selected",
                    "true"), this.element.setAttribute("id", r)
              } else {
                this.element.setAttribute("aria-selected",
                    "false"), this.element.removeAttribute("id");
              }
              this.model.hasChildren() ? this.element.setAttribute(
                      "aria-expanded", String(!!this.model.isExpanded()))
                  : this.element.removeAttribute(
                      "aria-expanded"), this.element.setAttribute("aria-level",
                  String(
                      this.model.getDepth())), this.context.options.paddingOnRow
                  ? this.element.style.paddingLeft = this.context.options.twistiePixels
                      + (this.model.getDepth() - 1)
                      * this.context.options.indentPixels + "px"
                  : (this.element.style.paddingLeft = (this.model.getDepth()
                          - 1) * this.context.options.indentPixels
                      + "px", this.row.element.firstElementChild.style.paddingLeft = this.context.options.twistiePixels
                      + "px");
              var a = this.context.dnd.getDragURI(this.context.tree,
                  this.model.getElement());
              a !== this.uri && (this.unbindDragStart
              && (this.unbindDragStart.dispose(), this.unbindDragStart = null), a
                  ? (this.uri = a, this.draggable = !0, this.unbindDragStart = s.addDisposableListener(
                      this.element, "dragstart", function (e) {
                        t.onDragStart(e)
                      })) : this.uri = null), e
              || this.context.renderer.renderElement(this.context.tree,
                  this.model.getElement(), this.templateId,
                  this.row.templateData)
            }
          }, e.prototype.insertInDOM = function (e, t) {
            if (this.row || (this.row = this.context.cache.alloc(
                this.templateId), this.element[L.BINDING] = this), !this.element.parentElement) {
              if (null === t) {
                e.appendChild(this.element);
              } else {
                try {
                  e.insertBefore(this.element, t)
                } catch (t) {
                  console.warn(
                      "Failed to locate previous tree element"), e.appendChild(
                      this.element)
                }
              }
              this.render()
            }
          }, e.prototype.removeFromDOM = function () {
            this.row && (this.unbindDragStart
            && (this.unbindDragStart.dispose(), this.unbindDragStart = null), this.uri = null, this.element[L.BINDING] = null, this.context.cache.release(
                this.templateId, this.row), this.row = null)
          }, e.prototype.dispose = function () {
            this.row = null, this.model = null
          }, e
        }();
        t.ViewItem = S;
        var E = function (e) {
          function t(t, n, i) {
            var o = e.call(this, t, n) || this;
            return o.row = {element: i, templateData: null, templateId: null}, o
          }

          return f(t, e), t.prototype.render = function () {
            if (this.model && this.element) {
              var e = ["monaco-tree-wrapper"];
              e.push.apply(e,
                  Object.keys(this._styles)), this.model.hasChildren()
              && e.push("has-children"), this.element.className = e.join(" ")
            }
          }, t.prototype.insertInDOM = function (e, t) {
          }, t.prototype.removeFromDOM = function () {
          }, t
        }(S), L = function (e) {
          function t(n, o) {
            var r = e.call(this) || this;
            r.lastClickTimeStamp = 0, r.isRefreshing = !1, r.refreshingPreviousChildrenIds = {}, r._onDOMFocus = new y.Emitter, r._onDOMBlur = new y.Emitter, t.counter++, r.instance = t.counter, r.context = {
              dataSource: n.dataSource,
              renderer: n.renderer,
              controller: n.controller,
              dnd: n.dnd,
              filter: n.filter,
              sorter: n.sorter,
              tree: n.tree,
              accessibilityProvider: n.accessibilityProvider,
              options: n.options,
              cache: new w(n)
            }, r.modelListeners = [], r.viewListeners = [], r.dragAndDropListeners = [], r.model = null, r.items = {}, r.domNode = document.createElement(
                "div"), r.domNode.className = "monaco-tree no-focused-item monaco-tree-instance-"
                + r.instance, r.domNode.tabIndex = 0, r.styleElement = s.createStyleSheet(
                r.domNode), r.domNode.setAttribute("role",
                "tree"), r.context.options.ariaLabel && r.domNode.setAttribute(
                "aria-label",
                r.context.options.ariaLabel), r.context.options.alwaysFocused
            && s.addClass(r.domNode, "focused"), r.context.options.paddingOnRow
            || s.addClass(r.domNode,
                "no-row-padding"), r.wrapper = document.createElement(
                "div"), r.wrapper.className = "monaco-tree-wrapper", r.scrollableElement = new g.ScrollableElement(
                r.wrapper, {
                  alwaysConsumeMouseWheel: !0,
                  horizontal: m.ScrollbarVisibility.Hidden,
                  vertical: void 0 !== n.options.verticalScrollMode
                      ? n.options.verticalScrollMode
                      : m.ScrollbarVisibility.Auto,
                  useShadows: n.options.useShadows
                }), r.scrollableElement.onScroll(function (e) {
              r.render(e.scrollTop, e.height), r.emit("scroll", e)
            }), i.isIE
                ? (r.wrapper.style.msTouchAction = "none", r.wrapper.style.msContentZooming = "none")
                : r.wrapperGesture = new u.Gesture(
                    r.wrapper), r.rowsContainer = document.createElement(
                "div"), r.rowsContainer.className = "monaco-tree-rows", n.options.showTwistie
            && (r.rowsContainer.className += " show-twisties");
            var a = s.trackFocus(r.domNode);
            return a.addFocusListener(function () {
              return r.onFocus()
            }), a.addBlurListener(function () {
              return r.onBlur()
            }), r.viewListeners.push(a), r.viewListeners.push(
                s.addDisposableListener(r.domNode, "keydown", function (e) {
                  return r.onKeyDown(e)
                })), r.viewListeners.push(
                s.addDisposableListener(r.domNode, "keyup", function (e) {
                  return r.onKeyUp(e)
                })), r.viewListeners.push(
                s.addDisposableListener(r.domNode, "mousedown", function (e) {
                  return r.onMouseDown(e)
                })), r.viewListeners.push(
                s.addDisposableListener(r.domNode, "mouseup", function (e) {
                  return r.onMouseUp(e)
                })), r.viewListeners.push(
                s.addDisposableListener(r.wrapper, "click", function (e) {
                  return r.onClick(e)
                })), r.viewListeners.push(
                s.addDisposableListener(r.wrapper, "auxclick", function (e) {
                  return r.onClick(e)
                })), r.viewListeners.push(
                s.addDisposableListener(r.domNode, "contextmenu", function (e) {
                  return r.onContextMenu(e)
                })), r.viewListeners.push(
                s.addDisposableListener(r.wrapper, u.EventType.Tap,
                    function (e) {
                      return r.onTap(e)
                    })), r.viewListeners.push(
                s.addDisposableListener(r.wrapper, u.EventType.Change,
                    function (e) {
                      return r.onTouchChange(e)
                    })), i.isIE && (r.viewListeners.push(
                s.addDisposableListener(r.wrapper, "MSPointerDown",
                    function (e) {
                      return r.onMsPointerDown(e)
                    })), r.viewListeners.push(
                s.addDisposableListener(r.wrapper, "MSGestureTap",
                    function (e) {
                      return r.onMsGestureTap(e)
                    })), r.viewListeners.push(
                s.addDisposableThrottledListener(r.wrapper, "MSGestureChange",
                    function (e) {
                      return r.onThrottledMsGestureChange(e)
                    }, function (e, t) {
                      t.stopPropagation(), t.preventDefault();
                      var n = {
                        translationY: t.translationY,
                        translationX: t.translationX
                      };
                      return e
                      && (n.translationY += e.translationY, n.translationX += e.translationX), n
                    }))), r.viewListeners.push(
                s.addDisposableListener(window, "dragover", function (e) {
                  return r.onDragOver(e)
                })), r.viewListeners.push(
                s.addDisposableListener(r.wrapper, "drop", function (e) {
                  return r.onDrop(e)
                })), r.viewListeners.push(
                s.addDisposableListener(window, "dragend", function (e) {
                  return r.onDragEnd(e)
                })), r.viewListeners.push(
                s.addDisposableListener(window, "dragleave", function (e) {
                  return r.onDragOver(e)
                })), r.wrapper.appendChild(
                r.rowsContainer), r.domNode.appendChild(
                r.scrollableElement.getDomNode()), o.appendChild(
                r.domNode), r.lastRenderTop = 0, r.lastRenderHeight = 0, r.didJustPressContextMenuKey = !1, r.currentDropTarget = null, r.currentDropTargets = [], r.shouldInvalidateDropReaction = !1, r.dragAndDropScrollInterval = null, r.dragAndDropScrollTimeout = null, r.onHiddenScrollTop = null, r.onRowsChanged(), r.layout(), r.setupMSGesture(), r.applyStyles(
                n.options), r
          }

          return f(t, e), Object.defineProperty(t.prototype, "onDOMFocus", {
            get: function () {
              return this._onDOMFocus.event
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "onDOMBlur", {
            get: function () {
              return this._onDOMBlur.event
            }, enumerable: !0, configurable: !0
          }), t.prototype.applyStyles = function (e) {
            var t = [];
            e.listFocusBackground && t.push(
                ".monaco-tree.monaco-tree-instance-" + this.instance
                + ".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) { background-color: "
                + e.listFocusBackground + "; }"), e.listFocusForeground
            && t.push(".monaco-tree.monaco-tree-instance-" + this.instance
                + ".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) { color: "
                + e.listFocusForeground
                + "; }"), e.listActiveSelectionBackground && t.push(
                ".monaco-tree.monaco-tree-instance-" + this.instance
                + ".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: "
                + e.listActiveSelectionBackground
                + "; }"), e.listActiveSelectionForeground && t.push(
                ".monaco-tree.monaco-tree-instance-" + this.instance
                + ".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: "
                + e.listActiveSelectionForeground
                + "; }"), e.listFocusAndSelectionBackground && t.push(
                "\n\t\t\t\t.monaco-tree-drag-image,\n\t\t\t\t.monaco-tree.monaco-tree-instance-"
                + this.instance
                + ".focused .monaco-tree-rows > .monaco-tree-row.focused.selected:not(.highlighted) { background-color: "
                + e.listFocusAndSelectionBackground
                + "; }\n\t\t\t"), e.listFocusAndSelectionForeground && t.push(
                "\n\t\t\t\t.monaco-tree-drag-image,\n\t\t\t\t.monaco-tree.monaco-tree-instance-"
                + this.instance
                + ".focused .monaco-tree-rows > .monaco-tree-row.focused.selected:not(.highlighted) { color: "
                + e.listFocusAndSelectionForeground
                + "; }\n\t\t\t"), e.listInactiveSelectionBackground && t.push(
                ".monaco-tree.monaco-tree-instance-" + this.instance
                + " .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: "
                + e.listInactiveSelectionBackground
                + "; }"), e.listInactiveSelectionForeground && t.push(
                ".monaco-tree.monaco-tree-instance-" + this.instance
                + " .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: "
                + e.listInactiveSelectionForeground
                + "; }"), e.listHoverBackground && t.push(
                ".monaco-tree.monaco-tree-instance-" + this.instance
                + " .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) { background-color: "
                + e.listHoverBackground + "; }"), e.listHoverForeground
            && t.push(".monaco-tree.monaco-tree-instance-" + this.instance
                + " .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) { color: "
                + e.listHoverForeground + "; }"), e.listDropBackground
            && t.push(
                "\n\t\t\t\t.monaco-tree.monaco-tree-instance-" + this.instance
                + " .monaco-tree-wrapper.drop-target,\n\t\t\t\t.monaco-tree.monaco-tree-instance-"
                + this.instance
                + " .monaco-tree-rows > .monaco-tree-row.drop-target { background-color: "
                + e.listDropBackground
                + " !important; color: inherit !important; }\n\t\t\t"), e.listFocusOutline
            && t.push(
                "\n\t\t\t\t.monaco-tree-drag-image\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ border: 1px solid "
                + e.listFocusOutline
                + "; background: #000; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"
                + this.instance
                + " .monaco-tree-rows > .monaco-tree-row \t\t\t\t\t\t\t\t\t\t\t\t\t\t{ border: 1px solid transparent; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"
                + this.instance
                + ".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) \t\t\t\t\t\t{ border: 1px dotted "
                + e.listFocusOutline
                + "; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"
                + this.instance
                + ".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) \t\t\t\t\t\t{ border: 1px solid "
                + e.listFocusOutline
                + "; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"
                + this.instance
                + " .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted)  \t\t\t\t\t\t\t{ border: 1px solid "
                + e.listFocusOutline
                + "; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"
                + this.instance
                + " .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused)  \t{ border: 1px dashed "
                + e.listFocusOutline
                + "; }\n\t\t\t\t.monaco-tree.monaco-tree-instance-"
                + this.instance
                + " .monaco-tree-wrapper.drop-target,\n\t\t\t\t.monaco-tree.monaco-tree-instance-"
                + this.instance
                + " .monaco-tree-rows > .monaco-tree-row.drop-target\t\t\t\t\t\t\t\t\t\t\t\t{ border: 1px dashed "
                + e.listFocusOutline
                + "; }\n\t\t\t"), this.styleElement.innerHTML = t.join("\n")
          }, t.prototype.createViewItem = function (e) {
            return new S(this.context, e)
          }, t.prototype.getHTMLElement = function () {
            return this.domNode
          }, t.prototype.focus = function () {
            this.domNode.focus()
          }, t.prototype.isFocused = function () {
            return document.activeElement === this.domNode
          }, t.prototype.blur = function () {
            this.domNode.blur()
          }, t.prototype.onVisible = function () {
            this.scrollTop = this.onHiddenScrollTop, this.onHiddenScrollTop = null, this.setupMSGesture()
          }, t.prototype.setupMSGesture = function () {
            var e = this;
            window.MSGesture && (this.msGesture = new MSGesture, setTimeout(
                function () {
                  return e.msGesture.target = e.wrapper
                }, 100))
          }, t.prototype.onHidden = function () {
            this.onHiddenScrollTop = this.scrollTop
          }, t.prototype.isTreeVisible = function () {
            return null === this.onHiddenScrollTop
          }, t.prototype.layout = function (e) {
            this.isTreeVisible() && (this.viewHeight = e || s.getContentHeight(
                this.wrapper))
          }, t.prototype.render = function (e, t) {
            var n, i, o = e, r = e + t,
                s = this.lastRenderTop + this.lastRenderHeight;
            for (n = this.indexAfter(r) - 1, i = this.indexAt(Math.max(s, o));
                n >= i; n--) {
              this.insertItemInDOM(this.itemAtIndex(n));
            }
            for (n = Math.min(this.indexAt(this.lastRenderTop),
                this.indexAfter(r)) - 1, i = this.indexAt(o); n >= i;
                n--) {
              this.insertItemInDOM(this.itemAtIndex(n));
            }
            for (n = this.indexAt(this.lastRenderTop), i = Math.min(
                this.indexAt(o), this.indexAfter(s)); n < i;
                n++) {
              this.removeItemFromDOM(this.itemAtIndex(n));
            }
            for (n = Math.max(this.indexAfter(r),
                this.indexAt(this.lastRenderTop)), i = this.indexAfter(s);
                n < i; n++) {
              this.removeItemFromDOM(this.itemAtIndex(n));
            }
            var a = this.itemAtIndex(this.indexAt(o));
            a && (this.rowsContainer.style.top = a.top - o
                + "px"), this.lastRenderTop = o, this.lastRenderHeight = r - o
          }, t.prototype.setModel = function (e) {
            var t = this;
            this.releaseModel(), this.model = e, this.modelListeners.push(
                this.model.addBulkListener(function (e) {
                  return t.onModelEvents(e)
                }))
          }, t.prototype.onModelEvents = function (e) {
            for (var t = [], n = 0, i = e.length; n < i; n++) {
              var o = e[n], r = o.data;
              switch (o.type) {
                case"refreshing":
                  this.onRefreshing();
                  break;
                case"refreshed":
                  this.onRefreshed();
                  break;
                case"clearingInput":
                  this.onClearingInput(r);
                  break;
                case"setInput":
                  this.onSetInput(r);
                  break;
                case"item:childrenRefreshing":
                  this.onItemChildrenRefreshing(r);
                  break;
                case"item:childrenRefreshed":
                  this.onItemChildrenRefreshed(r);
                  break;
                case"item:refresh":
                  t.push(r.item);
                  break;
                case"item:expanding":
                  this.onItemExpanding(r);
                  break;
                case"item:expanded":
                  this.onItemExpanded(r);
                  break;
                case"item:collapsing":
                  this.onItemCollapsing(r);
                  break;
                case"item:reveal":
                  this.onItemReveal(r);
                  break;
                case"item:addTrait":
                  this.onItemAddTrait(r);
                  break;
                case"item:removeTrait":
                  this.onItemRemoveTrait(r);
                  break;
                case"focus":
                  this.onModelFocusChange()
              }
            }
            t.length > 0 && this.onItemsRefresh(t)
          }, t.prototype.onRefreshing = function () {
            this.isRefreshing = !0
          }, t.prototype.onRefreshed = function () {
            this.isRefreshing = !1, this.onRowsChanged()
          }, t.prototype.onRowsChanged = function (e) {
            void 0 === e && (e = this.scrollTop), this.isRefreshing
            || (this.scrollTop = e)
          }, t.prototype.focusNextPage = function (e) {
            var t = this, n = this.indexAt(this.scrollTop + this.viewHeight);
            n = 0 === n ? 0 : n - 1;
            var i = this.itemAtIndex(n).model.getElement();
            if (this.model.getFocus() !== i) {
              this.model.setFocus(i, e);
            } else {
              var o = this.scrollTop;
              this.scrollTop += this.viewHeight, this.scrollTop !== o
              && setTimeout(function () {
                t.focusNextPage(e)
              }, 0)
            }
          }, t.prototype.focusPreviousPage = function (e) {
            var t, n = this;
            t = 0 === this.scrollTop ? this.indexAt(this.scrollTop)
                : this.indexAfter(this.scrollTop - 1);
            var i = this.itemAtIndex(t).model.getElement();
            if (this.model.getFocus() !== i) {
              this.model.setFocus(i, e);
            } else {
              var o = this.scrollTop;
              this.scrollTop -= this.viewHeight, this.scrollTop !== o
              && setTimeout(function () {
                n.focusPreviousPage(e)
              }, 0)
            }
          }, Object.defineProperty(t.prototype, "viewHeight", {
            get: function () {
              return this.scrollableElement.getScrollState().height
            }, set: function (e) {
              this.scrollableElement.updateState(
                  {height: e, scrollHeight: this.getTotalHeight()})
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "scrollTop", {
            get: function () {
              return this.scrollableElement.getScrollState().scrollTop
            }, set: function (e) {
              this.scrollableElement.updateState(
                  {scrollTop: e, scrollHeight: this.getTotalHeight()})
            }, enumerable: !0, configurable: !0
          }), t.prototype.getScrollPosition = function () {
            var e = this.getTotalHeight() - this.viewHeight;
            return e <= 0 ? 0 : this.scrollTop / e
          }, t.prototype.setScrollPosition = function (e) {
            var t = this.getTotalHeight() - this.viewHeight;
            this.scrollTop = t * e
          }, t.prototype.onClearingInput = function (e) {
            var t = e.item;
            t && (this.onRemoveItems(
                new p.MappedIterator(t.getNavigator(), function (e) {
                  return e && e.id
                })), this.onRowsChanged())
          }, t.prototype.onSetInput = function (e) {
            this.context.cache.garbageCollect(), this.inputItem = new E(
                this.context, e.item, this.wrapper), this.emit(
                "viewItem:create", {item: this.inputItem.model})
          }, t.prototype.onItemChildrenRefreshing = function (e) {
            var n = e.item, i = this.items[n.id];
            if (i && (i.loadingTimer = setTimeout(function () {
              i.loadingTimer = 0, i.loading = !0
            }, t.LOADING_DECORATION_DELAY)), !e.isNested) {
              for (var o, r = [], s = n.getNavigator(); o = s.next();) {
                r.push(
                    o.id);
              }
              this.refreshingPreviousChildrenIds[n.id] = r
            }
          }, t.prototype.onItemChildrenRefreshed = function (e) {
            var t = this, n = e.item, i = this.items[n.id];
            if (i && (i.loadingTimer && (clearTimeout(
                i.loadingTimer), i.loadingTimer = 0), i.loading = !1), !e.isNested) {
              for (var o, r = this.refreshingPreviousChildrenIds[n.id], s = [],
                  u = n.getNavigator(); o = u.next();) {
                s.push(o);
              }
              var l = Math.abs(r.length - s.length) > 1e3, c = void 0,
                  d = void 0;
              if (l || (d = (c = new a.LcsDiff({
                getLength: function () {
                  return r.length
                }, getElementHash: function (e) {
                  return r[e]
                }
              }, {
                getLength: function () {
                  return s.length
                }, getElementHash: function (e) {
                  return s[e].id
                }
              }, null).ComputeDiff(!1)).some(function (e) {
                if (e.modifiedLength > 0) {
                  for (var n = e.modifiedStart,
                      i = e.modifiedStart + e.modifiedLength; n < i;
                      n++) {
                    if (t.items.hasOwnProperty(s[n].id)) {
                      return !0;
                    }
                  }
                }
                return !1
              })), !l && !d && c.length < 50) {
                for (var h = 0, f = c.length;
                    h < f; h++) {
                  var g = c[h];
                  if (g.originalLength > 0 && this.onRemoveItems(
                      new p.ArrayIterator(r, g.originalStart,
                          g.originalStart + g.originalLength)), g.modifiedLength
                  > 0) {
                    var m = s[g.modifiedStart - 1] || n;
                    m = m.getDepth() > 0 ? m : null, this.onInsertItems(
                        new p.ArrayIterator(s, g.modifiedStart,
                            g.modifiedStart + g.modifiedLength),
                        m ? m.id : null)
                  }
                }
              } else {
                (l || c.length) && (this.onRemoveItems(
                    new p.ArrayIterator(r)), this.onInsertItems(
                    new p.ArrayIterator(s), n.getDepth() > 0 ? n.id : null));
              }
              (l || c.length) && this.onRowsChanged()
            }
          }, t.prototype.onItemsRefresh = function (e) {
            var t = this;
            this.onRefreshItemSet(e.filter(function (e) {
              return t.items.hasOwnProperty(e.id)
            })), this.onRowsChanged()
          }, t.prototype.onItemExpanding = function (e) {
            var t = this.items[e.item.id];
            t && (t.expanded = !0)
          }, t.prototype.onItemExpanded = function (e) {
            var t = e.item, n = this.items[t.id];
            if (n) {
              n.expanded = !0;
              var i = this.onInsertItems(t.getNavigator(), t.id),
                  o = this.scrollTop;
              n.top + n.height <= this.scrollTop
              && (o += i), this.onRowsChanged(o)
            }
          }, t.prototype.onItemCollapsing = function (e) {
            var t = e.item, n = this.items[t.id];
            n && (n.expanded = !1, this.onRemoveItems(
                new p.MappedIterator(t.getNavigator(), function (e) {
                  return e && e.id
                })), this.onRowsChanged())
          }, t.prototype.getRelativeTop = function (e) {
            if (e && e.isVisible()) {
              var t = this.items[e.id];
              if (t) {
                return (t.top - this.scrollTop) / (this.viewHeight
                    - t.height)
              }
            }
            return -1
          }, t.prototype.onItemReveal = function (e) {
            var t = e.item, n = e.relativeTop, i = this.items[t.id];
            if (i) {
              if (null !== n) {
                n = (n = n < 0 ? 0 : n) > 1 ? 1 : n;
                var o = i.height - this.viewHeight;
                this.scrollTop = o * n + i.top
              } else {
                var r = i.top + i.height, s = this.scrollTop + this.viewHeight;
                i.top < this.scrollTop ? this.scrollTop = i.top : r >= s
                    && (this.scrollTop = r - this.viewHeight)
              }
            }
          }, t.prototype.onItemAddTrait = function (e) {
            var t = e.item, n = e.trait, i = this.items[t.id];
            i && i.addClass(n), "highlighted" === n && (s.addClass(this.domNode,
                n), i
            && (this.highlightedItemWasDraggable = !!i.draggable, i.draggable
            && (i.draggable = !1)))
          }, t.prototype.onItemRemoveTrait = function (e) {
            var t = e.item, n = e.trait, i = this.items[t.id];
            i && i.removeClass(n), "highlighted" === n && (s.removeClass(
                this.domNode, n), this.highlightedItemWasDraggable
            && (i.draggable = !0), this.highlightedItemWasDraggable = !1)
          }, t.prototype.onModelFocusChange = function () {
            var e = this.model && this.model.getFocus();
            s.toggleClass(this.domNode, "no-focused-item", !e), e
                ? this.domNode.setAttribute("aria-activedescendant", l.safeBtoa(
                    this.context.dataSource.getId(this.context.tree, e)))
                : this.domNode.removeAttribute("aria-activedescendant")
          }, t.prototype.onInsertItem = function (e) {
            var t = this;
            e.onDragStart = function (n) {
              t.onDragStart(e, n)
            }, e.needsRender = !0, this.refreshViewItem(e), this.items[e.id] = e
          }, t.prototype.onRefreshItem = function (e, t) {
            void 0 === t && (t = !1), e.needsRender = e.needsRender
                || t, this.refreshViewItem(e)
          }, t.prototype.onRemoveItem = function (e) {
            this.removeItemFromDOM(e), e.dispose(), this.emit(
                "viewItem:dispose",
                {item: this.inputItem.model}), delete this.items[e.id]
          }, t.prototype.refreshViewItem = function (e) {
            e.render(), this.shouldBeRendered(e) ? this.insertItemInDOM(e)
                : this.removeItemFromDOM(e)
          }, t.prototype.onClick = function (e) {
            if (!this.lastPointerType || "mouse" === this.lastPointerType) {
              var t = new c.StandardMouseEvent(e),
                  n = this.getItemAround(t.target);
              n && (i.isIE && Date.now() - this.lastClickTimeStamp < 300
              && (t.detail = 2), this.lastClickTimeStamp = Date.now(), this.context.controller.onClick(
                  this.context.tree, n.model.getElement(), t))
            }
          }, t.prototype.onMouseDown = function (e) {
            if (this.didJustPressContextMenuKey = !1, this.context.controller.onMouseDown
            && (!this.lastPointerType || "mouse" === this.lastPointerType)) {
              var t = new c.StandardMouseEvent(e);
              if (!(t.ctrlKey && n.isNative && n.isMacintosh)) {
                var i = this.getItemAround(t.target);
                i && this.context.controller.onMouseDown(this.context.tree,
                    i.model.getElement(), t)
              }
            }
          }, t.prototype.onMouseUp = function (e) {
            if (this.context.controller.onMouseUp && (!this.lastPointerType
                || "mouse" === this.lastPointerType)) {
              var t = new c.StandardMouseEvent(e);
              if (!(t.ctrlKey && n.isNative && n.isMacintosh)) {
                var i = this.getItemAround(t.target);
                i && this.context.controller.onMouseUp(this.context.tree,
                    i.model.getElement(), t)
              }
            }
          }, t.prototype.onTap = function (e) {
            var t = this.getItemAround(e.initialTarget);
            t && this.context.controller.onTap(this.context.tree,
                t.model.getElement(), e)
          }, t.prototype.onTouchChange = function (e) {
            e.preventDefault(), e.stopPropagation(), this.scrollTop -= e.translationY
          }, t.prototype.onContextMenu = function (e) {
            var t, n;
            if (e instanceof KeyboardEvent || this.didJustPressContextMenuKey) {
              this.didJustPressContextMenuKey = !1;
              var i = new d.StandardKeyboardEvent(e);
              if (!(n = this.model.getFocus())) {
                return;
              }
              var o = this.context.dataSource.getId(this.context.tree, n),
                  r = this.items[o], a = s.getDomNodePagePosition(r.element);
              t = new _.KeyboardContextMenuEvent(a.left + a.width, a.top, i)
            } else {
              var u = new c.StandardMouseEvent(e),
                  l = this.getItemAround(u.target);
              if (!l) {
                return;
              }
              n = l.model.getElement(), t = new _.MouseContextMenuEvent(u)
            }
            this.context.controller.onContextMenu(this.context.tree, n, t)
          }, t.prototype.onKeyDown = function (e) {
            var t = new d.StandardKeyboardEvent(e);
            this.didJustPressContextMenuKey = 58 === t.keyCode || t.shiftKey
                && 68 === t.keyCode, this.didJustPressContextMenuKey
            && (t.preventDefault(), t.stopPropagation()), t.target
            && t.target.tagName && "input" === t.target.tagName.toLowerCase()
            || this.context.controller.onKeyDown(this.context.tree, t)
          }, t.prototype.onKeyUp = function (e) {
            this.didJustPressContextMenuKey && this.onContextMenu(
                e), this.didJustPressContextMenuKey = !1, this.context.controller.onKeyUp(
                this.context.tree, new d.StandardKeyboardEvent(e))
          }, t.prototype.onDragStart = function (e, n) {
            if (!this.model.getHighlight()) {
              var i, o = e.model.getElement(), r = this.model.getSelection();
              if (i = r.indexOf(o) > -1 ? r
                  : [o], n.dataTransfer.effectAllowed = "copyMove", n.dataTransfer.setData(
                  "URL", e.uri), n.dataTransfer.setDragImage) {
                var s = void 0;
                s = this.context.dnd.getDragLabel
                    ? this.context.dnd.getDragLabel(this.context.tree, i)
                    : String(i.length);
                var a = document.createElement("div");
                a.className = "monaco-tree-drag-image", a.textContent = s, document.body.appendChild(
                    a), n.dataTransfer.setDragImage(a, -10, -10), setTimeout(
                    function () {
                      return document.body.removeChild(a)
                    }, 0)
              }
              this.currentDragAndDropData = new h.ElementsDragAndDropData(
                  i), t.currentExternalDragAndDropData = new h.ExternalElementsDragAndDropData(
                  i), this.context.dnd.onDragStart(this.context.tree,
                  this.currentDragAndDropData, new c.DragMouseEvent(n))
            }
          }, t.prototype.setupDragAndDropScrollInterval = function () {
            var e = this, t = s.getTopLeftOffset(this.wrapper).top;
            this.dragAndDropScrollInterval
            || (this.dragAndDropScrollInterval = window.setInterval(
                function () {
                  if (void 0 !== e.dragAndDropMouseY) {
                    var n = e.dragAndDropMouseY - t, i = 0,
                        o = e.viewHeight - 35;
                    n < 35 ? i = Math.max(-14, .2 * (n - 35)) : n > o
                        && (i = Math.min(14, .2 * (n - o))), e.scrollTop += i
                  }
                },
                10), this.cancelDragAndDropScrollTimeout(), this.dragAndDropScrollTimeout = window.setTimeout(
                function () {
                  e.cancelDragAndDropScrollInterval(), e.dragAndDropScrollTimeout = null
                }, 1e3))
          }, t.prototype.cancelDragAndDropScrollInterval = function () {
            this.dragAndDropScrollInterval && (window.clearInterval(
                this.dragAndDropScrollInterval), this.dragAndDropScrollInterval = null), this.cancelDragAndDropScrollTimeout()
          }, t.prototype.cancelDragAndDropScrollTimeout = function () {
            this.dragAndDropScrollTimeout && (window.clearTimeout(
                this.dragAndDropScrollTimeout), this.dragAndDropScrollTimeout = null)
          }, t.prototype.onDragOver = function (e) {
            var n = this, i = new c.DragMouseEvent(e),
                r = this.getItemAround(i.target);
            if (!r || 0 === i.posx && 0 === i.posy && i.browserEvent.type
                === s.EventType.DRAG_LEAVE) {
              return this.currentDropTarget
              && (this.currentDropTargets.forEach(function (e) {
                return e.dropTarget = !1
              }), this.currentDropTargets = [], this.currentDropPromise
              && (this.currentDropPromise.cancel(), this.currentDropPromise = null)), this.cancelDragAndDropScrollInterval(), this.currentDropTarget = null, this.currentDropElement = null, this.dragAndDropMouseY = null, !1;
            }
            if (this.setupDragAndDropScrollInterval(), this.dragAndDropMouseY = i.posy, !this.currentDragAndDropData) {
              if (t.currentExternalDragAndDropData) {
                this.currentDragAndDropData = t.currentExternalDragAndDropData;
              } else {
                if (!i.dataTransfer.types) {
                  return !1;
                }
                this.currentDragAndDropData = new h.DesktopDragAndDropData
              }
            }
            this.currentDragAndDropData.update(i);
            var a, u, l = r.model;
            do {
              if (a = l ? l.getElement()
                  : this.model.getInput(), !(u = this.context.dnd.onDragOver(
                  this.context.tree, this.currentDragAndDropData, a, i))
              || u.bubble !== _.DragOverBubble.BUBBLE_UP) {
                break;
              }
              l = l && l.parent
            } while (l);
            if (!l) {
              return this.currentDropElement = null, !1;
            }
            var d = u && u.accept;
            d
                ? (this.currentDropElement = l.getElement(), i.preventDefault(), i.dataTransfer.dropEffect = u.effect
                === _.DragOverEffect.COPY ? "copy" : "move")
                : this.currentDropElement = null;
            var p = l.id === this.inputItem.id ? this.inputItem
                : this.items[l.id];
            if ((this.shouldInvalidateDropReaction || this.currentDropTarget
                    !== p || !b(this.currentDropElementReaction, u))
                && (this.shouldInvalidateDropReaction = !1, this.currentDropTarget
                && (this.currentDropTargets.forEach(function (e) {
                  return e.dropTarget = !1
                }), this.currentDropTargets = [], this.currentDropPromise
                && (this.currentDropPromise.cancel(), this.currentDropPromise = null)), this.currentDropTarget = p, this.currentDropElementReaction = u, d)) {
              if (this.currentDropTarget
              && (this.currentDropTarget.dropTarget = !0, this.currentDropTargets.push(
                  this.currentDropTarget)), u.bubble
              === _.DragOverBubble.BUBBLE_DOWN) {
                for (var f,
                    g = l.getNavigator(); f = g.next();) {
                  (r = this.items[f.id])
                  && (r.dropTarget = !0, this.currentDropTargets.push(r));
                }
              }
              u.autoExpand && (this.currentDropPromise = o.TPromise.timeout(
                  500).then(function () {
                return n.context.tree.expand(n.currentDropElement)
              }).then(function () {
                return n.shouldInvalidateDropReaction = !0
              }))
            }
            return !0
          }, t.prototype.onDrop = function (e) {
            if (this.currentDropElement) {
              var t = new c.DragMouseEvent(e);
              t.preventDefault(), this.currentDragAndDropData.update(
                  t), this.context.dnd.drop(this.context.tree,
                  this.currentDragAndDropData, this.currentDropElement,
                  t), this.onDragEnd(e)
            }
            this.cancelDragAndDropScrollInterval()
          }, t.prototype.onDragEnd = function (e) {
            this.currentDropTarget && (this.currentDropTargets.forEach(
                function (e) {
                  return e.dropTarget = !1
                }), this.currentDropTargets = []), this.currentDropPromise
            && (this.currentDropPromise.cancel(), this.currentDropPromise = null), this.cancelDragAndDropScrollInterval(), this.currentDragAndDropData = null, t.currentExternalDragAndDropData = null, this.currentDropElement = null, this.currentDropTarget = null, this.dragAndDropMouseY = null
          }, t.prototype.onFocus = function () {
            this.context.options.alwaysFocused || s.addClass(this.domNode,
                "focused"), this._onDOMFocus.fire()
          }, t.prototype.onBlur = function () {
            this.context.options.alwaysFocused || s.removeClass(this.domNode,
                "focused"), this.domNode.removeAttribute(
                "aria-activedescendant"), this._onDOMBlur.fire()
          }, t.prototype.onMsPointerDown = function (e) {
            if (this.msGesture) {
              var t = e.pointerType;
              t !== (e.MSPOINTER_TYPE_MOUSE || "mouse") ? t
                  === (e.MSPOINTER_TYPE_TOUCH || "touch")
                  && (this.lastPointerType = "touch", e.stopPropagation(), e.preventDefault(), this.msGesture.addPointer(
                      e.pointerId)) : this.lastPointerType = "mouse"
            }
          }, t.prototype.onThrottledMsGestureChange = function (e) {
            this.scrollTop -= e.translationY
          }, t.prototype.onMsGestureTap = function (e) {
            e.initialTarget = document.elementFromPoint(e.clientX,
                e.clientY), this.onTap(e)
          }, t.prototype.insertItemInDOM = function (e) {
            var t = null, n = this.itemAfter(e);
            n && n.element && (t = n.element), e.insertInDOM(this.rowsContainer,
                t)
          }, t.prototype.removeItemFromDOM = function (e) {
            e && e.removeFromDOM()
          }, t.prototype.shouldBeRendered = function (e) {
            return e.top < this.lastRenderTop + this.lastRenderHeight && e.top
                + e.height > this.lastRenderTop
          }, t.prototype.getItemAround = function (e) {
            var n = this.inputItem;
            do {
              if (e[t.BINDING] && (n = e[t.BINDING]), e === this.wrapper || e
              === this.domNode) {
                return n;
              }
              if (e === document.body) {
                return null
              }
            } while (e = e.parentElement)
          }, t.prototype.releaseModel = function () {
            this.model && (this.modelListeners = r.dispose(
                this.modelListeners), this.model = null)
          }, t.prototype.dispose = function () {
            this.scrollableElement.dispose(), this.releaseModel(), this.modelListeners = null, this.viewListeners = r.dispose(
                this.viewListeners), this._onDOMFocus.dispose(), this._onDOMBlur.dispose(), this.domNode.parentNode
            && this.domNode.parentNode.removeChild(
                this.domNode), this.domNode = null, this.wrapperGesture
            && (this.wrapperGesture.dispose(), this.wrapperGesture = null), this.context.cache
            && (this.context.cache.dispose(), this.context.cache = null), e.prototype.dispose.call(
                this)
          }, t.BINDING = "monaco-tree-row", t.LOADING_DECORATION_DELAY = 800, t.counter = 0, t.currentExternalDragAndDropData = null, t
        }(v.HeightMap);
        t.TreeView = L
      }), define(d[249], h([5]), {}), define(d[259],
      h([1, 0, 3, 11, 41, 4, 33, 32, 26, 249]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0}), t.defaultStyles = {
          selectBackground: a.Color.fromHex("#3C3C3C"),
          selectForeground: a.Color.fromHex("#F0F0F0"),
          selectBorder: a.Color.fromHex("#3C3C3C")
        };
        var l = function (e) {
          function o(n, o, s) {
            void 0 === s && (s = u.clone(t.defaultStyles));
            var a = e.call(this) || this;
            return a.selectElement = document.createElement(
                "select"), a.selectElement.className = "select-box", a.setOptions(
                n,
                o), a.toDispose = [], a._onDidSelect = new i.Emitter, a.selectBackground = s.selectBackground, a.selectForeground = s.selectForeground, a.selectBorder = s.selectBorder, a.toDispose.push(
                r.addStandardDisposableListener(a.selectElement, "change",
                    function (e) {
                      a.selectElement.title = e.target.value, a._onDidSelect.fire(
                          {
                            index: e.target.selectedIndex,
                            selected: e.target.value
                          })
                    })), a.toDispose.push(
                r.addStandardDisposableListener(a.selectElement, "keydown",
                    function (e) {
                      (e.equals(10) || e.equals(3)) && e.stopPropagation()
                    })), a
          }

          return f(o, e), Object.defineProperty(o.prototype, "onDidSelect", {
            get: function () {
              return this._onDidSelect.event
            }, enumerable: !0, configurable: !0
          }), o.prototype.setOptions = function (e, t, n) {
            var i = this;
            if (!this.options || !s.equals(this.options, e)) {
              this.options = e, this.selectElement.options.length = 0;
              var o = 0;
              this.options.forEach(function (e) {
                i.selectElement.add(i.createOption(e, n === o++))
              })
            }
            this.select(t)
          }, o.prototype.select = function (e) {
            e >= 0 && e < this.options.length ? this.selected = e
                : this.selected < 0
                && (this.selected = 0), this.selectElement.selectedIndex = this.selected, this.selectElement.title = this.options[this.selected]
          }, o.prototype.focus = function () {
            this.selectElement && this.selectElement.focus()
          }, o.prototype.blur = function () {
            this.selectElement && this.selectElement.blur()
          }, o.prototype.render = function (e) {
            this.container = e, r.addClass(e,
                "select-container"), e.appendChild(
                this.selectElement), this.setOptions(this.options,
                this.selected), this.applyStyles()
          }, o.prototype.style = function (e) {
            this.selectBackground = e.selectBackground, this.selectForeground = e.selectForeground, this.selectBorder = e.selectBorder, this.applyStyles()
          }, o.prototype.applyStyles = function () {
            if (this.selectElement) {
              var e = this.selectBackground ? this.selectBackground.toString()
                      : null,
                  t = this.selectForeground ? this.selectForeground.toString()
                      : null,
                  n = this.selectBorder ? this.selectBorder.toString() : null;
              this.selectElement.style.backgroundColor = e, this.selectElement.style.color = t, this.selectElement.style.borderColor = n
            }
          }, o.prototype.createOption = function (e, t) {
            var n = document.createElement("option");
            return n.value = e, n.text = e, n.disabled = t, n
          }, o.prototype.dispose = function () {
            this.toDispose = n.dispose(
                this.toDispose), e.prototype.dispose.call(this)
          }, o
        }(o.Widget);
        t.SelectBox = l
      }), define(d[260], h([5]), {}), define(d[261], h([5]), {}), define(d[270],
      h([5]), {}), define(d[274], h([5]), {}), define(d[277], h([5]),
      {}), define(d[278], h([5]), {}), define(d[279], h([5]), {}), define(
      d[280], h([5]), {}), define(d[283], h([5]), {}), define(d[286], h([5]),
      {}), define(d[288], h([5]), {}), define(d[291], h([5]), {}), define(
      d[294], h([5]), {}), define(d[296], h([5]), {}), define(d[299], h([5]),
      {}), define(d[300], h([5]), {}), define(d[306], h([5]), {}), define(
      d[307], h([5]), {}), define(d[308], h([5]), {}), define(d[309], h([5]),
      {}), define(d[310], h([5]), {}), define(d[312], h([5]), {}), define(
      d[313], h([5]), {}), define(d[314], h([5]), {}), define(d[315], h([5]),
      {}), define(d[316], h([5]), {}), define(d[325], h([5]), {}), define(
      d[327], h([5]), {}), define(d[328], h([5]), {}), define(d[171], h([5]),
      {}), define(d[335], h([5]), {}), define(d[366], h([5]), {}), define(
      d[388], h([5]), {}), define(d[389], h([5]), {}), define(d[390], h([5]),
      {}), define(d[391], h([5]), {}), define(d[392], h([5]), {}), define(
      d[393], h([5]), {}), define(d[394], h([5]), {}), define(d[395], h([5]),
      {}), define(d[396], h([5]), {}), define(d[399], h([5]), {}), define(
      d[400], h([5]), {}), define(d[402], h([5]), {}), define(d[403], h([5]),
      {}), define(d[404], h([5]), {}), define(d[405], h([5]), {}), define(
      d[408], h([5]), {}), define(d[409], h([5]), {}), define(d[410], h([1, 0]),
      function (e, t) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        !function (e) {
          e[e.Regular = 0] = "Regular", e[e.Italic = 1] = "Italic", e[e.Bold = 2] = "Bold"
        }(t.CharWidthRequestType || (t.CharWidthRequestType = {}));
        var n = function () {
          function e(e, t) {
            this.chr = e, this.type = t, this.width = 0
          }

          return e.prototype.fulfill = function (e) {
            this.width = e
          }, e
        }();
        t.CharWidthRequest = n;
        var i = function () {
          function e(e, t) {
            this._bareFontInfo = e, this._requests = t, this._container = null, this._testElements = null
          }

          return e.prototype.read = function () {
            this._createDomElements(), document.body.appendChild(
                this._container), this._readFromDomElements(), document.body.removeChild(
                this._container), this._container = null, this._testElements = null
          }, e.prototype._createDomElements = function () {
            var t = document.createElement("div");
            t.style.position = "absolute", t.style.top = "-50000px", t.style.width = "50000px";
            var n = document.createElement("div");
            n.style.fontFamily = this._bareFontInfo.fontFamily, n.style.fontWeight = this._bareFontInfo.fontWeight, n.style.fontSize = this._bareFontInfo.fontSize
                + "px", n.style.lineHeight = this._bareFontInfo.lineHeight
                + "px", n.style.letterSpacing = this._bareFontInfo.letterSpacing
                + "px", t.appendChild(n);
            var i = document.createElement("div");
            i.style.fontFamily = this._bareFontInfo.fontFamily, i.style.fontWeight = "bold", i.style.fontSize = this._bareFontInfo.fontSize
                + "px", i.style.lineHeight = this._bareFontInfo.lineHeight
                + "px", i.style.letterSpacing = this._bareFontInfo.letterSpacing
                + "px", t.appendChild(i);
            var o = document.createElement("div");
            o.style.fontFamily = this._bareFontInfo.fontFamily, o.style.fontWeight = this._bareFontInfo.fontWeight, o.style.fontSize = this._bareFontInfo.fontSize
                + "px", o.style.lineHeight = this._bareFontInfo.lineHeight
                + "px", o.style.letterSpacing = this._bareFontInfo.letterSpacing
                + "px", o.style.fontStyle = "italic", t.appendChild(o);
            for (var r = [], s = 0, a = this._requests.length; s < a; s++) {
              var u = this._requests[s], l = void 0;
              0 === u.type && (l = n), 2 === u.type && (l = i), 1 === u.type
              && (l = o), l.appendChild(document.createElement("br"));
              var c = document.createElement("span");
              e._render(c, u), l.appendChild(c), r[s] = c
            }
            this._container = t, this._testElements = r
          }, e._render = function (e, t) {
            if (" " === t.chr) {
              for (var n = "&nbsp;", i = 0; i < 8; i++) {
                n += n;
              }
              e.innerHTML = n
            } else {
              for (var o = t.chr, i = 0; i < 8; i++) {
                o += o;
              }
              e.textContent = o
            }
          }, e.prototype._readFromDomElements = function () {
            for (var e = 0, t = this._requests.length; e < t; e++) {
              var n = this._requests[e], i = this._testElements[e];
              n.fulfill(i.offsetWidth / 256)
            }
          }, e
        }();
        t.readCharWidths = function (e, t) {
          new i(e, t).read()
        }
      }), define(d[412], h([1, 0, 3]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function (e) {
      function t(t, n) {
        var i = e.call(this) || this;
        return i.referenceDomElement = t, i.changeCallback = n, i.measureReferenceDomElementToken = -1, i.width = -1, i.height = -1, i.measureReferenceDomElement(
            !1), i
      }

      return f(t, e), t.prototype.dispose = function () {
        this.stopObserving(), e.prototype.dispose.call(this)
      }, t.prototype.getWidth = function () {
        return this.width
      }, t.prototype.getHeight = function () {
        return this.height
      }, t.prototype.startObserving = function () {
        var e = this;
        -1 === this.measureReferenceDomElementToken
        && (this.measureReferenceDomElementToken = setInterval(function () {
          return e.measureReferenceDomElement(!0)
        }, 100))
      }, t.prototype.stopObserving = function () {
        -1 !== this.measureReferenceDomElementToken && (clearInterval(
            this.measureReferenceDomElementToken), this.measureReferenceDomElementToken = -1)
      }, t.prototype.observe = function (e) {
        this.measureReferenceDomElement(!0, e)
      }, t.prototype.measureReferenceDomElement = function (e, t) {
        var n = 0, i = 0;
        t ? (n = t.width, i = t.height) : this.referenceDomElement
            && (n = this.referenceDomElement.clientWidth, i = this.referenceDomElement.clientHeight), n = Math.max(
            5, n), i = Math.max(5, i), this.width === n && this.height === i
        || (this.width = n, this.height = i, e && this.changeCallback())
      }, t
    }(n.Disposable);
    t.ElementSizeObserver = i
  }), define(d[25], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.EXACT = 0] = "EXACT", e[e.ABOVE = 1] = "ABOVE", e[e.BELOW = 2] = "BELOW"
    }(t.ContentWidgetPositionPreference
        || (t.ContentWidgetPositionPreference = {}));
    !function (e) {
      e[e.TOP_RIGHT_CORNER = 0] = "TOP_RIGHT_CORNER", e[e.BOTTOM_RIGHT_CORNER = 1] = "BOTTOM_RIGHT_CORNER", e[e.TOP_CENTER = 2] = "TOP_CENTER"
    }(t.OverlayWidgetPositionPreference
        || (t.OverlayWidgetPositionPreference = {}));
    !function (e) {
      e[e.UNKNOWN = 0] = "UNKNOWN", e[e.TEXTAREA = 1] = "TEXTAREA", e[e.GUTTER_GLYPH_MARGIN = 2] = "GUTTER_GLYPH_MARGIN", e[e.GUTTER_LINE_NUMBERS = 3] = "GUTTER_LINE_NUMBERS", e[e.GUTTER_LINE_DECORATIONS = 4] = "GUTTER_LINE_DECORATIONS", e[e.GUTTER_VIEW_ZONE = 5] = "GUTTER_VIEW_ZONE", e[e.CONTENT_TEXT = 6] = "CONTENT_TEXT", e[e.CONTENT_EMPTY = 7] = "CONTENT_EMPTY", e[e.CONTENT_VIEW_ZONE = 8] = "CONTENT_VIEW_ZONE", e[e.CONTENT_WIDGET = 9] = "CONTENT_WIDGET", e[e.OVERVIEW_RULER = 10] = "OVERVIEW_RULER", e[e.SCROLLBAR = 11] = "SCROLLBAR", e[e.OVERLAY_WIDGET = 12] = "OVERLAY_WIDGET", e[e.OUTSIDE_EDITOR = 13] = "OUTSIDE_EDITOR"
    }(t.MouseTargetType || (t.MouseTargetType = {}))
  }), define(d[114], h([1, 0, 3, 47, 4, 83]), function (e, t, n, i, o, r) {
    "use strict";

    function s(e) {
      var t = o.getDomNodePagePosition(e);
      return new l(t.left, t.top, t.width, t.height)
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var a = function () {
      function e(e, t) {
        this.x = e, this.y = t
      }

      return e.prototype.toClientCoordinates = function () {
        return new u(this.x - o.StandardWindow.scrollX,
            this.y - o.StandardWindow.scrollY)
      }, e
    }();
    t.PageCoordinates = a;
    var u = function () {
      function e(e, t) {
        this.clientX = e, this.clientY = t
      }

      return e.prototype.toPageCoordinates = function () {
        return new a(this.clientX + o.StandardWindow.scrollX,
            this.clientY + o.StandardWindow.scrollY)
      }, e
    }();
    t.ClientCoordinates = u;
    var l = function () {
      return function (e, t, n, i) {
        this.x = e, this.y = t, this.width = n, this.height = i
      }
    }();
    t.EditorPagePosition = l, t.createEditorPagePosition = s;
    var c = function (e) {
      function t(t, n) {
        var i = e.call(this, t) || this;
        return i.pos = new a(i.posx, i.posy), i.editorPos = s(n), i
      }

      return f(t, e), t
    }(i.StandardMouseEvent);
    t.EditorMouseEvent = c;
    var d = function () {
      function e(e) {
        this._editorViewDomNode = e
      }

      return e.prototype._create = function (e) {
        return new c(e, this._editorViewDomNode)
      }, e.prototype.onContextMenu = function (e, t) {
        var n = this;
        return o.addDisposableListener(e, "contextmenu", function (e) {
          t(n._create(e))
        })
      }, e.prototype.onMouseUp = function (e, t) {
        var n = this;
        return o.addDisposableListener(e, "mouseup", function (e) {
          t(n._create(e))
        })
      }, e.prototype.onMouseDown = function (e, t) {
        var n = this;
        return o.addDisposableListener(e, "mousedown", function (e) {
          t(n._create(e))
        })
      }, e.prototype.onMouseLeave = function (e, t) {
        var n = this;
        return o.addDisposableNonBubblingMouseOutListener(e, function (e) {
          t(n._create(e))
        })
      }, e.prototype.onMouseMoveThrottled = function (e, t, n, i) {
        var r = this;
        return o.addDisposableThrottledListener(e, "mousemove", t,
            function (e, t) {
              return n(e, r._create(t))
            }, i)
      }, e
    }();
    t.EditorMouseEventFactory = d;
    var h = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n._editorViewDomNode = t, n._globalMouseMoveMonitor = n._register(
            new r.GlobalMouseMoveMonitor), n._keydownListener = null, n
      }

      return f(t, e), t.prototype.startMonitoring = function (e, t, n) {
        var i = this;
        this._keydownListener = o.addStandardDisposableListener(document,
            "keydown", function (e) {
              e.toKeybinding().isModifierKey()
              || i._globalMouseMoveMonitor.stopMonitoring(!0)
            }, !0);
        this._globalMouseMoveMonitor.startMonitoring(function (t, n) {
          return e(t, new c(n, i._editorViewDomNode))
        }, t, function () {
          i._keydownListener.dispose(), n()
        })
      }, t
    }(n.Disposable);
    t.GlobalEditorMouseMoveMonitor = h
  }), define(d[112], h([1, 0, 27]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e) {
        this._createLine = e, this._set(1, [])
      }

      return e.prototype.flush = function () {
        this._set(1, [])
      }, e.prototype._set = function (e, t) {
        this._lines = t, this._rendLineNumberStart = e
      }, e.prototype._get = function () {
        return {
          rendLineNumberStart: this._rendLineNumberStart,
          lines: this._lines
        }
      }, e.prototype.getStartLineNumber = function () {
        return this._rendLineNumberStart
      }, e.prototype.getEndLineNumber = function () {
        return this._rendLineNumberStart + this._lines.length - 1
      }, e.prototype.getCount = function () {
        return this._lines.length
      }, e.prototype.getLine = function (e) {
        var t = e - this._rendLineNumberStart;
        if (t < 0 || t >= this._lines.length) {
          throw new Error(
              "Illegal value for lineNumber: " + e);
        }
        return this._lines[t]
      }, e.prototype.onLinesDeleted = function (e, t) {
        if (0 === this.getCount()) {
          return null;
        }
        var n = this.getStartLineNumber(), i = this.getEndLineNumber();
        if (t < n) {
          var o = t - e + 1;
          return this._rendLineNumberStart -= o, null
        }
        if (e > i) {
          return null;
        }
        for (var r = 0, s = 0, a = n; a <= i; a++) {
          var u = a - this._rendLineNumberStart;
          e <= a && a <= t && (0 === s ? (r = u, s = 1) : s++)
        }
        if (e < n) {
          var l = 0;
          l = t < n ? t - e + 1 : n - e, this._rendLineNumberStart -= l
        }
        return this._lines.splice(r, s)
      }, e.prototype.onLinesChanged = function (e, t) {
        if (0 === this.getCount()) {
          return !1;
        }
        for (var n = this.getStartLineNumber(), i = this.getEndLineNumber(),
            o = !1, r = e; r <= t; r++) {
          r >= n && r <= i && (this._lines[r
          - this._rendLineNumberStart].onContentChanged(), o = !0);
        }
        return o
      }, e.prototype.onLinesInserted = function (e, t) {
        if (0 === this.getCount()) {
          return null;
        }
        var n = t - e + 1, i = this.getStartLineNumber(),
            o = this.getEndLineNumber();
        if (e <= i) {
          return this._rendLineNumberStart += n, null;
        }
        if (e > o) {
          return null;
        }
        if (n + e > o) {
          return this._lines.splice(e - this._rendLineNumberStart,
              o - e + 1);
        }
        for (var r = [], s = 0; s < n; s++) {
          r[s] = this._createLine();
        }
        var a = e - this._rendLineNumberStart, u = this._lines.slice(0, a),
            l = this._lines.slice(a, this._lines.length - n),
            c = this._lines.slice(this._lines.length - n, this._lines.length);
        return this._lines = u.concat(r).concat(l), c
      }, e.prototype.onTokensChanged = function (e) {
        if (0 === this.getCount()) {
          return !1;
        }
        for (var t = this.getStartLineNumber(), n = this.getEndLineNumber(),
            i = !1, o = 0, r = e.length; o < r; o++) {
          var s = e[o];
          if (!(s.toLineNumber < t || s.fromLineNumber
              > n)) {
            for (var a = Math.max(t, s.fromLineNumber),
                u = Math.min(n, s.toLineNumber), l = a; l <= u; l++) {
              var c = l - this._rendLineNumberStart;
              this._lines[c].onTokensChanged(), i = !0
            }
          }
        }
        return i
      }, e
    }();
    t.RenderedLinesCollection = i;
    var o = function () {
      function e(e) {
        var t = this;
        this._host = e, this.domNode = this._createDomNode(), this._linesCollection = new i(
            function () {
              return t._host.createVisibleLine()
            })
      }

      return e.prototype._createDomNode = function () {
        var e = n.createFastDomNode(document.createElement("div"));
        return e.setClassName("view-layer"), e.setPosition(
            "absolute"), e.domNode.setAttribute("role",
            "presentation"), e.domNode.setAttribute("aria-hidden", "true"), e
      }, e.prototype.onConfigurationChanged = function (e) {
        return e.layoutInfo
      }, e.prototype.onFlushed = function (e) {
        return this._linesCollection.flush(), !0
      }, e.prototype.onLinesChanged = function (e) {
        return this._linesCollection.onLinesChanged(e.fromLineNumber,
            e.toLineNumber)
      }, e.prototype.onLinesDeleted = function (e) {
        var t = this._linesCollection.onLinesDeleted(e.fromLineNumber,
            e.toLineNumber);
        if (t) {
          for (var n = 0, i = t.length; n < i; n++) {
            var o = t[n].getDomNode();
            o && this.domNode.domNode.removeChild(o)
          }
        }
        return !0
      }, e.prototype.onLinesInserted = function (e) {
        var t = this._linesCollection.onLinesInserted(e.fromLineNumber,
            e.toLineNumber);
        if (t) {
          for (var n = 0, i = t.length; n < i; n++) {
            var o = t[n].getDomNode();
            o && this.domNode.domNode.removeChild(o)
          }
        }
        return !0
      }, e.prototype.onScrollChanged = function (e) {
        return e.scrollTopChanged
      }, e.prototype.onTokensChanged = function (e) {
        return this._linesCollection.onTokensChanged(e.ranges)
      }, e.prototype.onZonesChanged = function (e) {
        return !0
      }, e.prototype.getStartLineNumber = function () {
        return this._linesCollection.getStartLineNumber()
      }, e.prototype.getEndLineNumber = function () {
        return this._linesCollection.getEndLineNumber()
      }, e.prototype.getVisibleLine = function (e) {
        return this._linesCollection.getLine(e)
      }, e.prototype.renderLines = function (e) {
        var t = this._linesCollection._get(),
            n = new r(this.domNode.domNode, this._host, e), i = {
              rendLineNumberStart: t.rendLineNumberStart,
              lines: t.lines,
              linesLength: t.lines.length
            }, o = n.render(i, e.startLineNumber, e.endLineNumber,
                e.relativeVerticalOffset);
        this._linesCollection._set(o.rendLineNumberStart, o.lines)
      }, e
    }();
    t.VisibleLinesCollection = o;
    var r = function () {
      function e(e, t, n) {
        this.domNode = e, this.host = t, this.viewportData = n
      }

      return e.prototype.render = function (e, t, n, i) {
        var o = {
          rendLineNumberStart: e.rendLineNumberStart,
          lines: e.lines.slice(0),
          linesLength: e.linesLength
        };
        if (o.rendLineNumberStart + o.linesLength - 1 < t || n
            < o.rendLineNumberStart) {
          o.rendLineNumberStart = t, o.linesLength = n - t + 1, o.lines = [];
          for (var r = t; r <= n; r++) {
            o.lines[r
            - t] = this.host.createVisibleLine();
          }
          return this._finishRendering(o, !0, i), o
        }
        if (this._renderUntouchedLines(o,
            Math.max(t - o.rendLineNumberStart, 0),
            Math.min(n - o.rendLineNumberStart, o.linesLength - 1), i,
            t), o.rendLineNumberStart > t ? (s = t) <= (a = Math.min(n,
            o.rendLineNumberStart - 1)) && (this._insertLinesBefore(o, s, a, i,
            t), o.linesLength += a - s + 1) : o.rendLineNumberStart < t
            && (u = Math.min(o.linesLength, t - o.rendLineNumberStart)) > 0
            && (this._removeLinesBefore(o,
                u), o.linesLength -= u), o.rendLineNumberStart = t, o.rendLineNumberStart
        + o.linesLength - 1 < n) {
          (s = o.rendLineNumberStart + o.linesLength)
          <= (a = n) && (this._insertLinesAfter(o, s, a, i,
              t), o.linesLength += a
              - s + 1);
        } else if (o.rendLineNumberStart + o.linesLength - 1 > n) {
          var s = Math.max(0, n - o.rendLineNumberStart + 1),
              a = o.linesLength - 1, u = a - s + 1;
          u > 0 && (this._removeLinesAfter(o, u), o.linesLength -= u)
        }
        return this._finishRendering(o, !1, i), o
      }, e.prototype._renderUntouchedLines = function (e, t, n, i, o) {
        for (var r = e.rendLineNumberStart, s = e.lines, a = t; a <= n; a++) {
          var u = r + a;
          s[a].layoutLine(u, i[u - o])
        }
      }, e.prototype._insertLinesBefore = function (e, t, n, i, o) {
        for (var r = [], s = 0, a = t; a <= n;
            a++) {
          r[s++] = this.host.createVisibleLine();
        }
        e.lines = r.concat(e.lines)
      }, e.prototype._removeLinesBefore = function (e, t) {
        for (var n = 0; n < t; n++) {
          var i = e.lines[n].getDomNode();
          i && this.domNode.removeChild(i)
        }
        e.lines.splice(0, t)
      }, e.prototype._insertLinesAfter = function (e, t, n, i, o) {
        for (var r = [], s = 0, a = t; a <= n;
            a++) {
          r[s++] = this.host.createVisibleLine();
        }
        e.lines = e.lines.concat(r)
      }, e.prototype._removeLinesAfter = function (e, t) {
        for (var n = e.linesLength - t, i = 0; i < t; i++) {
          var o = e.lines[n + i].getDomNode();
          o && this.domNode.removeChild(o)
        }
        e.lines.splice(n, t)
      }, e.prototype._finishRenderingNewLines = function (e, t, n, i) {
        var o = this.domNode.lastChild;
        t || !o ? this.domNode.innerHTML = n.join("") : o.insertAdjacentHTML(
            "afterend", n.join(""));
        for (var r = this.domNode.lastChild, s = e.linesLength - 1; s >= 0;
            s--) {
          var a = e.lines[s];
          i[s] && (a.setDomNode(r), r = r.previousSibling)
        }
      }, e.prototype._finishRenderingInvalidLines = function (e, t, n) {
        var i = document.createElement("div");
        i.innerHTML = t.join("");
        for (var o = 0; o < e.linesLength; o++) {
          var r = e.lines[o];
          if (n[o]) {
            var s = i.firstChild, a = r.getDomNode();
            a.parentNode.replaceChild(s, a), r.setDomNode(s)
          }
        }
      }, e.prototype._finishRendering = function (e, t, n) {
        for (var i = !1, o = [], r = [], s = !1, a = [], u = [], l = 0,
            c = e.linesLength; l < c; l++) {
          var d = e.lines[l], h = l + e.rendLineNumberStart;
          o[l] = !1, a[l] = !1;
          var p = d.renderLine(h, n[l], this.viewportData);
          null !== p && (d.getDomNode() ? (u.push(p), a[l] = !0, s = !0)
              : (r.push(p), o[l] = !0, i = !0))
        }
        i && this._finishRenderingNewLines(e, t, r, o), s
        && this._finishRenderingInvalidLines(e, u, a)
      }, e
    }()
  }), define(d[135], h([1, 0, 11]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.EditorZoom = new (function () {
      function e() {
        this._zoomLevel = 0, this._onDidChangeZoomLevel = new n.Emitter, this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event
      }

      return e.prototype.getZoomLevel = function () {
        return this._zoomLevel
      }, e.prototype.setZoomLevel = function (e) {
        e = Math.min(Math.max(-9, e), 9), this._zoomLevel !== e
        && (this._zoomLevel = e, this._onDidChangeZoomLevel.fire(
            this._zoomLevel))
      }, e
    }())
  }), define(d[54], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.NotSet = 0] = "NotSet", e[e.ContentFlush = 1] = "ContentFlush", e[e.RecoverFromMarkers = 2] = "RecoverFromMarkers", e[e.Explicit = 3] = "Explicit", e[e.Paste = 4] = "Paste", e[e.Undo = 5] = "Undo", e[e.Redo = 6] = "Redo"
    }(t.CursorChangeReason || (t.CursorChangeReason = {}))
  }), define(d[131], h([1, 0, 9]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.Value = 1] = "Value", e[e.Selection = 2] = "Selection", e[e.Position = 4] = "Position", e[e.Scroll = 8] = "Scroll"
    }(t.CodeEditorStateFlag || (t.CodeEditorStateFlag = {}));
    var i = function () {
      function e(e, t) {
        if (this.flags = t, 0 != (1 & this.flags)) {
          var i = e.getModel();
          this.modelVersionId = i ? n.format("{0}#{1}", i.uri.toString(),
              i.getVersionId()) : null
        }
        0 != (4 & this.flags) && (this.position = e.getPosition()), 0 != (2
            & this.flags) && (this.selection = e.getSelection()), 0 != (8
            & this.flags)
        && (this.scrollLeft = e.getScrollLeft(), this.scrollTop = e.getScrollTop())
      }

      return e.prototype._equals = function (t) {
        if (!(t instanceof e)) {
          return !1;
        }
        var n = t;
        return this.modelVersionId === n.modelVersionId && (this.scrollLeft
            === n.scrollLeft && this.scrollTop === n.scrollTop
            && (!(!this.position && n.position || this.position && !n.position
                || this.position && n.position && !this.position.equals(
                    n.position)) && !(!this.selection && n.selection
                || this.selection && !n.selection || this.selection
                && n.selection && !this.selection.equalsRange(n.selection))))
      }, e.prototype.validate = function (t) {
        return this._equals(new e(t, this.flags))
      }, e
    }();
    t.EditorState = i
  }), define(d[12], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e, t) {
        this.lineNumber = e, this.column = t
      }

      return e.prototype.equals = function (t) {
        return e.equals(this, t)
      }, e.equals = function (e, t) {
        return !e && !t || !!e && !!t && e.lineNumber === t.lineNumber
            && e.column === t.column
      }, e.prototype.isBefore = function (t) {
        return e.isBefore(this, t)
      }, e.isBefore = function (e, t) {
        return e.lineNumber < t.lineNumber || !(t.lineNumber < e.lineNumber)
            && e.column < t.column
      }, e.prototype.isBeforeOrEqual = function (t) {
        return e.isBeforeOrEqual(this, t)
      }, e.isBeforeOrEqual = function (e, t) {
        return e.lineNumber < t.lineNumber || !(t.lineNumber < e.lineNumber)
            && e.column <= t.column
      }, e.compare = function (e, t) {
        var n = 0 | e.lineNumber, i = 0 | t.lineNumber;
        return n === i ? (0 | e.column) - (0 | t.column) : n - i
      }, e.prototype.clone = function () {
        return new e(this.lineNumber, this.column)
      }, e.prototype.toString = function () {
        return "(" + this.lineNumber + "," + this.column + ")"
      }, e.lift = function (t) {
        return new e(t.lineNumber, t.column)
      }, e.isIPosition = function (e) {
        return e && "number" == typeof e.lineNumber && "number"
            == typeof e.column
      }, e
    }();
    t.Position = n
  }), define(d[2], h([1, 0, 12]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t, n, i) {
        e > n || e === n && t > i
            ? (this.startLineNumber = n, this.startColumn = i, this.endLineNumber = e, this.endColumn = t)
            : (this.startLineNumber = e, this.startColumn = t, this.endLineNumber = n, this.endColumn = i)
      }

      return e.prototype.isEmpty = function () {
        return e.isEmpty(this)
      }, e.isEmpty = function (e) {
        return e.startLineNumber === e.endLineNumber && e.startColumn
            === e.endColumn
      }, e.prototype.containsPosition = function (t) {
        return e.containsPosition(this, t)
      }, e.containsPosition = function (e, t) {
        return !(t.lineNumber < e.startLineNumber || t.lineNumber
            > e.endLineNumber) && (!(t.lineNumber === e.startLineNumber
            && t.column < e.startColumn) && !(t.lineNumber === e.endLineNumber
            && t.column > e.endColumn))
      }, e.prototype.containsRange = function (t) {
        return e.containsRange(this, t)
      }, e.containsRange = function (e, t) {
        return !(t.startLineNumber < e.startLineNumber || t.endLineNumber
            < e.startLineNumber) && (!(t.startLineNumber > e.endLineNumber
            || t.endLineNumber > e.endLineNumber) && (!(t.startLineNumber
                === e.startLineNumber && t.startColumn < e.startColumn)
            && !(t.endLineNumber === e.endLineNumber && t.endColumn
                > e.endColumn)))
      }, e.prototype.plusRange = function (t) {
        return e.plusRange(this, t)
      }, e.plusRange = function (t, n) {
        var i, o, r, s;
        return n.startLineNumber < t.startLineNumber
            ? (i = n.startLineNumber, o = n.startColumn) : n.startLineNumber
            === t.startLineNumber ? (i = n.startLineNumber, o = Math.min(
                    n.startColumn, t.startColumn))
                : (i = t.startLineNumber, o = t.startColumn), n.endLineNumber
        > t.endLineNumber ? (r = n.endLineNumber, s = n.endColumn)
            : n.endLineNumber === t.endLineNumber
                ? (r = n.endLineNumber, s = Math.max(n.endColumn, t.endColumn))
                : (r = t.endLineNumber, s = t.endColumn), new e(i, o, r, s)
      }, e.prototype.intersectRanges = function (t) {
        return e.intersectRanges(this, t)
      }, e.intersectRanges = function (t, n) {
        var i = t.startLineNumber, o = t.startColumn, r = t.endLineNumber,
            s = t.endColumn, a = n.startLineNumber, u = n.startColumn,
            l = n.endLineNumber, c = n.endColumn;
        return i < a ? (i = a, o = u) : i === a && (o = Math.max(o, u)), r > l
            ? (r = l, s = c) : r === l && (s = Math.min(s, c)), i > r ? null : i
        === r && o > s ? null : new e(i, o, r, s)
      }, e.prototype.equalsRange = function (t) {
        return e.equalsRange(this, t)
      }, e.equalsRange = function (e, t) {
        return !!e && !!t && e.startLineNumber === t.startLineNumber
            && e.startColumn === t.startColumn && e.endLineNumber
            === t.endLineNumber && e.endColumn === t.endColumn
      }, e.prototype.getEndPosition = function () {
        return new n.Position(this.endLineNumber, this.endColumn)
      }, e.prototype.getStartPosition = function () {
        return new n.Position(this.startLineNumber, this.startColumn)
      }, e.prototype.cloneRange = function () {
        return new e(this.startLineNumber, this.startColumn, this.endLineNumber,
            this.endColumn)
      }, e.prototype.toString = function () {
        return "[" + this.startLineNumber + "," + this.startColumn + " -> "
            + this.endLineNumber + "," + this.endColumn + "]"
      }, e.prototype.setEndPosition = function (t, n) {
        return new e(this.startLineNumber, this.startColumn, t, n)
      }, e.prototype.setStartPosition = function (t, n) {
        return new e(t, n, this.endLineNumber, this.endColumn)
      }, e.prototype.collapseToStart = function () {
        return e.collapseToStart(this)
      }, e.collapseToStart = function (t) {
        return new e(t.startLineNumber, t.startColumn, t.startLineNumber,
            t.startColumn)
      }, e.fromPositions = function (t, n) {
        return void 0 === n && (n = t), new e(t.lineNumber, t.column,
            n.lineNumber, n.column)
      }, e.lift = function (t) {
        return t ? new e(t.startLineNumber, t.startColumn, t.endLineNumber,
            t.endColumn) : null
      }, e.isIRange = function (e) {
        return e && "number" == typeof e.startLineNumber && "number"
            == typeof e.startColumn && "number" == typeof e.endLineNumber
            && "number" == typeof e.endColumn
      }, e.areIntersectingOrTouching = function (e, t) {
        return !(e.endLineNumber < t.startLineNumber || e.endLineNumber
                === t.startLineNumber && e.endColumn < t.startColumn)
            && !(t.endLineNumber < e.startLineNumber || t.endLineNumber
                === e.startLineNumber && t.endColumn < e.startColumn)
      }, e.compareRangesUsingStarts = function (e, t) {
        var n = 0 | e.startLineNumber, i = 0 | t.startLineNumber;
        if (n === i) {
          var o = 0 | e.startColumn, r = 0 | t.startColumn;
          if (o === r) {
            var s = 0 | e.endLineNumber, a = 0 | t.endLineNumber;
            return s === a ? (0 | e.endColumn) - (0 | t.endColumn) : s - a
          }
          return o - r
        }
        return n - i
      }, e.compareRangesUsingEnds = function (e, t) {
        return e.endLineNumber === t.endLineNumber ? e.endColumn === t.endColumn
            ? e.startLineNumber === t.startLineNumber ? e.startColumn
                - t.startColumn : e.startLineNumber - t.startLineNumber
            : e.endColumn - t.endColumn : e.endLineNumber - t.endLineNumber
      }, e.spansMultipleLines = function (e) {
        return e.endLineNumber > e.startLineNumber
      }, e
    }();
    t.Range = i
  }), define(d[164], h([1, 0, 72, 38, 26, 2, 3]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = {
          followsCaret: !0,
          ignoreCharChanges: !0,
          alwaysRevealFirst: !0
        }, u = function (e) {
          function t(n, i) {
            void 0 === i && (i = {});
            var r = e.call(this, [t.Events.UPDATED]) || this;
            return r.editor = n, r.options = o.mixin(i, a,
                !1), r.disposed = !1, r.toUnbind = [], r.nextIdx = -1, r.ranges = [], r.ignoreSelectionChange = !1, r.revealFirst = r.options.alwaysRevealFirst, r.toUnbind.push(
                r.editor.onDidDispose(function () {
                  return r.dispose()
                })), r.toUnbind.push(r.editor.onDidUpdateDiff(function () {
              return r.onDiffUpdated()
            })), r.options.followsCaret && r.toUnbind.push(
                r.editor.getModifiedEditor().onDidChangeCursorPosition(
                    function (e) {
                      r.ignoreSelectionChange || (r.nextIdx = -1)
                    })), r.options.alwaysRevealFirst && r.toUnbind.push(
                r.editor.getModifiedEditor().onDidChangeModel(function (e) {
                  r.revealFirst = !0
                })), r.init(), r
          }

          return f(t, e), t.prototype.init = function () {
            this.editor.getLineChanges()
          }, t.prototype.onDiffUpdated = function () {
            this.init(), this.compute(
                this.editor.getLineChanges()), this.revealFirst && null
            !== this.editor.getLineChanges()
            && (this.revealFirst = !1, this.nextIdx = -1, this.next())
          }, t.prototype.compute = function (e) {
            var n = this;
            this.ranges = [], e && e.forEach(function (e) {
              !n.options.ignoreCharChanges && e.charChanges
                  ? e.charChanges.forEach(function (e) {
                    n.ranges.push({
                      rhs: !0,
                      range: new r.Range(e.modifiedStartLineNumber,
                          e.modifiedStartColumn, e.modifiedEndLineNumber,
                          e.modifiedEndColumn)
                    })
                  }) : n.ranges.push({
                    rhs: !0,
                    range: new r.Range(e.modifiedStartLineNumber, 1,
                        e.modifiedStartLineNumber, 1)
                  })
            }), this.ranges.sort(function (e, t) {
              return e.range.getStartPosition().isBeforeOrEqual(
                  t.range.getStartPosition()) ? -1
                  : t.range.getStartPosition().isBeforeOrEqual(
                      e.range.getStartPosition()) ? 1 : 0
            }), this.emit(t.Events.UPDATED, {})
          }, t.prototype.initIdx = function (e) {
            for (var t = !1, n = this.editor.getPosition(), i = 0,
                o = this.ranges.length; i < o && !t; i++) {
              var r = this.ranges[i].range;
              n.isBeforeOrEqual(r.getStartPosition()) && (this.nextIdx = i + (e
                  ? 0 : -1), t = !0)
            }
            t || (this.nextIdx = e ? 0 : this.ranges.length - 1), this.nextIdx
            < 0 && (this.nextIdx = this.ranges.length - 1)
          }, t.prototype.move = function (e) {
            if (n.ok(!this.disposed,
                "Illegal State - diff navigator has been disposed"), this.canNavigate()) {
              -1 === this.nextIdx ? this.initIdx(e) : e
                  ? (this.nextIdx += 1, this.nextIdx >= this.ranges.length
                  && (this.nextIdx = 0)) : (this.nextIdx -= 1, this.nextIdx < 0
                  && (this.nextIdx = this.ranges.length - 1));
              var t = this.ranges[this.nextIdx];
              this.ignoreSelectionChange = !0;
              try {
                var i = t.range.getStartPosition();
                this.editor.setPosition(i), this.editor.revealPositionInCenter(
                    i)
              } finally {
                this.ignoreSelectionChange = !1
              }
            }
          }, t.prototype.canNavigate = function () {
            return this.ranges && this.ranges.length > 0
          }, t.prototype.next = function () {
            this.move(!0)
          }, t.prototype.previous = function () {
            this.move(!1)
          }, t.prototype.dispose = function () {
            this.toUnbind = s.dispose(
                this.toUnbind), this.ranges = null, this.disposed = !0, e.prototype.dispose.call(
                this)
          }, t.Events = {UPDATED: "navigation.updated"}, t
        }(i.EventEmitter);
        t.DiffNavigator = u
      }), define(d[59], h([1, 0, 2]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e() {
      }

      return e.insert = function (e, t) {
        return {
          identifier: null,
          range: new n.Range(e.lineNumber, e.column, e.lineNumber, e.column),
          text: t,
          forceMoveMarkers: !0
        }
      }, e.delete = function (e) {
        return {identifier: null, range: e, text: null, forceMoveMarkers: !0}
      }, e.replace = function (e, t) {
        return {identifier: null, range: e, text: t, forceMoveMarkers: !1}
      }, e.replaceMove = function (e, t) {
        return {identifier: null, range: e, text: t, forceMoveMarkers: !0}
      }, e
    }();
    t.EditOperation = i
  }), define(d[435], h([1, 0, 9, 59, 2]), function (e, t, n, i, o) {
    "use strict";

    function r(e, t) {
      t.sort(function (e, t) {
        return e.lineNumber === t.lineNumber ? e.column - t.column
            : e.lineNumber - t.lineNumber
      });
      for (var r = t.length - 2; r >= 0; r--) {
        t[r].lineNumber === t[r
        + 1].lineNumber && t.splice(r, 1);
      }
      for (var s = [], a = 0, u = 0, l = t.length, c = 1, d = e.getLineCount();
          c <= d; c++) {
        var h = e.getLineContent(c), p = h.length + 1, f = 0;
        if (!(u < l && t[u].lineNumber === c && (f = t[u].column, u++, f === p))
            && 0 !== h.length) {
          var g = n.lastNonWhitespaceIndex(h), m = 0;
          if (-1 === g) {
            m = 1;
          } else {
            if (g === h.length - 1) {
              continue;
            }
            m = g + 2
          }
          m = Math.max(f, m), s[a++] = i.EditOperation.delete(
              new o.Range(c, m, c, p))
        }
      }
      return s
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      function e(e) {
        this.selection = e
      }

      return e.prototype.getEditOperations = function (e, t) {
        for (var n = r(e, []), i = 0, o = n.length; i < o; i++) {
          var s = n[i];
          t.addEditOperation(s.range, s.text)
        }
        this.selectionId = t.trackSelection(this.selection)
      }, e.prototype.computeCursorState = function (e, t) {
        return t.getTrackedSelection(this.selectionId)
      }, e
    }();
    t.TrimTrailingWhitespaceCommand = s, t.trimTrailingWhitespace = r
  }), define(d[22], h([1, 0, 2, 12]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o;
    !function (e) {
      e[e.LTR = 0] = "LTR", e[e.RTL = 1] = "RTL"
    }(o = t.SelectionDirection || (t.SelectionDirection = {}));
    var r = function (e) {
      function t(t, n, i, o) {
        var r = e.call(this, t, n, i, o) || this;
        return r.selectionStartLineNumber = t, r.selectionStartColumn = n, r.positionLineNumber = i, r.positionColumn = o, r
      }

      return f(t, e), t.prototype.clone = function () {
        return new t(this.selectionStartLineNumber, this.selectionStartColumn,
            this.positionLineNumber, this.positionColumn)
      }, t.prototype.toString = function () {
        return "[" + this.selectionStartLineNumber + ","
            + this.selectionStartColumn + " -> " + this.positionLineNumber + ","
            + this.positionColumn + "]"
      }, t.prototype.equalsSelection = function (e) {
        return t.selectionsEqual(this, e)
      }, t.selectionsEqual = function (e, t) {
        return e.selectionStartLineNumber === t.selectionStartLineNumber
            && e.selectionStartColumn === t.selectionStartColumn
            && e.positionLineNumber === t.positionLineNumber && e.positionColumn
            === t.positionColumn
      }, t.prototype.getDirection = function () {
        return this.selectionStartLineNumber === this.startLineNumber
        && this.selectionStartColumn === this.startColumn ? o.LTR : o.RTL
      }, t.prototype.setEndPosition = function (e, n) {
        return this.getDirection() === o.LTR ? new t(this.startLineNumber,
            this.startColumn, e, n) : new t(e, n, this.startLineNumber,
            this.startColumn)
      }, t.prototype.getPosition = function () {
        return new i.Position(this.positionLineNumber, this.positionColumn)
      }, t.prototype.setStartPosition = function (e, n) {
        return this.getDirection() === o.LTR ? new t(e, n, this.endLineNumber,
            this.endColumn) : new t(this.endLineNumber, this.endColumn, e, n)
      }, t.fromPositions = function (e, n) {
        return void 0 === n && (n = e), new t(e.lineNumber, e.column,
            n.lineNumber, n.column)
      }, t.liftSelection = function (e) {
        return new t(e.selectionStartLineNumber, e.selectionStartColumn,
            e.positionLineNumber, e.positionColumn)
      }, t.selectionsArrEqual = function (e, t) {
        if (e && !t || !e && t) {
          return !1;
        }
        if (!e && !t) {
          return !0;
        }
        if (e.length !== t.length) {
          return !1;
        }
        for (var n = 0, i = e.length; n < i; n++) {
          if (!this.selectionsEqual(
              e[n], t[n])) {
            return !1;
          }
        }
        return !0
      }, t.isISelection = function (e) {
        return e && "number" == typeof e.selectionStartLineNumber && "number"
            == typeof e.selectionStartColumn && "number"
            == typeof e.positionLineNumber && "number"
            == typeof e.positionColumn
      }, t.createWithDirection = function (e, n, i, r, s) {
        return s === o.LTR ? new t(e, n, i, r) : new t(i, r, e, n)
      }, t
    }(n.Range);
    t.Selection = r
  }), define(d[73], h([1, 0, 22]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t, n) {
        void 0 === n
        && (n = !1), this._range = e, this._text = t, this.insertsAutoWhitespace = n
      }

      return e.prototype.getEditOperations = function (e, t) {
        t.addTrackedEditOperation(this._range, this._text)
      }, e.prototype.computeCursorState = function (e, t) {
        var i = t.getInverseEditOperations()[0].range;
        return new n.Selection(i.endLineNumber, i.endColumn, i.endLineNumber,
            i.endColumn)
      }, e
    }();
    t.ReplaceCommand = i;
    var o = function () {
      function e(e, t, n) {
        void 0 === n
        && (n = !1), this._range = e, this._text = t, this.insertsAutoWhitespace = n
      }

      return e.prototype.getEditOperations = function (e, t) {
        t.addTrackedEditOperation(this._range, this._text)
      }, e.prototype.computeCursorState = function (e, t) {
        var i = t.getInverseEditOperations()[0].range;
        return new n.Selection(i.startLineNumber, i.startColumn,
            i.startLineNumber, i.startColumn)
      }, e
    }();
    t.ReplaceCommandWithoutChangingPosition = o;
    var r = function () {
      function e(e, t, n, i, o) {
        void 0 === o
        && (o = !1), this._range = e, this._text = t, this._columnDeltaOffset = i, this._lineNumberDeltaOffset = n, this.insertsAutoWhitespace = o
      }

      return e.prototype.getEditOperations = function (e, t) {
        t.addTrackedEditOperation(this._range, this._text)
      }, e.prototype.computeCursorState = function (e, t) {
        var i = t.getInverseEditOperations()[0].range;
        return new n.Selection(i.endLineNumber + this._lineNumberDeltaOffset,
            i.endColumn + this._columnDeltaOffset,
            i.endLineNumber + this._lineNumberDeltaOffset,
            i.endColumn + this._columnDeltaOffset)
      }, e
    }();
    t.ReplaceCommandWithOffsetCursorState = r;
    var s = function () {
      function e(e, t, n) {
        this._range = e, this._text = t, this._initialSelection = n
      }

      return e.prototype.getEditOperations = function (e, t) {
        t.addEditOperation(this._range,
            this._text), this._selectionId = t.trackSelection(
            this._initialSelection)
      }, e.prototype.computeCursorState = function (e, t) {
        return t.getTrackedSelection(this._selectionId)
      }, e
    }();
    t.ReplaceCommandThatPreservesSelection = s
  }), define(d[441], h([1, 0, 2, 22]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e(e, t, n) {
        this._range = e, this._charBeforeSelection = t, this._charAfterSelection = n
      }

      return e.prototype.getEditOperations = function (e, t) {
        t.addTrackedEditOperation(
            new n.Range(this._range.startLineNumber, this._range.startColumn,
                this._range.startLineNumber, this._range.startColumn),
            this._charBeforeSelection), t.addTrackedEditOperation(
            new n.Range(this._range.endLineNumber, this._range.endColumn,
                this._range.endLineNumber, this._range.endColumn),
            this._charAfterSelection)
      }, e.prototype.computeCursorState = function (e, t) {
        var n = t.getInverseEditOperations(), o = n[0].range, r = n[1].range;
        return new i.Selection(o.endLineNumber, o.endColumn, r.endLineNumber,
            r.endColumn - this._charAfterSelection.length)
      }, e
    }();
    t.SurroundSelectionCommand = o
  }), define(d[97], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e, t, n) {
        this.offset = 0 | e, this.type = t, this.language = n
      }

      return e.prototype.toString = function () {
        return "(" + this.offset + ", " + this.type + ")"
      }, e
    }();
    t.Token = n;
    var i = function () {
      return function (e, t) {
        this.tokens = e, this.endState = t
      }
    }();
    t.TokenizationResult = i;
    var o = function () {
      return function (e, t) {
        this.tokens = e, this.endState = t
      }
    }();
    t.TokenizationResult2 = o
  }), define(d[96], h([1, 0]), function (e, t) {
    "use strict";

    function n(e) {
      return e < 0 ? 0 : e > 4294967295 ? 4294967295 : 0 | e
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t, n) {
        for (var i = new Uint8Array(e * t), o = 0, r = e * t; o < r;
            o++) {
          i[o] = n;
        }
        this._data = i, this._rows = e, this._cols = t
      }

      return e.prototype.get = function (e, t) {
        return this._data[e * this._cols + t]
      }, e.prototype.set = function (e, t, n) {
        this._data[e * this._cols + t] = n
      }, e
    }();
    t.Uint8Matrix = i;
    !function (e) {
      e[e.MAX_SAFE_SMALL_INTEGER = 1073741824] = "MAX_SAFE_SMALL_INTEGER", e[e.MIN_SAFE_SMALL_INTEGER = -1073741824] = "MIN_SAFE_SMALL_INTEGER", e[e.MAX_UINT_8 = 255] = "MAX_UINT_8", e[e.MAX_UINT_16 = 65535] = "MAX_UINT_16", e[e.MAX_UINT_32 = 4294967295] = "MAX_UINT_32"
    }(t.Constants || (t.Constants = {})), t.toUint8 = function (e) {
      return e < 0 ? 0 : e > 255 ? 255 : 0 | e
    }, t.toUint32 = n, t.toUint32Array = function (e) {
      for (var t = e.length, i = new Uint32Array(t), o = 0; o < t;
          o++) {
        i[o] = n(e[o]);
      }
      return i
    }
  }), define(d[89], h([1, 0, 96]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(t) {
        var i = n.toUint8(t);
        this._defaultValue = i, this._asciiMap = e._createAsciiMap(
            i), this._map = new Map
      }

      return e._createAsciiMap = function (e) {
        for (var t = new Uint8Array(256), n = 0; n < 256; n++) {
          t[n] = e;
        }
        return t
      }, e.prototype.set = function (e, t) {
        var i = n.toUint8(t);
        e >= 0 && e < 256 ? this._asciiMap[e] = i : this._map.set(e, i)
      }, e.prototype.get = function (e) {
        return e >= 0 && e < 256 ? this._asciiMap[e] : this._map.get(e)
            || this._defaultValue
      }, e
    }();
    t.CharacterClassifier = i;
    var o;
    !function (e) {
      e[e.False = 0] = "False", e[e.True = 1] = "True"
    }(o || (o = {}));
    var r = function () {
      function e() {
        this._actual = new i(0)
      }

      return e.prototype.add = function (e) {
        this._actual.set(e, 1)
      }, e.prototype.has = function (e) {
        return 1 === this._actual.get(e)
      }, e
    }();
    t.CharacterSet = r
  }), define(d[94], h([1, 0, 89]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.Regular = 0] = "Regular", e[e.Whitespace = 1] = "Whitespace", e[e.WordSeparator = 2] = "WordSeparator"
    }(t.WordCharacterClass || (t.WordCharacterClass = {}));
    var i = function (e) {
      function t(t) {
        for (var n = e.call(this, 0) || this, i = 0, o = t.length; i < o;
            i++) {
          n.set(t.charCodeAt(i), 2);
        }
        return n.set(32, 1), n.set(9, 1), n
      }

      return f(t, e), t
    }(n.CharacterClassifier);
    t.WordCharacterClassifier = i, t.getMapForWordSeparators = function (e) {
      var t = {};
      return function (n) {
        return t.hasOwnProperty(n) || (t[n] = e(n)), t[n]
      }
    }(function (e) {
      return new i(e)
    })
  }), define(d[457], h([1, 0, 139, 9]), function (e, t, n, i) {
    "use strict";

    function o(e, t, i, o) {
      return new n.LcsDiff(e, t, i).ComputeDiff(o)
    }

    function r(e) {
      if (e.length <= 1) {
        return e;
      }
      for (var t = [e[0]], n = t[0], i = 1, o = e.length; i < o; i++) {
        var r = e[i],
            s = r.originalStart - (n.originalStart + n.originalLength),
            u = r.modifiedStart - (n.modifiedStart + n.modifiedLength);
        Math.min(s, u) < a ? (n.originalLength = r.originalStart
            + r.originalLength
            - n.originalStart, n.modifiedLength = r.modifiedStart
            + r.modifiedLength - n.modifiedStart) : (t.push(r), n = r)
      }
      return t
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var s = 5e3, a = 3, u = function () {
      function e(e, t, n) {
        this.buffer = e, this.startMarkers = t, this.endMarkers = n
      }

      return e.prototype.equals = function (t) {
        if (!(t instanceof e)) {
          return !1;
        }
        var n = t;
        if (this.getLength() !== n.getLength()) {
          return !1;
        }
        for (var i = 0, o = this.getLength(); i < o;
            i++) {
          if (this.getElementHash(i) !== n.getElementHash(i)) {
            return !1;
          }
        }
        return !0
      }, e.prototype.getLength = function () {
        return this.startMarkers.length
      }, e.prototype.getElementHash = function (e) {
        return this.buffer.substring(this.startMarkers[e].offset,
            this.endMarkers[e].offset)
      }, e.prototype.getStartLineNumber = function (e) {
        return e === this.startMarkers.length ? this.startMarkers[e
        - 1].lineNumber + 1 : this.startMarkers[e].lineNumber
      }, e.prototype.getStartColumn = function (e) {
        return this.startMarkers[e].column
      }, e.prototype.getEndLineNumber = function (e) {
        return this.endMarkers[e].lineNumber
      }, e.prototype.getEndColumn = function (e) {
        return this.endMarkers[e].column
      }, e
    }(), l = function (e) {
      function t(n) {
        for (var i = "", o = [], r = [], s = 0, a = 0, u = n.length; a < u;
            a++) {
          i += n[a];
          var l = t._getFirstNonBlankColumn(n[a], 1),
              c = t._getLastNonBlankColumn(n[a], 1);
          o.push({offset: s + l - 1, lineNumber: a + 1, column: l}), r.push({
            offset: s + c - 1,
            lineNumber: a + 1,
            column: c
          }), s += n[a].length
        }
        return e.call(this, i, o, r) || this
      }

      return f(t, e), t._getFirstNonBlankColumn = function (e, t) {
        var n = i.firstNonWhitespaceIndex(e);
        return -1 === n ? t : n + 1
      }, t._getLastNonBlankColumn = function (e, t) {
        var n = i.lastNonWhitespaceIndex(e);
        return -1 === n ? t : n + 2
      }, t.prototype.getCharSequence = function (e, t) {
        for (var n = [], i = [], o = e; o <= t;
            o++) {
          for (var r = this.startMarkers[o], s = this.endMarkers[o],
              a = r.offset; a < s.offset; a++) {
            n.push({
              offset: a,
              lineNumber: r.lineNumber,
              column: r.column + (a - r.offset)
            }), i.push({
              offset: a + 1,
              lineNumber: r.lineNumber,
              column: r.column + (a - r.offset) + 1
            });
          }
        }
        return new u(this.buffer, n, i)
      }, t
    }(u), c = function () {
      function e(e, t, n, i, o, r, s, a) {
        this.originalStartLineNumber = e, this.originalStartColumn = t, this.originalEndLineNumber = n, this.originalEndColumn = i, this.modifiedStartLineNumber = o, this.modifiedStartColumn = r, this.modifiedEndLineNumber = s, this.modifiedEndColumn = a
      }

      return e.createFromDiffChange = function (t, n, i) {
        var o, r, s, a, u, l, c, d;
        return 0 === t.originalLength ? (o = 0, r = 0, s = 0, a = 0)
            : (o = n.getStartLineNumber(t.originalStart), r = n.getStartColumn(
                t.originalStart), s = n.getEndLineNumber(
                t.originalStart + t.originalLength - 1), a = n.getEndColumn(
                t.originalStart + t.originalLength - 1)), 0 === t.modifiedLength
            ? (u = 0, l = 0, c = 0, d = 0) : (u = i.getStartLineNumber(
                t.modifiedStart), l = i.getStartColumn(
                t.modifiedStart), c = i.getEndLineNumber(
                t.modifiedStart + t.modifiedLength - 1), d = i.getEndColumn(
                t.modifiedStart + t.modifiedLength - 1)), new e(o, r, s, a, u,
            l, c, d)
      }, e
    }(), d = function () {
      function e(e, t, n, i, o) {
        this.originalStartLineNumber = e, this.originalEndLineNumber = t, this.modifiedStartLineNumber = n, this.modifiedEndLineNumber = i, this.charChanges = o
      }

      return e.createFromDiffResult = function (t, n, i, s, a) {
        var u, l, d, h, p;
        if (0 === t.originalLength ? (u = n.getStartLineNumber(t.originalStart)
            - 1, l = 0) : (u = n.getStartLineNumber(
            t.originalStart), l = n.getEndLineNumber(
            t.originalStart + t.originalLength - 1)), 0 === t.modifiedLength
            ? (d = i.getStartLineNumber(t.modifiedStart) - 1, h = 0)
            : (d = i.getStartLineNumber(
                t.modifiedStart), h = i.getEndLineNumber(
                t.modifiedStart + t.modifiedLength - 1)), 0 !== t.originalLength
        && 0 !== t.modifiedLength && s()) {
          var f = n.getCharSequence(t.originalStart,
                  t.originalStart + t.originalLength - 1),
              g = i.getCharSequence(t.modifiedStart,
                  t.modifiedStart + t.modifiedLength - 1), m = o(f, g, s, !1);
          a && (m = r(m)), p = [];
          for (var v = 0, _ = m.length; v < _; v++) {
            p.push(
                c.createFromDiffChange(m[v], f, g))
          }
        }
        return new e(u, l, d, h, p)
      }, e
    }(), h = function () {
      function e(e, t, n) {
        this.shouldPostProcessCharChanges = n.shouldPostProcessCharChanges, this.shouldIgnoreTrimWhitespace = n.shouldIgnoreTrimWhitespace, this.shouldMakePrettyDiff = n.shouldMakePrettyDiff, this.maximumRunTimeMs = s, this.originalLines = e, this.modifiedLines = t, this.original = new l(
            e), this.modified = new l(
            t), n.shouldConsiderTrimWhitespaceInEmptyCase
        && this.shouldIgnoreTrimWhitespace && this.original.equals(
            this.modified) && (this.shouldIgnoreTrimWhitespace = !1)
      }

      return e.prototype.computeDiff = function () {
        if (1 === this.original.getLength() && 0
            === this.original.getElementHash(0).length) {
          return [{
            originalStartLineNumber: 1,
            originalEndLineNumber: 1,
            modifiedStartLineNumber: 1,
            modifiedEndLineNumber: this.modified.getLength(),
            charChanges: [{
              modifiedEndColumn: 0,
              modifiedEndLineNumber: 0,
              modifiedStartColumn: 0,
              modifiedStartLineNumber: 0,
              originalEndColumn: 0,
              originalEndLineNumber: 0,
              originalStartColumn: 0,
              originalStartLineNumber: 0
            }]
          }];
        }
        if (1 === this.modified.getLength() && 0
            === this.modified.getElementHash(0).length) {
          return [{
            originalStartLineNumber: 1,
            originalEndLineNumber: this.original.getLength(),
            modifiedStartLineNumber: 1,
            modifiedEndLineNumber: 1,
            charChanges: [{
              modifiedEndColumn: 0,
              modifiedEndLineNumber: 0,
              modifiedStartColumn: 0,
              modifiedStartLineNumber: 0,
              originalEndColumn: 0,
              originalEndLineNumber: 0,
              originalStartColumn: 0,
              originalStartLineNumber: 0
            }]
          }];
        }
        this.computationStartTime = (new Date).getTime();
        var e = o(this.original, this.modified,
            this._continueProcessingPredicate.bind(this),
            this.shouldMakePrettyDiff);
        if (this.shouldIgnoreTrimWhitespace) {
          for (var t = [], n = 0, i = e.length; n < i; n++) {
            t.push(
                d.createFromDiffResult(e[n], this.original, this.modified,
                    this._continueProcessingPredicate.bind(this),
                    this.shouldPostProcessCharChanges));
          }
          return t
        }
        for (var r = [], s = 0, a = 0, n = -1, u = e.length; n < u; n++) {
          for (var c = n + 1 < u ? e[n + 1] : null,
              h = c ? c.originalStart : this.originalLines.length,
              p = c ? c.modifiedStart : this.modifiedLines.length;
              s < h && a < p;) {
            var f = this.originalLines[s], g = this.modifiedLines[a];
            if (f !== g) {
              for (var m = l._getFirstNonBlankColumn(f, 1),
                  v = l._getFirstNonBlankColumn(g, 1);
                  m > 1 && v > 1 && (w = f.charCodeAt(m - 2))
                  === (S = g.charCodeAt(v - 2));) {
                m--, v--;
              }
              (m > 1 || v > 1) && this._pushTrimWhitespaceCharChange(r, s + 1,
                  1, m, a + 1, 1, v);
              for (var _ = l._getLastNonBlankColumn(f, 1),
                  y = l._getLastNonBlankColumn(g, 1), C = f.length + 1,
                  b = g.length + 1; _ < C && y < b;) {
                var w = f.charCodeAt(_ - 1), S = f.charCodeAt(y - 1);
                if (w !== S) {
                  break;
                }
                _++, y++
              }
              (_ < C || y < b) && this._pushTrimWhitespaceCharChange(r, s + 1,
                  _, C, a + 1, y, b)
            }
            s++, a++
          }
          c && (r.push(d.createFromDiffResult(c, this.original, this.modified,
              this._continueProcessingPredicate.bind(this),
              this.shouldPostProcessCharChanges)), s += c.originalLength, a += c.modifiedLength)
        }
        return r
      }, e.prototype._pushTrimWhitespaceCharChange = function (e, t, n, i, o, r,
          s) {
        this._mergeTrimWhitespaceCharChange(e, t, n, i, o, r, s) || e.push(
            new d(t, t, o, o, [new c(t, n, t, i, o, r, o, s)]))
      }, e.prototype._mergeTrimWhitespaceCharChange = function (e, t, n, i, o,
          r, s) {
        var a = e.length;
        if (0 === a) {
          return !1;
        }
        var u = e[a - 1];
        return 0 !== u.originalEndLineNumber && 0 !== u.modifiedEndLineNumber
            && (u.originalEndLineNumber + 1 === t && u.modifiedEndLineNumber + 1
                === o
                && (u.originalEndLineNumber = t, u.modifiedEndLineNumber = o, u.charChanges.push(
                    new c(t, n, t, i, o, r, o, s)), !0))
      }, e.prototype._continueProcessingPredicate = function () {
        return 0 === this.maximumRunTimeMs || (new Date).getTime()
            - this.computationStartTime < this.maximumRunTimeMs
      }, e
    }();
    t.DiffComputer = h
  }), define(d[149], h([1, 0, 7]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t, n, i, o, r) {
        this.id = e, this.label = t, this.alias = n, this._precondition = i, this._run = o, this._contextKeyService = r
      }

      return e.prototype.isSupported = function () {
        return this._contextKeyService.contextMatchesRules(this._precondition)
      }, e.prototype.run = function () {
        if (!this.isSupported()) {
          return n.TPromise.as(void 0);
        }
        var e = this._run();
        return e || n.TPromise.as(void 0)
      }, e
    }();
    t.InternalEditorAction = i
  }), define(d[20], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.Left = 1] = "Left", e[e.Center = 2] = "Center", e[e.Right = 4] = "Right", e[e.Full = 7] = "Full"
    }(t.OverviewRulerLane || (t.OverviewRulerLane = {}));
    !function (e) {
      e[e.TextDefined = 0] = "TextDefined", e[e.LF = 1] = "LF", e[e.CRLF = 2] = "CRLF"
    }(t.EndOfLinePreference || (t.EndOfLinePreference = {}));
    !function (e) {
      e[e.LF = 1] = "LF", e[e.CRLF = 2] = "CRLF"
    }(t.DefaultEndOfLine || (t.DefaultEndOfLine = {}));
    !function (e) {
      e[e.LF = 0] = "LF", e[e.CRLF = 1] = "CRLF"
    }(t.EndOfLineSequence || (t.EndOfLineSequence = {}));
    var n = function () {
      function e(e) {
        this.tabSize = 0 | e.tabSize, this.insertSpaces = Boolean(
            e.insertSpaces), this.defaultEOL = 0
            | e.defaultEOL, this.trimAutoWhitespace = Boolean(
            e.trimAutoWhitespace)
      }

      return e.prototype.equals = function (e) {
        return this.tabSize === e.tabSize && this.insertSpaces
            === e.insertSpaces && this.defaultEOL === e.defaultEOL
            && this.trimAutoWhitespace === e.trimAutoWhitespace
      }, e.prototype.createChangeEvent = function (e) {
        return {
          tabSize: this.tabSize !== e.tabSize,
          insertSpaces: this.insertSpaces !== e.insertSpaces,
          trimAutoWhitespace: this.trimAutoWhitespace !== e.trimAutoWhitespace
        }
      }, e
    }();
    t.TextModelResolvedOptions = n;
    var i = function () {
      return function (e, t) {
        this.range = e, this.matches = t
      }
    }();
    t.FindMatch = i;
    !function (e) {
      e[e.AlwaysGrowsWhenTypingAtEdges = 0] = "AlwaysGrowsWhenTypingAtEdges", e[e.NeverGrowsWhenTypingAtEdges = 1] = "NeverGrowsWhenTypingAtEdges", e[e.GrowsOnlyWhenTypingBefore = 2] = "GrowsOnlyWhenTypingBefore", e[e.GrowsOnlyWhenTypingAfter = 3] = "GrowsOnlyWhenTypingAfter"
    }(t.TrackedRangeStickiness
        || (t.TrackedRangeStickiness = {})), t.isThemeColor = function (e) {
      return e && "string" == typeof e.id
    }, t.EditorType = {
      ICodeEditor: "vs.editor.ICodeEditor",
      IDiffEditor: "vs.editor.IDiffEditor"
    }, t.isCommonCodeEditor = function (e) {
      return !(!e || "function" != typeof e.getEditorType) && e.getEditorType()
          === t.EditorType.ICodeEditor
    }, t.isCommonDiffEditor = function (e) {
      return !(!e || "function" != typeof e.getEditorType) && e.getEditorType()
          === t.EditorType.IDiffEditor
    }, t.Handler = {
      ExecuteCommand: "executeCommand",
      ExecuteCommands: "executeCommands",
      Type: "type",
      ReplacePreviousChar: "replacePreviousChar",
      CompositionStart: "compositionStart",
      CompositionEnd: "compositionEnd",
      Paste: "paste",
      Cut: "cut",
      Undo: "undo",
      Redo: "redo"
    }
  }), define(d[151], h([1, 0, 2, 20, 9]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e(e, t, n) {
        this.value = e, this.selectionStart = t, this.selectionEnd = n
      }

      return e.prototype.equals = function (t) {
        return t instanceof e && (this.value === t.value && this.selectionStart
            === t.selectionStart && this.selectionEnd === t.selectionEnd)
      }, e.prototype.toString = function () {
        return "[ <" + this.value + ">, selectionStart: " + this.selectionStart
            + ", selectionEnd: " + this.selectionEnd + "]"
      }, e.prototype.readFromTextArea = function (t) {
        return new e(t.getValue(), t.getSelectionStart(), t.getSelectionEnd())
      }, e.prototype.collapseSelection = function () {
        return new e(this.value, this.value.length, this.value.length)
      }, e.prototype.writeToTextArea = function (e, t, n) {
        t.setValue(e, this.value), n && t.setSelectionRange(e,
            this.selectionStart, this.selectionEnd)
      }, e.selectedText = function (t) {
        return new e(t, 0, t.length)
      }, e.deduceInput = function (e, t, n) {
        if (!e) {
          return {text: "", replaceCharCnt: 0};
        }
        var i = e.value, r = e.selectionStart, s = e.selectionEnd, a = t.value,
            u = t.selectionStart, l = t.selectionEnd, c = i.substring(s),
            d = a.substring(l), h = o.commonSuffixLength(c, d);
        a = a.substring(0, a.length - h);
        var p = (i = i.substring(0, i.length - h)).substring(0, r),
            f = a.substring(0, u), g = o.commonPrefixLength(p, f);
        if (a = a.substring(g), i = i.substring(
            g), u -= g, r -= g, l -= g, s -= g, n && u === l && i.length > 0) {
          var m = null;
          if (u === a.length ? o.startsWith(a, i) && (m = a.substring(i.length))
              : o.endsWith(a, i) && (m = a.substring(0,
              a.length - i.length)), null !== m && m.length > 0
          && (/\uFE0F/.test(m) || o.containsEmoji(m))) {
            return {
              text: m,
              replaceCharCnt: 0
            }
          }
        }
        return u === l ? i === a && 0 === r && s === i.length && u === a.length
        && -1 === a.indexOf("\n") && o.containsFullWidthCharacter(a)
            ? {text: "", replaceCharCnt: 0} : {
              text: a,
              replaceCharCnt: p.length - g
            } : {text: a, replaceCharCnt: s - r}
      }, e.EMPTY = new e("", 0, 0), e
    }();
    t.TextAreaState = r;
    var s = function () {
      function e() {
      }

      return e._getPageOfLine = function (t) {
        return Math.floor((t - 1) / e._LINES_PER_PAGE)
      }, e._getRangeForPage = function (t) {
        var i = t * e._LINES_PER_PAGE, o = i + 1, r = i + e._LINES_PER_PAGE;
        return new n.Range(o, 1, r + 1, 1)
      }, e.fromEditorSelection = function (t, o, s) {
        var a = e._getPageOfLine(s.startLineNumber), u = e._getRangeForPage(a),
            l = e._getPageOfLine(s.endLineNumber), c = e._getRangeForPage(l),
            d = u.intersectRanges(
                new n.Range(1, 1, s.startLineNumber, s.startColumn)),
            h = o.getValueInRange(d, i.EndOfLinePreference.LF),
            p = o.getLineCount(), f = o.getLineMaxColumn(p),
            g = c.intersectRanges(
                new n.Range(s.endLineNumber, s.endColumn, p, f)),
            m = o.getValueInRange(g, i.EndOfLinePreference.LF), v = null;
        if (a === l || a + 1 === l) {
          v = o.getValueInRange(s,
              i.EndOfLinePreference.LF);
        } else {
          var _ = u.intersectRanges(s), y = c.intersectRanges(s);
          v = o.getValueInRange(_, i.EndOfLinePreference.LF)
              + String.fromCharCode(8230) + o.getValueInRange(y,
                  i.EndOfLinePreference.LF)
        }
        return h.length > 500 && (h = h.substring(h.length - 500,
            h.length)), m.length > 500 && (m = m.substring(0, 500)), v.length
        > 1e3 && (v = v.substring(0, 500) + String.fromCharCode(8230)
            + v.substring(v.length - 500, v.length)), new r(h + v + m, h.length,
            h.length + v.length)
      }, e._LINES_PER_PAGE = 10, e
    }();
    t.PagedScreenReaderStrategy = s
  }), define(d[154], h([1, 0, 18, 9, 11, 3, 151, 28, 15, 4]),
      function (e, t, n, i, o, r, s, a, u, l) {
        "use strict";
        Object.defineProperty(t, "__esModule",
            {value: !0}), t.CopyOptions = {forceCopyWithSyntaxHighlighting: !1};
        var c;
        !function (e) {
          e[e.Type = 0] = "Type", e[e.Paste = 1] = "Paste"
        }(c || (c = {}));
        var d = function (e) {
          function r(t, r) {
            var c = e.call(this) || this;
            c._onFocus = c._register(
                new o.Emitter), c.onFocus = c._onFocus.event, c._onBlur = c._register(
                new o.Emitter), c.onBlur = c._onBlur.event, c._onKeyDown = c._register(
                new o.Emitter), c.onKeyDown = c._onKeyDown.event, c._onKeyUp = c._register(
                new o.Emitter), c.onKeyUp = c._onKeyUp.event, c._onCut = c._register(
                new o.Emitter), c.onCut = c._onCut.event, c._onPaste = c._register(
                new o.Emitter), c.onPaste = c._onPaste.event, c._onType = c._register(
                new o.Emitter), c.onType = c._onType.event, c._onCompositionStart = c._register(
                new o.Emitter), c.onCompositionStart = c._onCompositionStart.event, c._onCompositionUpdate = c._register(
                new o.Emitter), c.onCompositionUpdate = c._onCompositionUpdate.event, c._onCompositionEnd = c._register(
                new o.Emitter), c.onCompositionEnd = c._onCompositionEnd.event, c._host = t, c._textArea = c._register(
                new p(r)), c._asyncTriggerCut = c._register(
                new n.RunOnceScheduler(function () {
                      return c._onCut.fire()
                    },
                    0)), c._textAreaState = s.TextAreaState.EMPTY, c.writeScreenReaderContent(
                "ctor"), c._hasFocus = !1, c._isDoingComposition = !1, c._nextCommand = 0, c._register(
                l.addStandardDisposableListener(r.domNode, "keydown",
                    function (e) {
                      c._isDoingComposition && e.equals(109)
                      && e.stopPropagation(), e.equals(9)
                      && e.preventDefault(), c._onKeyDown.fire(e)
                    })), c._register(
                l.addStandardDisposableListener(r.domNode, "keyup",
                    function (e) {
                      c._onKeyUp.fire(e)
                    })), c._register(
                l.addDisposableListener(r.domNode, "compositionstart",
                    function (e) {
                      c._isDoingComposition
                      || (c._isDoingComposition = !0, a.isEdgeOrIE
                      || c._setAndWriteTextAreaState("compositionstart",
                          s.TextAreaState.EMPTY), c._onCompositionStart.fire())
                    }));
            var d = function (e) {
              var t = c._textAreaState,
                  n = c._textAreaState.readFromTextArea(c._textArea);
              return [n, s.TextAreaState.deduceInput(t, n, e)]
            }, f = function (e) {
              var t = c._textAreaState, n = s.TextAreaState.selectedText(e);
              return [n, {
                text: n.value,
                replaceCharCnt: t.selectionEnd - t.selectionStart
              }]
            };
            return c._register(
                l.addDisposableListener(r.domNode, "compositionupdate",
                    function (e) {
                      if (!a.isChromev56) {
                        if (a.isEdgeOrIE && "ja" === e.locale) {
                          var t = d(!1), n = t[0], i = t[1];
                          return c._textAreaState = n, c._onType.fire(
                              i), void c._onCompositionUpdate.fire(e)
                        }
                        var o = f(e.data), r = o[0], s = o[1];
                        c._textAreaState = r, c._onType.fire(
                            s), c._onCompositionUpdate.fire(e)
                      }
                    })), c._register(
                l.addDisposableListener(r.domNode, "compositionend",
                    function (e) {
                      if (a.isEdgeOrIE && "ja" === e.locale) {
                        var t = d(!1), n = t[0], i = t[1];
                        c._textAreaState = n, c._onType.fire(i)
                      } else {
                        var o = f(e.data), n = o[0], i = o[1];
                        c._textAreaState = n, c._onType.fire(i)
                      }
                      (a.isEdgeOrIE || a.isChrome)
                      && (c._textAreaState = c._textAreaState.readFromTextArea(
                          c._textArea)), c._isDoingComposition
                      && (c._isDoingComposition = !1, c._onCompositionEnd.fire())
                    })), c._register(
                l.addDisposableListener(r.domNode, "input", function () {
                  if (c._isDoingComposition) {
                    if (a.isChromev56) {
                      var e = f(c._textArea.getValue()), t = e[0], n = e[1];
                      c._textAreaState = t, c._onType.fire(n);
                      var o = {data: n.text};
                      c._onCompositionUpdate.fire(o)
                    }
                  } else {
                    var r = d(u.isMacintosh), s = r[0], l = r[1];
                    0 === l.replaceCharCnt && 1 === l.text.length
                    && i.isHighSurrogate(l.text.charCodeAt(0))
                    || (c._textAreaState = s, 0 === c._nextCommand ? ""
                        !== l.text && c._onType.fire(l) : ("" !== l.text
                    && c._onPaste.fire({text: l.text}), c._nextCommand = 0))
                  }
                })), c._register(
                l.addDisposableListener(r.domNode, "cut", function (e) {
                  c._ensureClipboardGetsEditorSelection(
                      e), c._asyncTriggerCut.schedule()
                })), c._register(
                l.addDisposableListener(r.domNode, "copy", function (e) {
                  c._ensureClipboardGetsEditorSelection(e)
                })), c._register(
                l.addDisposableListener(r.domNode, "paste", function (e) {
                  if (h.canUseTextData(e)) {
                    var t = h.getTextData(e);
                    "" !== t && c._onPaste.fire({text: t})
                  } else {
                    c._textArea.getSelectionStart()
                    !== c._textArea.getSelectionEnd()
                    && c._setAndWriteTextAreaState("paste",
                        s.TextAreaState.EMPTY), c._nextCommand = 1
                  }
                })), c._register(
                l.addDisposableListener(r.domNode, "focus", function () {
                  return c._setHasFocus(!0)
                })), c._register(
                l.addDisposableListener(r.domNode, "blur", function () {
                  return c._setHasFocus(!1)
                })), c
          }

          return f(r, e), r.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, r.prototype.focusTextArea = function () {
            this._setHasFocus(!0)
          }, r.prototype.isFocused = function () {
            return this._hasFocus
          }, r.prototype._setHasFocus = function (e) {
            this._hasFocus !== e && (this._hasFocus = e, this._hasFocus
            && (a.isEdge ? this._setAndWriteTextAreaState("focusgain",
                s.TextAreaState.EMPTY) : this.writeScreenReaderContent(
                "focusgain")), this._hasFocus ? this._onFocus.fire()
                : this._onBlur.fire())
          }, r.prototype._setAndWriteTextAreaState = function (e, t) {
            this._hasFocus || (t = t.collapseSelection()), t.writeToTextArea(e,
                this._textArea, this._hasFocus), this._textAreaState = t
          }, r.prototype.writeScreenReaderContent = function (e) {
            this._isDoingComposition || this._setAndWriteTextAreaState(e,
                this._host.getScreenReaderContent(this._textAreaState))
          }, r.prototype._ensureClipboardGetsEditorSelection = function (e) {
            var n = this._host.getPlainTextToCopy();
            if (h.canUseTextData(e)) {
              var i = null;
              !a.isEdgeOrIE && (n.length < 65536
                  || t.CopyOptions.forceCopyWithSyntaxHighlighting)
              && (i = this._host.getHTMLToCopy()), h.setTextData(e, n, i)
            } else {
              this._setAndWriteTextAreaState("copy or cut",
                  s.TextAreaState.selectedText(n))
            }
          }, r
        }(r.Disposable);
        t.TextAreaInput = d;
        var h = function () {
          function e() {
          }

          return e.canUseTextData = function (e) {
            return !!e.clipboardData || !!window.clipboardData
          }, e.getTextData = function (e) {
            if (e.clipboardData) {
              return e.preventDefault(), e.clipboardData.getData(
                  "text/plain");
            }
            if (window.clipboardData) {
              return e.preventDefault(), window.clipboardData.getData(
                  "Text");
            }
            throw new Error(
                "ClipboardEventUtils.getTextData: Cannot use text data!")
          }, e.setTextData = function (e, t, n) {
            if (e.clipboardData) {
              return e.clipboardData.setData("text/plain",
                  t), null !== n && e.clipboardData.setData("text/html",
                  n), void e.preventDefault();
            }
            if (window.clipboardData) {
              return window.clipboardData.setData(
                  "Text", t), void e.preventDefault();
            }
            throw new Error(
                "ClipboardEventUtils.setTextData: Cannot use text data!")
          }, e
        }(), p = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n._actual = t, n
          }

          return f(t, e), t.prototype.getValue = function () {
            return this._actual.domNode.value
          }, t.prototype.setValue = function (e, t) {
            var n = this._actual.domNode;
            n.value !== t && (n.value = t)
          }, t.prototype.getSelectionStart = function () {
            return this._actual.domNode.selectionStart
          }, t.prototype.getSelectionEnd = function () {
            return this._actual.domNode.selectionEnd
          }, t.prototype.setSelectionRange = function (e, t, n) {
            var i = this._actual.domNode, o = document.activeElement === i,
                r = i.selectionStart, s = i.selectionEnd;
            if (!o || r !== t || s !== n) {
              if (o) {
                i.setSelectionRange(t,
                    n);
              } else {
                try {
                  var a = l.saveParentsScrollTop(i);
                  i.focus(), i.setSelectionRange(t,
                      n), l.restoreParentsScrollTop(i,
                      a)
                } catch (e) {
                }
              }
            }
          }, t
        }(r.Disposable)
      }), define(d[475], h([1, 0, 10]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e) {
        this.model = e, this.currentOpenStackElement = null, this.past = [], this.future = []
      }

      return e.prototype.pushStackElement = function () {
        null !== this.currentOpenStackElement && (this.past.push(
            this.currentOpenStackElement), this.currentOpenStackElement = null)
      }, e.prototype.clear = function () {
        this.currentOpenStackElement = null, this.past = [], this.future = []
      }, e.prototype.pushEditOperation = function (e, t, i) {
        this.future = [], this.currentOpenStackElement
        || (this.currentOpenStackElement = {
          beforeVersionId: this.model.getAlternativeVersionId(),
          beforeCursorState: e,
          editOperations: [],
          afterCursorState: null,
          afterVersionId: -1
        });
        var o = {operations: this.model.applyEdits(t)};
        this.currentOpenStackElement.editOperations.push(o);
        try {
          this.currentOpenStackElement.afterCursorState = i ? i(o.operations)
              : null
        } catch (e) {
          n.onUnexpectedError(
              e), this.currentOpenStackElement.afterCursorState = null
        }
        return this.currentOpenStackElement.afterVersionId = this.model.getVersionId(), this.currentOpenStackElement.afterCursorState
      }, e.prototype.undo = function () {
        if (this.pushStackElement(), this.past.length > 0) {
          var e = this.past.pop();
          try {
            for (var t = e.editOperations.length - 1; t >= 0;
                t--) {
              e.editOperations[t] = {
                operations: this.model.applyEdits(
                    e.editOperations[t].operations)
              }
            }
          } catch (e) {
            return this.clear(), null
          }
          return this.future.push(e), {
            selections: e.beforeCursorState,
            recordedVersionId: e.beforeVersionId
          }
        }
        return null
      }, e.prototype.redo = function () {
        if (this.future.length > 0) {
          if (this.currentOpenStackElement) {
            throw new Error(
                "How is this possible?");
          }
          var e = this.future.pop();
          try {
            for (var t = 0; t < e.editOperations.length;
                t++) {
              e.editOperations[t] = {
                operations: this.model.applyEdits(
                    e.editOperations[t].operations)
              }
            }
          } catch (e) {
            return this.clear(), null
          }
          return this.past.push(e), {
            selections: e.afterCursorState,
            recordedVersionId: e.afterVersionId
          }
        }
        return null
      }, e
    }();
    t.EditStack = i
  }), define(d[481], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e, t, n) {
        this.startLineNumber = e, this.endLineNumber = t, this.indent = n
      }

      return e.deepCloneArr = function (t) {
        for (var n = [], i = 0, o = t.length; i < o; i++) {
          var r = t[i];
          n[i] = new e(r.startLineNumber, r.endLineNumber, r.indent)
        }
        return n
      }, e
    }();
    t.IndentRange = n, t.computeRanges = function (e, t) {
      void 0 === t && (t = 1);
      var i = [], o = [];
      o.push({indent: -1, line: e.getLineCount() + 1});
      for (var r = e.getLineCount(); r > 0; r--) {
        var s = e.getIndentLevel(r);
        if (-1 !== s) {
          var a = o[o.length - 1];
          if (a.indent > s) {
            do {
              o.pop(), a = o[o.length - 1]
            } while (a.indent > s);
            var u = a.line - 1;
            u - r >= t && i.push(new n(r, u, s))
          }
          a.indent === s ? a.line = r : o.push({indent: s, line: r})
        }
      }
      return i.reverse()
    }
  }), define(d[482], h([1, 0]), function (e, t) {
    "use strict";

    function n(e, t, n, i) {
      var o;
      for (o = 0;
          o < t && o < i && (u = e.charCodeAt(o)) === (d = n.charCodeAt(o));
          o++) {
        ;
      }
      for (var r = 0, s = 0, a = o; a < t; a++) {
        var u = e.charCodeAt(a);
        32 === u ? r++ : s++
      }
      for (var l = 0, c = 0, a = o; a < i; a++) {
        var d = n.charCodeAt(a);
        32 === d ? l++ : c++
      }
      if (r > 0 && s > 0) {
        return 0;
      }
      if (l > 0 && c > 0) {
        return 0;
      }
      var h = Math.abs(s - c), p = Math.abs(r - l);
      return 0 === h ? p : p % h == 0 ? p / h : 0
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.guessIndentation = function (e, t, i) {
      for (var o = Math.min(e.length, 1e4), r = 0, s = 0, a = "", u = 0,
          l = [2, 4, 6, 8], c = [0, 0, 0, 0, 0, 0, 0, 0, 0], d = 0; d < o;
          d++) {
        for (var h = e[d], p = !1, f = 0, g = 0, m = 0, v = 0, _ = h.length;
            v < _; v++) {
          var y = h.charCodeAt(v);
          if (9 === y) {
            m++;
          } else {
            if (32 !== y) {
              p = !0, f = v;
              break
            }
            g++
          }
        }
        if (p) {
          m > 0 ? r++ : g > 1 && s++;
          var C = n(a, u, h, f);
          C <= 8 && c[C]++, a = h, u = f
        }
      }
      var b = n(a, u, "", 0);
      b <= 8 && c[b]++;
      var w = i;
      r !== s && (w = r < s);
      var S = t, E = w ? 0 : .1 * o;
      return l.forEach(function (e) {
        var t = c[e];
        t > E && (E = t, S = e)
      }), {insertSpaces: w, tabSize: S}
    }
  }), define(d[55], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.TextModelEventType = {
      ModelDispose: "modelDispose",
      ModelTokensChanged: "modelTokensChanged",
      ModelLanguageChanged: "modelLanguageChanged",
      ModelOptionsChanged: "modelOptionsChanged",
      ModelContentChanged: "contentChanged",
      ModelRawContentChanged2: "rawContentChanged2",
      ModelDecorationsChanged: "decorationsChanged"
    };
    !function (e) {
      e[e.Flush = 1] = "Flush", e[e.LineChanged = 2] = "LineChanged", e[e.LinesDeleted = 3] = "LinesDeleted", e[e.LinesInserted = 4] = "LinesInserted", e[e.EOLChanged = 5] = "EOLChanged"
    }(t.RawContentChangedType || (t.RawContentChangedType = {}));
    var n = function () {
      return function () {
        this.changeType = 1
      }
    }();
    t.ModelRawFlush = n;
    var i = function () {
      return function (e, t) {
        this.changeType = 2, this.lineNumber = e, this.detail = t
      }
    }();
    t.ModelRawLineChanged = i;
    var o = function () {
      return function (e, t) {
        this.changeType = 3, this.fromLineNumber = e, this.toLineNumber = t
      }
    }();
    t.ModelRawLinesDeleted = o;
    var r = function () {
      return function (e, t, n) {
        this.changeType = 4, this.fromLineNumber = e, this.toLineNumber = t, this.detail = n
      }
    }();
    t.ModelRawLinesInserted = r;
    var s = function () {
      return function () {
        this.changeType = 5
      }
    }();
    t.ModelRawEOLChanged = s;
    var a = function () {
      function e(e, t, n, i) {
        this.changes = e, this.versionId = t, this.isUndoing = n, this.isRedoing = i
      }

      return e.prototype.containsEvent = function (e) {
        for (var t = 0, n = this.changes.length; t < n;
            t++) {
          if (this.changes[t].changeType === e) {
            return !0;
          }
        }
        return !1
      }, e
    }();
    t.ModelRawContentChangedEvent = a
  }), define(d[158], h([1, 0, 9, 12, 2, 20, 94]),
      function (e, t, n, i, o, r, s) {
        "use strict";

        function a(e, t, n) {
          if (!n) {
            return new r.FindMatch(e, null);
          }
          for (var i = [], o = 0, s = t.length; o < s; o++) {
            i[o] = t[o];
          }
          return new r.FindMatch(e, i)
        }

        function u(e, t, n, i, o) {
          if (0 === i) {
            return !0;
          }
          var r = t.charCodeAt(i - 1);
          if (0 !== e.get(r)) {
            return !0;
          }
          if (o > 0) {
            var s = t.charCodeAt(i);
            if (0 !== e.get(s)) {
              return !0
            }
          }
          return !1
        }

        function l(e, t, n, i, o) {
          if (i + o === n) {
            return !0;
          }
          var r = t.charCodeAt(i + o);
          if (0 !== e.get(r)) {
            return !0;
          }
          if (o > 0) {
            var s = t.charCodeAt(i + o - 1);
            if (0 !== e.get(s)) {
              return !0
            }
          }
          return !1
        }

        function c(e, t, n, i, o) {
          return u(e, t, n, i, o) && l(e, t, n, i, o)
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function () {
          function e(e, t, n, i) {
            this.searchString = e, this.isRegex = t, this.matchCase = n, this.wordSeparators = i
          }

          return e._isMultilineRegexSource = function (e) {
            if (!e || 0 === e.length) {
              return !1;
            }
            for (var t = 0, n = e.length; t < n; t++) {
              if (92 === e.charCodeAt(
                  t)) {
                if (++t >= n) {
                  break;
                }
                var i = e.charCodeAt(t);
                if (110 === i || 114 === i) {
                  return !0
                }
              }
            }
            return !1
          }, e.prototype.parseSearchRequest = function () {
            if ("" === this.searchString) {
              return null;
            }
            var t;
            t = this.isRegex ? e._isMultilineRegexSource(this.searchString)
                : this.searchString.indexOf("\n") >= 0;
            var i = null;
            try {
              i = n.createRegExp(this.searchString, this.isRegex, {
                matchCase: this.matchCase,
                wholeWord: !1,
                multiline: t,
                global: !0
              })
            } catch (e) {
              return null
            }
            if (!i) {
              return null;
            }
            var o = !this.isRegex && !t;
            return o && this.searchString.toLowerCase()
            !== this.searchString.toUpperCase() && (o = this.matchCase), new h(
                i, this.wordSeparators ? s.getMapForWordSeparators(
                    this.wordSeparators) : null, o ? this.searchString : null)
          }, e
        }();
        t.SearchParams = d;
        var h = function () {
          return function (e, t, n) {
            this.regex = e, this.wordSeparators = t, this.simpleSearch = n
          }
        }();
        t.SearchData = h;
        var p = function () {
          function e() {
          }

          return e.findMatches = function (e, t, n, i, o) {
            var r = t.parseSearchRequest();
            return r ? r.regex.multiline ? this._doFindMatchesMultiline(e, n,
                    new f(r.wordSeparators, r.regex), i, o)
                : this._doFindMatchesLineByLine(e, n, r, i, o) : []
          }, e._getMultilineMatchRange = function (e, t, n, i, r) {
            var s;
            if ("\r\n" === e.getEOL()) {
              for (var a = 0, u = 0; u < i; u++) {
                10 === (h = n.charCodeAt(u))
                && a++;
              }
              s = t + i + a
            } else {
              s = t + i;
            }
            var l;
            if ("\r\n" === e.getEOL()) {
              for (var c = 0, u = 0, d = r.length; u < d; u++) {
                var h = n.charCodeAt(u + i);
                10 === h && c++
              }
              l = s + r.length + c
            } else {
              l = s + r.length;
            }
            var p = e.getPositionAt(s), f = e.getPositionAt(l);
            return new o.Range(p.lineNumber, p.column, f.lineNumber, f.column)
          }, e._doFindMatchesMultiline = function (e, t, n, i, o) {
            var s, u = e.getOffsetAt(t.getStartPosition()),
                l = e.getValueInRange(t, r.EndOfLinePreference.LF), c = [],
                d = 0;
            for (n.reset(0); s = n.next(l);) {
              if (c[d++] = a(
                  this._getMultilineMatchRange(e, u, l, s.index, s[0]), s, i), d
              >= o) {
                return c;
              }
            }
            return c
          }, e._doFindMatchesLineByLine = function (e, t, n, i, o) {
            var r = [], s = 0;
            if (t.startLineNumber === t.endLineNumber) {
              var a = e.getLineContent(t.startLineNumber).substring(
                  t.startColumn - 1, t.endColumn - 1);
              return s = this._findMatchesInLine(n, a, t.startLineNumber,
                  t.startColumn - 1, s, r, i, o), r
            }
            var u = e.getLineContent(t.startLineNumber).substring(
                t.startColumn - 1);
            s = this._findMatchesInLine(n, u, t.startLineNumber,
                t.startColumn - 1, s, r, i, o);
            for (var l = t.startLineNumber + 1; l < t.endLineNumber && s < o;
                l++) {
              s = this._findMatchesInLine(n, e.getLineContent(l), l, 0,
                  s, r, i, o);
            }
            if (s < o) {
              var c = e.getLineContent(t.endLineNumber).substring(0,
                  t.endColumn - 1);
              s = this._findMatchesInLine(n, c, t.endLineNumber, 0, s, r, i, o)
            }
            return r
          }, e._findMatchesInLine = function (e, t, n, i, s, u, l, d) {
            var h = e.wordSeparators;
            if (!l && e.simpleSearch) {
              for (var p = e.simpleSearch, g = p.length, m = t.length, v = -g;
                  -1 !== (v = t.indexOf(p, v + g));) {
                if ((!h || c(h, t, m, v,
                    g)) && (u[s++] = new r.FindMatch(
                    new o.Range(n, v + 1 + i, n, v + 1 + g + i), null), s
                >= d)) {
                  return s;
                }
              }
              return s
            }
            var _, y = new f(e.wordSeparators, e.regex);
            y.reset(0);
            do {
              if ((_ = y.next(t)) && (u[s++] = a(
                  new o.Range(n, _.index + 1 + i, n,
                      _.index + 1 + _[0].length + i), _, l), s >= d)) {
                return s
              }
            } while (_);
            return s
          }, e.findNextMatch = function (e, t, n, i) {
            var o = t.parseSearchRequest();
            if (!o) {
              return null;
            }
            var r = new f(o.wordSeparators, o.regex);
            return o.regex.multiline ? this._doFindNextMatchMultiline(e, n, r,
                i) : this._doFindNextMatchLineByLine(e, n, r, i)
          }, e._doFindNextMatchMultiline = function (e, t, n, s) {
            var u = new i.Position(t.lineNumber, 1), l = e.getOffsetAt(u),
                c = e.getLineCount(), d = e.getValueInRange(
                    new o.Range(u.lineNumber, u.column, c, e.getLineMaxColumn(c)),
                    r.EndOfLinePreference.LF);
            n.reset(t.column - 1);
            var h = n.next(d);
            return h ? a(this._getMultilineMatchRange(e, l, d, h.index, h[0]),
                h, s) : 1 !== t.lineNumber || 1 !== t.column
                ? this._doFindNextMatchMultiline(e, new i.Position(1, 1), n, s)
                : null
          }, e._doFindNextMatchLineByLine = function (e, t, n, i) {
            var o = e.getLineCount(), r = t.lineNumber, s = e.getLineContent(r),
                a = this._findFirstMatchInLine(n, s, r, t.column, i);
            if (a) {
              return a;
            }
            for (var u = 1; u <= o; u++) {
              var l = (r + u - 1) % o, c = e.getLineContent(l + 1),
                  d = this._findFirstMatchInLine(n, c, l + 1, 1, i);
              if (d) {
                return d
              }
            }
            return null
          }, e._findFirstMatchInLine = function (e, t, n, i, r) {
            e.reset(i - 1);
            var s = e.next(t);
            return s ? a(
                    new o.Range(n, s.index + 1, n, s.index + 1 + s[0].length), s, r)
                : null
          }, e.findPreviousMatch = function (e, t, n, i) {
            var o = t.parseSearchRequest();
            if (!o) {
              return null;
            }
            var r = new f(o.wordSeparators, o.regex);
            return o.regex.multiline ? this._doFindPreviousMatchMultiline(e, n,
                r, i) : this._doFindPreviousMatchLineByLine(e, n, r, i)
          }, e._doFindPreviousMatchMultiline = function (e, t, n, r) {
            var s = this._doFindMatchesMultiline(e,
                new o.Range(1, 1, t.lineNumber, t.column), n, r, 9990);
            if (s.length > 0) {
              return s[s.length - 1];
            }
            var a = e.getLineCount();
            return t.lineNumber !== a || t.column !== e.getLineMaxColumn(a)
                ? this._doFindPreviousMatchMultiline(e,
                    new i.Position(a, e.getLineMaxColumn(a)), n, r) : null
          }, e._doFindPreviousMatchLineByLine = function (e, t, n, i) {
            var o = e.getLineCount(), r = t.lineNumber,
                s = e.getLineContent(r).substring(0, t.column - 1),
                a = this._findLastMatchInLine(n, s, r, i);
            if (a) {
              return a;
            }
            for (var u = 1; u <= o; u++) {
              var l = (o + r - u - 1) % o, c = e.getLineContent(l + 1),
                  d = this._findLastMatchInLine(n, c, l + 1, i);
              if (d) {
                return d
              }
            }
            return null
          }, e._findLastMatchInLine = function (e, t, n, i) {
            var r, s = null;
            for (e.reset(0); r = e.next(t);) {
              s = a(
                  new o.Range(n, r.index + 1, n, r.index + 1 + r[0].length), r,
                  i);
            }
            return s
          }, e
        }();
        t.TextModelSearch = p;
        var f = function () {
          function e(e, t) {
            this._wordSeparators = e, this._searchRegex = t, this._prevMatchStartIndex = -1, this._prevMatchLength = 0
          }

          return e.prototype.reset = function (e) {
            this._searchRegex.lastIndex = e, this._prevMatchStartIndex = -1, this._prevMatchLength = 0
          }, e.prototype.next = function (e) {
            var t, n = e.length;
            do {
              if (this._prevMatchStartIndex + this._prevMatchLength
                  === n) {
                return null;
              }
              if (!(t = this._searchRegex.exec(e))) {
                return null;
              }
              var i = t.index, o = t[0].length;
              if (i === this._prevMatchStartIndex && o
                  === this._prevMatchLength) {
                return null;
              }
              if (this._prevMatchStartIndex = i, this._prevMatchLength = o, !this._wordSeparators
              || c(this._wordSeparators, e, n, i, o)) {
                return t
              }
            } while (t);
            return null
          }, e
        }()
      }), define(d[101], h([1, 0, 9, 20]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e() {
      }

      return e.fromString = function (e) {
        for (var t = 0, i = -1; -1 !== (i = e.indexOf("\r", i + 1));) {
          t++;
        }
        var o = n.containsRTL(e), r = !o && n.isBasicASCII(e),
            s = e.split(/\r\n|\r|\n/), a = "";
        return n.startsWithUTF8BOM(s[0])
        && (a = n.UTF8_BOM_CHARACTER, s[0] = s[0].substr(1)), {
          BOM: a,
          lines: s,
          length: e.length,
          containsRTL: o,
          isBasicASCII: r,
          totalCRCount: t
        }
      }, e
    }();
    t.RawTextSource = o;
    var r = function () {
      function e() {
      }

      return e._getEOL = function (e, t) {
        var n = e.lines.length - 1;
        return 0 === n ? t === i.DefaultEndOfLine.LF ? "\n" : "\r\n"
            : e.totalCRCount > n / 2 ? "\r\n" : "\n"
      }, e.fromRawTextSource = function (e, t) {
        return {
          length: e.length,
          lines: e.lines,
          BOM: e.BOM,
          EOL: this._getEOL(e, t),
          containsRTL: e.containsRTL,
          isBasicASCII: e.isBasicASCII
        }
      }, e.fromString = function (e, t) {
        return this.fromRawTextSource(o.fromString(e), t)
      }, e.create = function (e, t) {
        return "string" == typeof e ? this.fromString(e, t)
            : this.fromRawTextSource(e, t)
      }, e
    }();
    t.TextSource = r
  }), define(d[116], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e() {
      }

      return e.getLanguageId = function (e) {
        return (255 & e) >>> 0
      }, e.getTokenType = function (e) {
        return (1792 & e) >>> 8
      }, e.getFontStyle = function (e) {
        return (14336 & e) >>> 11
      }, e.getForeground = function (e) {
        return (8372224 & e) >>> 14
      }, e.getBackground = function (e) {
        return (4286578688 & e) >>> 23
      }, e.getClassNameFromMetadata = function (e) {
        var t = "mtk" + this.getForeground(e), n = this.getFontStyle(e);
        return 1 & n && (t += " mtki"), 2 & n && (t += " mtkb"), 4 & n
        && (t += " mtku"), t
      }, e.getInlineStyleFromMetadata = function (e, t) {
        var n = this.getForeground(e), i = this.getFontStyle(e),
            o = "color: " + t[n] + ";";
        return 1 & i && (o += "font-style: italic;"), 2 & i
        && (o += "font-weight: bold;"), 4 & i
        && (o += "text-decoration: underline;"), o
      }, e
    }();
    t.TokenMetadata = n
  }), define(d[90], h([1, 0, 116]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t) {
        this.endIndex = e, this._metadata = t
      }

      return e.prototype.getForeground = function () {
        return n.TokenMetadata.getForeground(this._metadata)
      }, e.prototype.getType = function () {
        return n.TokenMetadata.getClassNameFromMetadata(this._metadata)
      }, e.prototype.getInlineStyle = function (e) {
        return n.TokenMetadata.getInlineStyleFromMetadata(this._metadata, e)
      }, e._equals = function (e, t) {
        return e.endIndex === t.endIndex && e._metadata === t._metadata
      }, e.equalsArr = function (e, t) {
        var n = e.length;
        if (n !== t.length) {
          return !1;
        }
        for (var i = 0; i < n; i++) {
          if (!this._equals(e[i], t[i])) {
            return !1;
          }
        }
        return !0
      }, e
    }();
    t.ViewLineToken = i;
    var o = function () {
      function e() {
      }

      return e.inflateArr = function (e, t) {
        for (var n = [], o = 0, r = e.length >>> 1; o < r; o++) {
          var s = o + 1 < r ? e[o + 1 << 1] : t, a = e[1 + (o << 1)];
          n[o] = new i(s, a)
        }
        return n
      }, e.sliceAndInflate = function (e, t, n, o, r) {
        for (var s = n - t + o, a = [], u = 0,
            l = this.findIndexInSegmentsArray(e, t), c = e.length >>> 1;
            l < c && !(e[l << 1] >= n); l++) {
          var d = l + 1 < c ? e[l + 1 << 1] : r, h = Math.min(s, d - t + o),
              p = e[1 + (l << 1)];
          a[u++] = new i(h, p)
        }
        return a
      }, e.findIndexInSegmentsArray = function (e, t) {
        for (var n = 0, i = (e.length >>> 1) - 1; n < i;) {
          var o = n + Math.ceil((i - n) / 2);
          e[o << 1] > t ? i = o - 1 : n = o
        }
        return n
      }, e
    }();
    t.ViewLineTokenFactory = o
  }), define(d[130], h([1, 0, 116, 90]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e(e, t, n, i, o, r) {
        this._source = e, this._tokenIndex = t, this._metadata = r, this.startOffset = i, this.endOffset = o, this.hasPrev = this._tokenIndex
            > 0, this.hasNext = this._tokenIndex + 1 < n
      }

      return Object.defineProperty(e.prototype, "languageId", {
        get: function () {
          return n.TokenMetadata.getLanguageId(this._metadata)
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "tokenType", {
        get: function () {
          return n.TokenMetadata.getTokenType(this._metadata)
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "fontStyle", {
        get: function () {
          return n.TokenMetadata.getFontStyle(this._metadata)
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "foregroundId", {
        get: function () {
          return n.TokenMetadata.getForeground(this._metadata)
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "backgroundId", {
        get: function () {
          return n.TokenMetadata.getBackground(this._metadata)
        }, enumerable: !0, configurable: !0
      }), e.prototype.prev = function () {
        return this.hasPrev ? this._source.tokenAt(this._tokenIndex - 1) : null
      }, e.prototype.next = function () {
        return this.hasNext ? this._source.tokenAt(this._tokenIndex + 1) : null
      }, e
    }();
    t.LineToken = o;
    var r = function () {
      function e(e, t) {
        this._tokens = e, this._tokensCount = this._tokens.length
            >>> 1, this._text = t, this._textLength = this._text.length
      }

      return e.prototype.getTokenCount = function () {
        return this._tokensCount
      }, e.prototype.getLineContent = function () {
        return this._text
      }, e.prototype.getLineLength = function () {
        return this._textLength
      }, e.prototype.getTokenStartOffset = function (e) {
        return this._tokens[e << 1]
      }, e.prototype.getLanguageId = function (e) {
        var t = this._tokens[1 + (e << 1)];
        return n.TokenMetadata.getLanguageId(t)
      }, e.prototype.getStandardTokenType = function (e) {
        var t = this._tokens[1 + (e << 1)];
        return n.TokenMetadata.getTokenType(t)
      }, e.prototype.getTokenEndOffset = function (e) {
        return e + 1 < this._tokensCount ? this._tokens[e + 1 << 1]
            : this._textLength
      }, e.prototype.findTokenIndexAtOffset = function (e) {
        return i.ViewLineTokenFactory.findIndexInSegmentsArray(this._tokens, e)
      }, e.prototype.findTokenAtOffset = function (e) {
        var t = this.findTokenIndexAtOffset(e);
        return this.tokenAt(t)
      }, e.prototype.tokenAt = function (e) {
        var t, n = this._tokens[e << 1];
        t = e + 1 < this._tokensCount ? this._tokens[e + 1 << 1]
            : this._textLength;
        var i = this._tokens[1 + (e << 1)];
        return new o(this, e, this._tokensCount, n, t, i)
      }, e.prototype.firstToken = function () {
        return 0 === this._textLength ? null : this.tokenAt(0)
      }, e.prototype.lastToken = function () {
        return 0 === this._textLength ? null : this.tokenAt(
            this._tokensCount - 1)
      }, e.prototype.inflate = function () {
        return i.ViewLineTokenFactory.inflateArr(this._tokens, this._textLength)
      }, e.prototype.sliceAndInflate = function (e, t, n) {
        return i.ViewLineTokenFactory.sliceAndInflate(this._tokens, e, t, n,
            this._textLength)
      }, e
    }();
    t.LineTokens = r
  }), define(d[118], h([1, 0, 130, 12]), function (e, t, n, i) {
    "use strict";

    function o(e, t) {
      for (var n = 0, i = 0, o = e.length; i < o;) {
        var r = e.charCodeAt(i);
        if (32 === r) {
          n++;
        } else {
          if (9 !== r) {
            break;
          }
          n = n - n % t + t
        }
        i++
      }
      return i === o ? 0 : n + 1
    }

    function r(e) {
      return (16384 | e << 0 | 2 << 23) >>> 0
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      function e(e, t, n, i) {
        this.id = e, this.internalDecorationId = t, this.position = n, this.stickToPreviousCharacter = i
      }

      return e.prototype.toString = function () {
        return "{'" + this.id + "';" + this.position.toString() + ","
            + this.stickToPreviousCharacter + "}"
      }, e.prototype.updateLineNumber = function (e, t) {
        this.position.lineNumber !== t && (e.addChangedMarker(
            this), this.position = new i.Position(t, this.position.column))
      }, e.prototype.updateColumn = function (e, t) {
        this.position.column !== t && (e.addChangedMarker(
            this), this.position = new i.Position(this.position.lineNumber, t))
      }, e.prototype.updatePosition = function (e, t) {
        this.position.lineNumber === t.lineNumber && this.position.column
        === t.column || (e.addChangedMarker(this), this.position = t)
      }, e.prototype.setPosition = function (e) {
        this.position = e
      }, e.compareMarkers = function (e, t) {
        return e.position.column === t.position.column
            ? (e.stickToPreviousCharacter ? 0 : 1) - (t.stickToPreviousCharacter
            ? 0 : 1) : e.position.column - t.position.column
      }, e
    }();
    t.LineMarker = s;
    var a = function () {
      function e() {
        this._changedDecorations = [], this._changedDecorationsLen = 0
      }

      return e.prototype.addChangedMarker = function (e) {
        var t = e.internalDecorationId;
        0 !== t && (this._changedDecorations[this._changedDecorationsLen++] = t)
      }, e.prototype.getDecorationIds = function () {
        return this._changedDecorations
      }, e
    }();
    t.MarkersTracker = a;
    var u, l = {
      adjust: function () {
      }, finish: function () {
      }
    }, c = {
      adjustDelta: function () {
      }, adjustSet: function () {
      }, finish: function () {
      }
    };
    !function (e) {
      e[e.MarkerDefined = 0] = "MarkerDefined", e[e.ForceMove = 1] = "ForceMove", e[e.ForceStay = 2] = "ForceStay"
    }(u || (u = {}));
    var d = function () {
      function e(e) {
        e && (this._markers = null)
      }

      return e.prototype._createMarkersAdjuster = function (e) {
        if (!this._markers) {
          return c;
        }
        if (0 === this._markers.length) {
          return c;
        }
        this._markers.sort(s.compareMarkers);
        var t = this._markers, n = t.length, i = 0, o = t[i],
            r = function (e, t) {
              return o.position.column < e || !(o.position.column > e) && (1
                  !== t && (2 === t || o.stickToPreviousCharacter))
            }, a = function (s, a, u, l) {
              for (; i < n && r(s, l);) {
                if (0 !== a) {
                  var c = Math.max(u, o.position.column + a);
                  o.updateColumn(e, c)
                }
                ++i < n && (o = t[i])
              }
            };
        return {
          adjustDelta: a, adjustSet: function (s, a, u) {
            for (; i < n && r(s, u);) {
              o.updateColumn(e, a), ++i < n
              && (o = t[i])
            }
          }, finish: function (e, t) {
            a(1073741824, e, 1, 0)
          }
        }
      }, e.prototype.applyEdits = function (e, t, n) {
        for (var i = 0, o = this.text, r = this._createTokensAdjuster(),
            s = this._createMarkersAdjuster(e), a = 0, u = t.length; a < u;
            a++) {
          var l = t[a], c = i + l.startColumn, d = i + l.endColumn, h = d - c,
              p = l.text.length;
          r.adjust(l.startColumn - 1, i, 1), s.adjustDelta(l.startColumn, i, 1,
              l.forceMoveMarkers ? 1 : h > 0 ? 2 : 0);
          var f = Math.min(h, p);
          f > 0 && (r.adjust(l.startColumn - 1 + f, i, c), l.forceMoveMarkers
          || s.adjustDelta(l.startColumn + f, i, c,
              l.forceMoveMarkers ? 1 : h > p ? 2 : 0)), o = o.substring(0,
              c - 1) + l.text + o.substring(d - 1), i += p - h, r.adjust(
              l.endColumn, i, c), s.adjustSet(l.endColumn, c + p,
              l.forceMoveMarkers ? 1 : 0)
        }
        return r.finish(i, o.length), s.finish(i, o.length), this._setText(o,
            n), i
      }, e.prototype.split = function (e, t, n, i) {
        var o = this.text.substring(0, t - 1), r = this.text.substring(t - 1),
            a = null;
        if (this._markers) {
          this._markers.sort(s.compareMarkers);
          for (var u = 0, l = this._markers.length; u < l;
              u++) {
            if ((d = this._markers[u]).position.column > t
                || d.position.column === t && (n
                    || !d.stickToPreviousCharacter)) {
              var c = this._markers.slice(0, u);
              a = this._markers.slice(u), this._markers = c;
              break
            }
          }
          if (a) {
            for (var u = 0, l = a.length; u < l; u++) {
              var d = a[u];
              d.updateColumn(e, d.position.column - (t - 1))
            }
          }
        }
        this._setText(o, i);
        var h = this._createModelLine(r, i);
        return a && h.addMarkers(a), h
      }, e.prototype.append = function (t, n, o, r) {
        var s = this.text.length;
        if (this._setText(this.text + o.text, r), o instanceof e
        && o._markers) {
          for (var a = o._markers, u = 0, l = a.length; u < l; u++) {
            var c = a[u];
            c.updatePosition(t, new i.Position(n, c.position.column + s))
          }
          this.addMarkers(a)
        }
      }, e.prototype.addMarker = function (e) {
        this._markers ? this._markers.push(e) : this._markers = [e]
      }, e.prototype.addMarkers = function (e) {
        0 !== e.length && (this._markers ? this._markers = this._markers.concat(
            e) : this._markers = e.slice(0))
      }, e.prototype.removeMarker = function (e) {
        if (this._markers) {
          var t = this._indexOfMarkerId(e.id);
          t < 0 || (1 === this._markers.length ? this._markers = null
              : this._markers.splice(t, 1))
        }
      }, e.prototype.removeMarkers = function (e) {
        if (this._markers) {
          for (var t = 0, n = this._markers.length; t < n;
              t++) {
            e[this._markers[t].id] && (this._markers.splice(t,
                1), n--, t--);
          }
          0 === this._markers.length && (this._markers = null)
        }
      }, e.prototype.getMarkers = function () {
        return this._markers ? this._markers : null
      }, e.prototype.updateLineNumber = function (e, t) {
        if (this._markers) {
          for (var n = this._markers, i = 0, o = n.length;
              i < o; i++) {
            n[i].updateLineNumber(e, t)
          }
        }
      }, e.prototype._indexOfMarkerId = function (e) {
        for (var t = this._markers, n = 0, i = t.length; n < i; n++) {
          if (t[n].id
              === e) {
            return n
          }
        }
      }, e
    }();
    t.AbstractModelLine = d;
    var h = function (e) {
      function t(t, n) {
        var i = e.call(this, !0) || this;
        return i._metadata = 0, i._setText(t,
            n), i._state = null, i._lineTokens = null, i
      }

      return f(t, e), Object.defineProperty(t.prototype, "text", {
        get: function () {
          return this._text
        }, enumerable: !0, configurable: !0
      }), t.prototype.isInvalid = function () {
        return !!(1 & this._metadata)
      }, t.prototype.setIsInvalid = function (e) {
        this._metadata = 4294967294 & this._metadata | (e ? 1 : 0)
      }, t.prototype.getIndentLevel = function () {
        return ((4294967294 & this._metadata) >> 1) - 1
      }, t.prototype._setPlusOneIndentLevel = function (e) {
        this._metadata = 1 & this._metadata | (4026531839 & e) << 1
      }, t.prototype.updateTabSize = function (e) {
        0 === e ? this._metadata = 1 & this._metadata
            : this._setPlusOneIndentLevel(o(this._text, e))
      }, t.prototype._createModelLine = function (e, n) {
        return new t(e, n)
      }, t.prototype.split = function (t, n, i, o) {
        var r = e.prototype.split.call(this, t, n, i, o);
        return this._deleteMarkedTokens(
            this._markOverflowingTokensForDeletion(0, this.text.length)), r
      }, t.prototype.append = function (n, i, o, r) {
        var s = this.text.length;
        if (e.prototype.append.call(this, n, i, o, r), o instanceof t) {
          var a = o._lineTokens;
          if (a) {
            var u = new Uint32Array(a);
            if (s > 0) {
              for (var l = 0, c = u.length >>> 1; l < c; l++) {
                u[l
                << 1] = u[l << 1] + s;
              }
            }
            var d = this._lineTokens;
            if (d) {
              var h = new Uint32Array(d),
                  p = new Uint32Array(h.length + u.length);
              p.set(h, 0), p.set(u, h.length), this._lineTokens = p.buffer
            } else {
              this._lineTokens = u.buffer
            }
          }
        }
      }, t.prototype.resetTokenizationState = function () {
        this._state = null, this._lineTokens = null
      }, t.prototype.setState = function (e) {
        this._state = e
      }, t.prototype.getState = function () {
        return this._state || null
      }, t.prototype.setTokens = function (e, t) {
        t && 0 !== t.length && (2 !== t.length || 0 !== t[0] || t[1] !== r(e))
            ? this._lineTokens = t.buffer : this._lineTokens = null
      }, t.prototype.getTokens = function (e) {
        var t = this._lineTokens;
        if (t) {
          return new n.LineTokens(new Uint32Array(t), this._text);
        }
        var i = new Uint32Array(2);
        return i[0] = 0, i[1] = r(e), new n.LineTokens(i, this._text)
      }, t.prototype._createTokensAdjuster = function () {
        var e = this;
        if (!this._lineTokens) {
          return l;
        }
        var t = new Uint32Array(this._lineTokens), n = t.length >>> 1, i = 0,
            o = 0, r = 0, s = function (e, s, a) {
              for (var u = a - 1; o < e && i < n;) {
                if (o > 0 && 0 !== s) {
                  var l = Math.max(u, o + s);
                  if (t[i << 1] = l, s < 0) {
                    for (var c = i; c > 0;) {
                      var d = t[c - 1 << 1];
                      if (!(d >= l)) {
                        break;
                      }
                      4294967295 !== d && (t[c - 1 << 1] = 4294967295, r++), c--
                    }
                  }
                }
                ++i < n && (o = t[i << 1])
              }
            };
        return {
          adjust: s, finish: function (t, n) {
            s(1073741824, t, 1), e._deleteMarkedTokens(
                e._markOverflowingTokensForDeletion(r, n))
          }
        }
      }, t.prototype._markOverflowingTokensForDeletion = function (e, t) {
        if (!this._lineTokens) {
          return e;
        }
        var n = new Uint32Array(this._lineTokens), i = n.length >>> 1;
        if (e + 1 === i) {
          return e;
        }
        for (var o = i - 1; o > 0; o--) {
          var r = n[o << 1];
          if (r < t) {
            return e;
          }
          if (4294967295 !== r && (n[o << 1] = 4294967295, ++e + 1
          === i)) {
            return e
          }
        }
        return e
      }, t.prototype._deleteMarkedTokens = function (e) {
        if (0 !== e) {
          for (var t = new Uint32Array(this._lineTokens), n = t.length >>> 1,
              i = new Uint32Array(n - e << 1), o = 0, r = 0; r < n; r++) {
            var s = t[r << 1];
            if (4294967295 !== s) {
              var a = t[1 + (r << 1)];
              i[o++] = s, i[o++] = a
            }
          }
          this._lineTokens = i.buffer
        }
      }, t.prototype._setText = function (e, t) {
        this._text = e, 0 === t ? this._metadata = 1 & this._metadata
            : this._setPlusOneIndentLevel(o(e, t))
      }, t
    }(d);
    t.ModelLine = h;
    var p = function (e) {
      function t(t, n) {
        var i = e.call(this, !1) || this;
        return i._setText(t, n), i
      }

      return f(t, e), Object.defineProperty(t.prototype, "text", {
        get: function () {
          return this._text
        }, enumerable: !0, configurable: !0
      }), t.prototype.isInvalid = function () {
        return !1
      }, t.prototype.setIsInvalid = function (e) {
      }, t.prototype.getIndentLevel = function () {
        return 0
      }, t.prototype.updateTabSize = function (e) {
      }, t.prototype._createModelLine = function (e, n) {
        return new t(e, n)
      }, t.prototype.split = function (t, n, i, o) {
        return e.prototype.split.call(this, t, n, i, o)
      }, t.prototype.append = function (t, n, i, o) {
        e.prototype.append.call(this, t, n, i, o)
      }, t.prototype.resetTokenizationState = function () {
      }, t.prototype.setState = function (e) {
      }, t.prototype.getState = function () {
        return null
      }, t.prototype.setTokens = function (e, t) {
      }, t.prototype.getTokens = function (e) {
        var t = new Uint32Array(2);
        return t[0] = 0, t[1] = r(e), new n.LineTokens(t, this._text)
      }, t.prototype._createTokensAdjuster = function () {
        return l
      }, t.prototype._setText = function (e, t) {
        this._text = e
      }, t
    }(d);
    t.MinimalModelLine = p
  }), define(d[95], h([1, 0]), function (e, t) {
    "use strict";

    function n(e, t, n, i) {
      var o = e - 1 - i, r = n.lastIndexOf(" ", o - 1) + 1,
          s = n.indexOf(" ", o);
      -1 === s && (s = n.length), t.lastIndex = r;
      for (var a; a = t.exec(n);) {
        if (a.index <= o && t.lastIndex >= o) {
          return {
            word: a[0],
            startColumn: i + 1 + a.index,
            endColumn: i + 1 + t.lastIndex
          };
        }
      }
      return null
    }

    function i(e, t, n, i) {
      var o = e - 1 - i;
      t.lastIndex = 0;
      for (var r; r = t.exec(n);) {
        if (r.index > o) {
          return null;
        }
        if (t.lastIndex >= o) {
          return {
            word: r[0],
            startColumn: i + 1 + r.index,
            endColumn: i + 1 + t.lastIndex
          }
        }
      }
      return null
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.USUAL_WORD_SEPARATORS = "`~!@#$%^&*()-=+[{]}\\|;:'\",.<>/?", t.DEFAULT_WORD_REGEXP = function (e) {
      void 0 === e && (e = "");
      for (var n = t.USUAL_WORD_SEPARATORS, i = "(-?\\d*\\.\\d\\w*)|([^", o = 0;
          o < n.length; o++) {
        e.indexOf(n[o]) >= 0 || (i += "\\" + n[o]);
      }
      return i += "\\s]+)", new RegExp(i, "g")
    }(), t.ensureValidWordDefinition = function (e) {
      var n = t.DEFAULT_WORD_REGEXP;
      if (e && e instanceof RegExp) {
        if (e.global) {
          n = e;
        } else {
          var i = "g";
          e.ignoreCase && (i += "i"), e.multiline && (i += "m"), n = new RegExp(
              e.source, i)
        }
      }
      return n.lastIndex = 0, n
    }, t.getWordAtText = function (e, t, o, r) {
      t.lastIndex = 0;
      var s = t.exec(o);
      if (!s) {
        return null;
      }
      var a = s[0].indexOf(" ") >= 0 ? i(e, t, o, r) : n(e, t, o, r);
      return t.lastIndex = 0, a
    }
  }), define(d[511], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e) {
        this._languageIdentifier = e
      }

      return e.prototype.getId = function () {
        return this._languageIdentifier.language
      }, e.prototype.getLanguageIdentifier = function () {
        return this._languageIdentifier
      }, e
    }();
    t.FrankensteinMode = n
  }), define(d[60], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.None = 0] = "None", e[e.Indent = 1] = "Indent", e[e.IndentOutdent = 2] = "IndentOutdent", e[e.Outdent = 3] = "Outdent"
    }(t.IndentAction || (t.IndentAction = {}));
    var n = function () {
      function e(e) {
        if (this.open = e.open, this.close = e.close, this._standardTokenMask = 0, Array.isArray(
            e.notIn)) {
          for (var t = 0, n = e.notIn.length; t < n;
              t++) {
            switch (e.notIn[t]) {
              case"string":
                this._standardTokenMask |= 2;
                break;
              case"comment":
                this._standardTokenMask |= 1;
                break;
              case"regex":
                this._standardTokenMask |= 4
            }
          }
        }
      }

      return e.prototype.isOK = function (e) {
        return 0 == (this._standardTokenMask & e)
      }, e
    }();
    t.StandardAutoClosingPairConditional = n
  }), define(d[513], h([1, 0, 165]), function (e, t, n) {
    "use strict";

    function i(e, t, o) {
      if (Array.isArray(e)) {
        for (var r = 0, s = 0, a = e; s < a.length; s++) {
          var u = i(a[s], t, o);
          if (10 === u) {
            return u;
          }
          u > r && (r = u)
        }
        return r
      }
      if ("string" == typeof e) {
        return "*" === e ? 5 : e === o ? 10 : 0;
      }
      if (e) {
        var l = e.language, c = e.pattern, d = e.scheme, r = 0;
        if (d) {
          if (d === t.scheme) {
            r = 10;
          } else {
            if ("*" !== d) {
              return 0;
            }
            r = 5
          }
        }
        if (l) {
          if (l === o) {
            r = 10;
          } else {
            if ("*" !== l) {
              return 0;
            }
            r = Math.max(r, 5)
          }
        }
        if (c) {
          if (c !== t.fsPath && !n.match(c, t.fsPath)) {
            return 0;
          }
          r = 10
        }
        return r
      }
      return 0
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.default = function (e, t, n) {
      return i(e, t, n) > 0
    }, t.score = i
  }), define(d[533], h([1, 0, 11, 513]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e() {
        this._clock = 0, this._entries = [], this._onDidChange = new n.Emitter
      }

      return Object.defineProperty(e.prototype, "onDidChange", {
        get: function () {
          return this._onDidChange.event
        }, enumerable: !0, configurable: !0
      }), e.prototype.register = function (e, t) {
        var n = this,
            i = {selector: e, provider: t, _score: -1, _time: this._clock++};
        return this._entries.push(
            i), this._lastCandidate = void 0, this._onDidChange.fire(
            this._entries.length), {
          dispose: function () {
            if (i) {
              var e = n._entries.indexOf(i);
              e >= 0 && (n._entries.splice(e,
                  1), n._lastCandidate = void 0, n._onDidChange.fire(
                  n._entries.length), i = void 0)
            }
          }
        }
      }, e.prototype.has = function (e) {
        return this.all(e).length > 0
      }, e.prototype.all = function (e) {
        if (!e || e.isTooLargeForHavingARichMode()) {
          return [];
        }
        this._updateScores(e);
        for (var t = [], n = 0, i = this._entries; n < i.length; n++) {
          var o = i[n];
          o._score > 0 && t.push(o.provider)
        }
        return t
      }, e.prototype.ordered = function (e) {
        var t = [];
        return this._orderedForEach(e, function (e) {
          return t.push(e.provider)
        }), t
      }, e.prototype.orderedGroups = function (e) {
        var t, n, i = [];
        return this._orderedForEach(e, function (e) {
          t && n === e._score ? t.push(e.provider)
              : (n = e._score, t = [e.provider], i.push(t))
        }), i
      }, e.prototype._orderedForEach = function (e, t) {
        if (e && !e.isTooLargeForHavingARichMode()) {
          this._updateScores(e);
          for (var n = 0; n < this._entries.length; n++) {
            var i = this._entries[n];
            i._score > 0 && t(i)
          }
        }
      }, e.prototype._updateScores = function (t) {
        var n = {
          uri: t.uri.toString(),
          language: t.getLanguageIdentifier().language
        };
        if (!this._lastCandidate || this._lastCandidate.language !== n.language
            || this._lastCandidate.uri !== n.uri) {
          this._lastCandidate = n;
          for (var o = 0, r = this._entries; o < r.length; o++) {
            var s = r[o];
            s._score = i.score(s.selector, t.uri,
                t.getLanguageIdentifier().language)
          }
          this._entries.sort(e._compareByScoreAndTime)
        }
      }, e._compareByScoreAndTime = function (e, t) {
        return e._score < t._score ? 1 : e._score > t._score ? -1 : e._time
        < t._time ? 1 : e._time > t._time ? -1 : 0
      }, e
    }();
    t.default = o
  }), define(d[536], h([1, 0, 89, 96]), function (e, t, n, i) {
    "use strict";

    function o() {
      return null === l && (l = new u(
          [[1, 104, 2], [1, 72, 2], [1, 102, 6], [1, 70, 6], [2, 116, 3],
            [2, 84, 3], [3, 116, 4], [3, 84, 4], [4, 112, 5], [4, 80, 5],
            [5, 115, 9], [5, 83, 9], [5, 58, 10], [6, 105, 7], [6, 73, 7],
            [7, 108, 8], [7, 76, 8], [8, 101, 9], [8, 69, 9], [9, 58, 10],
            [10, 47, 11], [11, 47, 12]])), l
    }

    function r() {
      if (null === c) {
        c = new n.CharacterClassifier(0);
        for (e = 0;
            e < " \t<>'\"、。｡､，．：；？！＠＃＄％＆＊‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…".length;
            e++) {
          c.set(
              " \t<>'\"、。｡､，．：；？！＠＃＄％＆＊‘“〈《「『【〔（［｛｢｣｝］）〕】』」》〉”’｀～…".charCodeAt(
                  e),
              1);
        }
        for (var e = 0; e < ".,;".length; e++) {
          c.set(".,;".charCodeAt(e), 2)
        }
      }
      return c
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var s;
    !function (e) {
      e[e.Invalid = 0] = "Invalid", e[e.Start = 1] = "Start", e[e.H = 2] = "H", e[e.HT = 3] = "HT", e[e.HTT = 4] = "HTT", e[e.HTTP = 5] = "HTTP", e[e.F = 6] = "F", e[e.FI = 7] = "FI", e[e.FIL = 8] = "FIL", e[e.BeforeColon = 9] = "BeforeColon", e[e.AfterColon = 10] = "AfterColon", e[e.AlmostThere = 11] = "AlmostThere", e[e.End = 12] = "End", e[e.Accept = 13] = "Accept"
    }(s || (s = {}));
    var a, u = function () {
      function e(e) {
        for (var t = 0, n = 0, o = 0, r = e.length; o < r; o++) {
          var s = e[o], a = s[0], u = s[1], l = s[2];
          u > t && (t = u), a > n && (n = a), l > n && (n = l)
        }
        t++, n++;
        for (var c = new i.Uint8Matrix(n, t, 0), o = 0, r = e.length; o < r;
            o++) {
          var d = e[o], a = d[0], u = d[1], l = d[2];
          c.set(a, u, l)
        }
        this._states = c, this._maxCharCode = t
      }

      return e.prototype.nextState = function (e, t) {
        return t < 0 || t >= this._maxCharCode ? 0 : this._states.get(e, t)
      }, e
    }(), l = null;
    !function (e) {
      e[e.None = 0] = "None", e[e.ForceTermination = 1] = "ForceTermination", e[e.CannotEndIn = 2] = "CannotEndIn"
    }(a || (a = {}));
    var c = null, d = function () {
      function e() {
      }

      return e._createLink = function (e, t, n, i, o) {
        var r = o - 1;
        do {
          var s = t.charCodeAt(r);
          if (2 !== e.get(s)) {
            break;
          }
          r--
        } while (r > i);
        return {
          range: {
            startLineNumber: n,
            startColumn: i + 1,
            endLineNumber: n,
            endColumn: r + 2
          }, url: t.substring(i, r + 1)
        }
      }, e.computeLinks = function (t) {
        for (var n = o(), i = r(), s = [], a = 1, u = t.getLineCount(); a <= u;
            a++) {
          for (var l = t.getLineContent(a), c = l.length, d = 0, h = 0, p = 0,
              f = 1, g = !1, m = !1, v = !1; d < c;) {
            var _ = !1, y = l.charCodeAt(d);
            if (13 === f) {
              var C = void 0;
              switch (y) {
                case 40:
                  g = !0, C = 0;
                  break;
                case 41:
                  C = g ? 0 : 1;
                  break;
                case 91:
                  m = !0, C = 0;
                  break;
                case 93:
                  C = m ? 0 : 1;
                  break;
                case 123:
                  v = !0, C = 0;
                  break;
                case 125:
                  C = v ? 0 : 1;
                  break;
                case 39:
                  C = 34 === p || 96 === p ? 0 : 1;
                  break;
                case 34:
                  C = 39 === p || 96 === p ? 0 : 1;
                  break;
                case 96:
                  C = 39 === p || 34 === p ? 0 : 1;
                  break;
                default:
                  C = i.get(y)
              }
              1 === C && (s.push(e._createLink(i, l, a, h, d)), _ = !0)
            } else {
              12 === f ? 1 === (C = i.get(y)) ? _ = !0 : f = 13 : 0
                  === (f = n.nextState(f, y)) && (_ = !0);
            }
            _ && (f = 1, g = !1, m = !1, v = !1, h = d + 1, p = y), d++
          }
          13 === f && s.push(e._createLink(i, l, a, h, c))
        }
        return s
      }, e
    }();
    t.computeLinks = function (e) {
      return e && "function" == typeof e.getLineCount && "function"
      == typeof e.getLineContent ? d.computeLinks(e) : []
    }
  }), define(d[543], h([1, 0, 60]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e) {
        e.autoClosingPairs ? this._autoClosingPairs = e.autoClosingPairs.map(
            function (e) {
              return new n.StandardAutoClosingPairConditional(e)
            }) : e.brackets ? this._autoClosingPairs = e.brackets.map(
                function (e) {
                  return new n.StandardAutoClosingPairConditional(
                      {open: e[0], close: e[1]})
                })
            : this._autoClosingPairs = [], this._surroundingPairs = e.surroundingPairs
            || this._autoClosingPairs
      }

      return e.prototype.getAutoClosingPairs = function () {
        return this._autoClosingPairs
      }, e.prototype.shouldAutoClosePair = function (e, t, n) {
        if (0 === t.getTokenCount()) {
          return !0;
        }
        for (var i = t.findTokenIndexAtOffset(n - 2),
            o = t.getStandardTokenType(i), r = 0;
            r < this._autoClosingPairs.length; ++r) {
          var s = this._autoClosingPairs[r];
          if (s.open === e) {
            return s.isOK(o)
          }
        }
        return !0
      }, e.prototype.getSurroundingPairs = function () {
        return this._surroundingPairs
      }, e
    }();
    t.CharacterPairSupport = i
  }), define(d[545], h([1, 0, 9, 60]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.INCREASE_MASK = 1] = "INCREASE_MASK", e[e.DECREASE_MASK = 2] = "DECREASE_MASK", e[e.INDENT_NEXTLINE_MASK = 4] = "INDENT_NEXTLINE_MASK", e[e.UNINDENT_MASK = 8] = "UNINDENT_MASK"
    }(t.IndentConsts || (t.IndentConsts = {}));
    var o = function () {
      function e(e) {
        this._indentationRules = e
      }

      return e.prototype.onType = function (e) {
        if (this._indentationRules) {
          if (this._indentationRules.unIndentedLinePattern
              && this._indentationRules.unIndentedLinePattern.test(
                  e)) {
            return null;
          }
          if (this._indentationRules.decreaseIndentPattern
              && this._indentationRules.decreaseIndentPattern.test(
                  e)) {
            return i.IndentAction.Outdent
          }
        }
        return null
      }, e.prototype.containNonWhitespace = function (e) {
        return n.lastNonWhitespaceIndex(e) >= 0
      }, e.prototype.shouldIncrease = function (e) {
        return !!(this._indentationRules
            && this._indentationRules.increaseIndentPattern
            && this._indentationRules.increaseIndentPattern.test(e))
      }, e.prototype.shouldDecrease = function (e) {
        return !!(this._indentationRules
            && this._indentationRules.decreaseIndentPattern
            && this._indentationRules.decreaseIndentPattern.test(e))
      }, e.prototype.shouldIndentNextLine = function (e) {
        return !!(this._indentationRules
            && this._indentationRules.indentNextLinePattern
            && this._indentationRules.indentNextLinePattern.test(e))
      }, e.prototype.shouldIgnore = function (e) {
        return !!(this._indentationRules
            && this._indentationRules.unIndentedLinePattern
            && this._indentationRules.unIndentedLinePattern.test(e))
      }, e.prototype.getIndentMetadata = function (e) {
        var t = 0;
        return this.shouldIncrease(e) && (t += 1), this.shouldDecrease(e)
        && (t += 2), this.shouldIndentNextLine(e)
        && (t += 4), this.shouldIgnore(e) && (t += 8), t
      }, e
    }();
    t.IndentRulesSupport = o
  }), define(d[546], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e() {
        this._defaultValueSet = [["true", "false"], ["True", "False"],
          ["Private", "Public", "Friend", "ReadOnly", "Partial", "Protected",
            "WriteOnly"], ["public", "protected", "private"]]
      }

      return e.prototype.navigateValueSet = function (e, t, n, i, o) {
        if (e && t && (r = this.doNavigateValueSet(t, o))) {
          return {
            range: e,
            value: r
          };
        }
        if (n && i) {
          var r = this.doNavigateValueSet(i, o);
          if (r) {
            return {range: n, value: r}
          }
        }
        return null
      }, e.prototype.doNavigateValueSet = function (e, t) {
        var n = this.numberReplace(e, t);
        return null !== n ? n : this.textReplace(e, t)
      }, e.prototype.numberReplace = function (e, t) {
        var n = Math.pow(10, e.length - (e.lastIndexOf(".") + 1)),
            i = Number(e), o = parseFloat(e);
        return isNaN(i) || isNaN(o) || i !== o ? null : 0 !== i || t
            ? (i = Math.floor(i * n), i += t ? n : -n, String(i / n)) : null
      }, e.prototype.textReplace = function (e, t) {
        return this.valueSetsReplace(this._defaultValueSet, e, t)
      }, e.prototype.valueSetsReplace = function (e, t, n) {
        for (var i = null, o = 0, r = e.length; null === i && o < r;
            o++) {
          i = this.valueSetReplace(e[o], t, n);
        }
        return i
      }, e.prototype.valueSetReplace = function (e, t, n) {
        var i = e.indexOf(t);
        return i >= 0 ? ((i += n ? 1 : -1) < 0 ? i = e.length - 1
            : i %= e.length, e[i]) : null
      }, e.INSTANCE = new e, e
    }();
    t.BasicInplaceReplace = n
  }), define(d[550], h([1, 0, 10, 9, 60]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e(t) {
        (t = t || {}).brackets = t.brackets || [["(", ")"], ["{", "}"],
          ["[", "]"]], this._brackets = t.brackets.map(function (t) {
          return {
            open: t[0],
            openRegExp: e._createOpenBracketRegExp(t[0]),
            close: t[1],
            closeRegExp: e._createCloseBracketRegExp(t[1])
          }
        }), this._regExpRules = t.regExpRules
            || [], this._indentationRules = t.indentationRules
      }

      return e.prototype.onEnter = function (e, t, n) {
        for (var i = 0, r = this._regExpRules.length; i < r; i++) {
          var s = this._regExpRules[i];
          if (s.beforeText.test(t)) {
            if (!s.afterText) {
              return s.action;
            }
            if (s.afterText.test(n)) {
              return s.action
            }
          }
        }
        if (t.length > 0 && n.length > 0) {
          for (var i = 0,
              r = this._brackets.length; i < r;
              i++) {
            if ((a = this._brackets[i]).openRegExp.test(t)
                && a.closeRegExp.test(
                    n)) {
              return {indentAction: o.IndentAction.IndentOutdent};
            }
          }
        }
        if (t.length > 0) {
          for (var i = 0, r = this._brackets.length; i < r;
              i++) {
            var a = this._brackets[i];
            if (a.openRegExp.test(t)) {
              return {indentAction: o.IndentAction.Indent}
            }
          }
        }
        return null
      }, e._createOpenBracketRegExp = function (t) {
        var n = i.escapeRegExpCharacters(t);
        return /\B/.test(n.charAt(0)) || (n = "\\b"
            + n), n += "\\s*$", e._safeRegExp(n)
      }, e._createCloseBracketRegExp = function (t) {
        var n = i.escapeRegExpCharacters(t);
        return /\B/.test(n.charAt(n.length - 1)) || (n += "\\b"), n = "^\\s*"
            + n, e._safeRegExp(n)
      }, e._safeRegExp = function (e) {
        try {
          return new RegExp(e)
        } catch (e) {
          return n.onUnexpectedError(e), null
        }
      }, e
    }();
    t.OnEnterSupport = r
  }), define(d[98], h([1, 0, 9, 2]), function (e, t, n, i) {
    "use strict";

    function o(e, t) {
      var n = {};
      return function (i) {
        var o = e(i);
        return n.hasOwnProperty(o) || (n[o] = t(i)), n[o]
      }
    }

    function r(e) {
      var t = "(" + e.map(n.escapeRegExpCharacters).join(")|(") + ")";
      return n.createRegExp(t, !0)
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      return function (e, t, n, i, o) {
        this.languageIdentifier = e, this.open = t, this.close = n, this.forwardRegex = i, this.reversedRegex = o
      }
    }();
    t.RichEditBracket = s;
    var a = function () {
      return function (e, t) {
        var n = this;
        this.brackets = t.map(function (t) {
          return new s(e, t[0], t[1], u({open: t[0], close: t[1]}),
              l({open: t[0], close: t[1]}))
        }), this.forwardRegex = c(this.brackets), this.reversedRegex = d(
            this.brackets), this.textIsBracket = {}, this.textIsOpenBracket = {};
        var i = 0;
        this.brackets.forEach(function (e) {
          n.textIsBracket[e.open.toLowerCase()] = e, n.textIsBracket[e.close.toLowerCase()] = e, n.textIsOpenBracket[e.open.toLowerCase()] = !0, n.textIsOpenBracket[e.close.toLowerCase()] = !1, i = Math.max(
              i, e.open.length), i = Math.max(i, e.close.length)
        }), this.maxBracketLength = i
      }
    }();
    t.RichEditBrackets = a;
    var u = o(function (e) {
      return e.open + ";" + e.close
    }, function (e) {
      return r([e.open, e.close])
    }), l = o(function (e) {
      return e.open + ";" + e.close
    }, function (e) {
      return r([h(e.open), h(e.close)])
    }), c = o(function (e) {
      return e.map(function (e) {
        return e.open + ";" + e.close
      }).join(";")
    }, function (e) {
      var t = [];
      return e.forEach(function (e) {
        t.push(e.open), t.push(e.close)
      }), r(t)
    }), d = o(function (e) {
      return e.map(function (e) {
        return e.open + ";" + e.close
      }).join(";")
    }, function (e) {
      var t = [];
      return e.forEach(function (e) {
        t.push(h(e.open)), t.push(h(e.close))
      }), r(t)
    }), h = function () {
      function e(e) {
        for (var t = "", n = e.length - 1; n >= 0; n--) {
          t += e.charAt(n);
        }
        return t
      }

      var t = null, n = null;
      return function (i) {
        return t !== i && (n = e(t = i)), n
      }
    }(), p = function () {
      function e() {
      }

      return e._findPrevBracketInText = function (e, t, n, o) {
        var r = n.match(e);
        if (!r) {
          return null;
        }
        var s = n.length - r.index, a = r[0].length, u = o + s;
        return new i.Range(t, u - a + 1, t, u + 1)
      }, e.findPrevBracketInToken = function (e, t, n, i, o) {
        var r = h(n).substring(n.length - o, n.length - i);
        return this._findPrevBracketInText(e, t, r, i)
      }, e.findNextBracketInText = function (e, t, n, o) {
        var r = n.match(e);
        if (!r) {
          return null;
        }
        var s = r.index, a = r[0].length, u = o + s;
        return new i.Range(t, u + 1, t, u + 1 + a)
      }, e.findNextBracketInToken = function (e, t, n, i, o) {
        var r = n.substring(i, o);
        return this.findNextBracketInText(e, t, r, i)
      }, e
    }();
    t.BracketsUtils = p
  }), define(d[202], h([1, 0, 32]), function (e, t, n) {
    "use strict";

    function i(e) {
      if (!e || !Array.isArray(e)) {
        return [];
      }
      for (var t = [], n = 0, i = 0, o = e.length; i < o; i++) {
        var r = e[i], s = -1;
        if ("string" == typeof r.fontStyle) {
          s = 0;
          for (var u = r.fontStyle.split(" "), l = 0, c = u.length; l < c;
              l++) {
            switch (u[l]) {
              case"italic":
                s |= 1;
                break;
              case"bold":
                s |= 2;
                break;
              case"underline":
                s |= 4
            }
          }
        }
        var d = null;
        "string" == typeof r.foreground && (d = r.foreground);
        var h = null;
        "string" == typeof r.background && (h = r.background), t[n++] = new a(
            r.token || "", i, s, d, h)
      }
      return t
    }

    function o(e) {
      e.sort(function (e, t) {
        var n = s(e.token, t.token);
        return 0 !== n ? n : e.index - t.index
      });
      for (var t = 0, n = "000000", i = "ffffff";
          e.length >= 1 && "" === e[0].token;) {
        var o = e.shift();
        -1 !== o.fontStyle && (t = o.fontStyle), null !== o.foreground
        && (n = o.foreground), null !== o.background && (i = o.background)
      }
      for (var r = new u, a = new d(t, r.getId(n), r.getId(i)), c = new p(a),
          h = 0, f = e.length; h < f; h++) {
        var g = e[h];
        c.insert(g.token, g.fontStyle, r.getId(g.foreground),
            r.getId(g.background))
      }
      return new l(r, c)
    }

    function r(e) {
      var t = e.match(c);
      if (!t) {
        return 0;
      }
      switch (t[1]) {
        case"comment":
          return 1;
        case"string":
          return 2;
        case"regex":
          return 4
      }
      throw new Error("Unexpected match for standard token type!")
    }

    function s(e, t) {
      return e < t ? -1 : e > t ? 1 : 0
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var a = function () {
      return function (e, t, n, i, o) {
        this.token = e, this.index = t, this.fontStyle = n, this.foreground = i, this.background = o
      }
    }();
    t.ParsedTokenThemeRule = a, t.parseTokenTheme = i;
    var u = function () {
      function e() {
        this._lastColorId = 0, this._id2color = [], this._color2id = new Map
      }

      return e.prototype.getId = function (e) {
        if (null === e) {
          return 0;
        }
        if (e = e.toUpperCase(), !/^[0-9A-F]{6}$/.test(e)) {
          throw new Error(
              "Illegal color name: " + e);
        }
        var t = this._color2id.get(e);
        return t || (t = ++this._lastColorId, this._color2id.set(e,
            t), this._id2color[t] = n.Color.fromHex("#" + e), t)
      }, e.prototype.getColorMap = function () {
        return this._id2color.slice(0)
      }, e
    }();
    t.ColorMap = u;
    var l = function () {
      function e(e, t) {
        this._colorMap = e, this._root = t, this._cache = new Map
      }

      return e.createFromRawTokenTheme = function (e) {
        return this.createFromParsedTokenTheme(i(e))
      }, e.createFromParsedTokenTheme = function (e) {
        return o(e)
      }, e.prototype.getColorMap = function () {
        return this._colorMap.getColorMap()
      }, e.prototype.getThemeTrieElement = function () {
        return this._root.toExternalThemeTrieElement()
      }, e.prototype._match = function (e) {
        return this._root.match(e)
      }, e.prototype.match = function (e, t) {
        var n = this._cache.get(t);
        if (void 0 === n) {
          var i = this._match(t), o = r(t);
          n = (i.metadata | o << 8) >>> 0, this._cache.set(t, n)
        }
        return (n | e << 0) >>> 0
      }, e
    }();
    t.TokenTheme = l;
    var c = /\b(comment|string|regex)\b/;
    t.toStandardTokenType = r, t.strcmp = s;
    var d = function () {
      function e(e, t, n) {
        this._fontStyle = e, this._foreground = t, this._background = n, this.metadata = (this._fontStyle
            << 11 | this._foreground << 14 | this._background << 23) >>> 0
      }

      return e.prototype.clone = function () {
        return new e(this._fontStyle, this._foreground, this._background)
      }, e.cloneArr = function (e) {
        for (var t = [], n = 0, i = e.length; n < i; n++) {
          t[n] = e[n].clone();
        }
        return t
      }, e.prototype.acceptOverwrite = function (e, t, n) {
        -1 !== e && (this._fontStyle = e), 0 !== t && (this._foreground = t), 0
        !== n && (this._background = n), this.metadata = (this._fontStyle << 11
            | this._foreground << 14 | this._background << 23) >>> 0
      }, e
    }();
    t.ThemeTrieElementRule = d;
    var h = function () {
      return function (e, t) {
        this.mainRule = e, this.children = t || Object.create(null)
      }
    }();
    t.ExternalThemeTrieElement = h;
    var p = function () {
      function e(e) {
        this._mainRule = e, this._children = new Map
      }

      return e.prototype.toExternalThemeTrieElement = function () {
        var e = Object.create(null);
        return this._children.forEach(function (t, n) {
          e[n] = t.toExternalThemeTrieElement()
        }), new h(this._mainRule, e)
      }, e.prototype.match = function (e) {
        if ("" === e) {
          return this._mainRule;
        }
        var t, n, i = e.indexOf(".");
        -1 === i ? (t = e, n = "") : (t = e.substring(0, i), n = e.substring(
            i + 1));
        var o = this._children.get(t);
        return void 0 !== o ? o.match(n) : this._mainRule
      }, e.prototype.insert = function (t, n, i, o) {
        if ("" !== t) {
          var r, s, a = t.indexOf(".");
          -1 === a ? (r = t, s = "") : (r = t.substring(0, a), s = t.substring(
              a + 1));
          var u = this._children.get(r);
          void 0 === u && (u = new e(
              this._mainRule.clone()), this._children.set(r, u)), u.insert(s, n,
              i, o)
        } else {
          this._mainRule.acceptOverwrite(n, i, o)
        }
      }, e
    }();
    t.ThemeTrieElement = p, t.generateTokensCSSForColorMap = function (e) {
      for (var t = [], n = 1, i = e.length; n < i; n++) {
        var o = e[n];
        t[n] = ".mtk" + n + " { color: " + o.toString() + "; }"
      }
      return t.push(".mtki { font-style: italic; }"), t.push(
          ".mtkb { font-weight: bold; }"), t.push(
          ".mtku { text-decoration: underline; }"), t.join("\n")
    }
  }), define(d[203], h([1, 0, 11, 26]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e() {
        this._onDidChange = new n.Emitter, this.onDidChange = this._onDidChange.event, this._map = Object.create(
            null), this._colorMap = null
      }

      return e.prototype.fire = function (e) {
        this._onDidChange.fire({changedLanguages: e, changedColorMap: !1})
      }, e.prototype.register = function (e, t) {
        var n = this;
        return this._map[e] = t, this.fire([e]), {
          dispose: function () {
            n._map[e] === t && (delete n._map[e], n.fire([e]))
          }
        }
      }, e.prototype.get = function (e) {
        return this._map[e] || null
      }, e.prototype.setColorMap = function (e) {
        i.equals(e, this._colorMap)
        || (this._colorMap = e, this._onDidChange.fire(
            {changedLanguages: Object.keys(this._map), changedColorMap: !0}))
      }, e.prototype.getColorMap = function () {
        return this._colorMap
      }, e.prototype.getDefaultForeground = function () {
        return this._colorMap[1]
      }, e.prototype.getDefaultBackground = function () {
        return this._colorMap[2]
      }, e
    }();
    t.TokenizationRegistryImpl = o
  }),define(d[17], h([1, 0, 533, 203]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.Null = 0] = "Null", e[e.PlainText = 1] = "PlainText"
    }(t.LanguageId || (t.LanguageId = {}));
    var o = function () {
      return function (e, t) {
        this.language = e, this.id = t
      }
    }();
    t.LanguageIdentifier = o;
    !function (e) {
      e[e.NotSet = -1] = "NotSet", e[e.None = 0] = "None", e[e.Italic = 1] = "Italic", e[e.Bold = 2] = "Bold", e[e.Underline = 4] = "Underline"
    }(t.FontStyle || (t.FontStyle = {}));
    !function (e) {
      e[e.None = 0] = "None", e[e.DefaultForeground = 1] = "DefaultForeground", e[e.DefaultBackground = 2] = "DefaultBackground"
    }(t.ColorId || (t.ColorId = {}));
    !function (e) {
      e[e.Other = 0] = "Other", e[e.Comment = 1] = "Comment", e[e.String = 2] = "String", e[e.RegEx = 4] = "RegEx"
    }(t.StandardTokenType || (t.StandardTokenType = {}));
    !function (e) {
      e[e.LANGUAGEID_MASK = 255] = "LANGUAGEID_MASK", e[e.TOKEN_TYPE_MASK = 1792] = "TOKEN_TYPE_MASK", e[e.FONT_STYLE_MASK = 14336] = "FONT_STYLE_MASK", e[e.FOREGROUND_MASK = 8372224] = "FOREGROUND_MASK", e[e.BACKGROUND_MASK = 4286578688] = "BACKGROUND_MASK", e[e.LANGUAGEID_OFFSET = 0] = "LANGUAGEID_OFFSET", e[e.TOKEN_TYPE_OFFSET = 8] = "TOKEN_TYPE_OFFSET", e[e.FONT_STYLE_OFFSET = 11] = "FONT_STYLE_OFFSET", e[e.FOREGROUND_OFFSET = 14] = "FOREGROUND_OFFSET", e[e.BACKGROUND_OFFSET = 23] = "BACKGROUND_OFFSET"
    }(t.MetadataConsts || (t.MetadataConsts = {}));
    !function (e) {
      e[e.Text = 0] = "Text", e[e.Read = 1] = "Read", e[e.Write = 2] = "Write"
    }(t.DocumentHighlightKind || (t.DocumentHighlightKind = {}));
    var r;
    !function (e) {
      e[e.File = 0] = "File", e[e.Module = 1] = "Module", e[e.Namespace = 2] = "Namespace", e[e.Package = 3] = "Package", e[e.Class = 4] = "Class", e[e.Method = 5] = "Method", e[e.Property = 6] = "Property", e[e.Field = 7] = "Field", e[e.Constructor = 8] = "Constructor", e[e.Enum = 9] = "Enum", e[e.Interface = 10] = "Interface", e[e.Function = 11] = "Function", e[e.Variable = 12] = "Variable", e[e.Constant = 13] = "Constant", e[e.String = 14] = "String", e[e.Number = 15] = "Number", e[e.Boolean = 16] = "Boolean", e[e.Array = 17] = "Array", e[e.Object = 18] = "Object", e[e.Key = 19] = "Key", e[e.Null = 20] = "Null", e[e.EnumMember = 21] = "EnumMember", e[e.Struct = 22] = "Struct", e[e.Event = 23] = "Event", e[e.Operator = 24] = "Operator", e[e.TypeParameter = 25] = "TypeParameter"
    }(r = t.SymbolKind
        || (t.SymbolKind = {})), t.symbolKindToCssClass = function () {
      var e = Object.create(null);
      return e[r.File] = "file", e[r.Module] = "module", e[r.Namespace] = "namespace", e[r.Package] = "package", e[r.Class] = "class", e[r.Method] = "method", e[r.Property] = "property", e[r.Field] = "field", e[r.Constructor] = "constructor", e[r.Enum] = "enum", e[r.Interface] = "interface", e[r.Function] = "function", e[r.Variable] = "variable", e[r.Constant] = "constant", e[r.String] = "string", e[r.Number] = "number", e[r.Boolean] = "boolean", e[r.Array] = "array", e[r.Object] = "object", e[r.Key] = "key", e[r.Null] = "null", e[r.EnumMember] = "enum-member", e[r.Struct] = "struct", e[r.Event] = "event", e[r.Operator] = "operator", e[r.TypeParameter] = "type-parameter", function (t) {
        return e[t] || "property"
      }
    }(), t.ReferenceProviderRegistry = new n.default, t.RenameProviderRegistry = new n.default, t.SuggestRegistry = new n.default, t.SignatureHelpProviderRegistry = new n.default, t.HoverProviderRegistry = new n.default, t.DocumentSymbolProviderRegistry = new n.default, t.DocumentHighlightProviderRegistry = new n.default, t.DefinitionProviderRegistry = new n.default, t.ImplementationProviderRegistry = new n.default, t.TypeDefinitionProviderRegistry = new n.default, t.CodeLensProviderRegistry = new n.default, t.CodeActionProviderRegistry = new n.default, t.DocumentFormattingEditProviderRegistry = new n.default, t.DocumentRangeFormattingEditProviderRegistry = new n.default, t.OnTypeFormattingEditProviderRegistry = new n.default, t.LinkProviderRegistry = new n.default, t.ColorProviderRegistry = new n.default, t.TokenizationRegistry = new i.TokenizationRegistryImpl
  }),define(d[68], h([1, 0, 17, 97]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e() {
      }

      return e.prototype.clone = function () {
        return this
      }, e.prototype.equals = function (e) {
        return this === e
      }, e
    }();
    t.NULL_STATE = new o, t.NULL_MODE_ID = "vs.editor.nullMode", t.NULL_LANGUAGE_IDENTIFIER = new n.LanguageIdentifier(
        t.NULL_MODE_ID, 0), t.nullTokenize = function (e, t, n, o) {
      return new i.TokenizationResult([new i.Token(o, "", e)], n)
    }, t.nullTokenize2 = function (e, t, n, o) {
      var r = new Uint32Array(2);
      return r[0] = o, r[1] = (16384 | e << 0 | 2 << 23)
          >>> 0, new i.TokenizationResult2(r, n)
    }
  }),define(d[91], h([1, 0, 17]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.createScopedLineTokens = function (e, t) {
      for (var n = e.getTokenCount(), o = e.findTokenIndexAtOffset(t),
          r = e.getLanguageId(o), s = o;
          s + 1 < n && e.getLanguageId(s + 1) === r;) {
        s++;
      }
      for (var a = o; a > 0 && e.getLanguageId(a - 1) === r;) {
        a--;
      }
      return new i(e, r, a, s + 1, e.getTokenStartOffset(a),
          e.getTokenEndOffset(s))
    };
    var i = function () {
      function e(e, t, n, i, o, r) {
        this._actual = e, this.languageId = t, this._firstTokenIndex = n, this._lastTokenIndex = i, this.firstCharOffset = o, this._lastCharOffset = r
      }

      return e.prototype.getLineContent = function () {
        return this._actual.getLineContent().substring(this.firstCharOffset,
            this._lastCharOffset)
      }, e.prototype.getTokenCount = function () {
        return this._lastTokenIndex - this._firstTokenIndex
      }, e.prototype.findTokenIndexAtOffset = function (e) {
        return this._actual.findTokenIndexAtOffset(e + this.firstCharOffset)
            - this._firstTokenIndex
      }, e.prototype.getTokenStartOffset = function (e) {
        return this._actual.getTokenStartOffset(e + this._firstTokenIndex)
            - this.firstCharOffset
      }, e.prototype.getStandardTokenType = function (e) {
        return this._actual.getStandardTokenType(e + this._firstTokenIndex)
      }, e
    }();
    t.ScopedLineTokens = i;
    var o;
    !function (e) {
      e[e.value = 7] = "value"
    }(o || (o = {})), t.ignoreBracketsInToken = function (e) {
      return 0 != (7 & e)
    }
  }),define(d[207], h([1, 0, 91, 98, 60]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e(e, t, n) {
        n = n
            || {}, this._richEditBrackets = e, this._complexAutoClosePairs = t.filter(
            function (e) {
              return e.open.length > 1 && !!e.close
            }).map(function (e) {
          return new o.StandardAutoClosingPairConditional(e)
        }), n.docComment && this._complexAutoClosePairs.push(
            new o.StandardAutoClosingPairConditional(
                {open: n.docComment.open, close: n.docComment.close}))
      }

      return e.prototype.getElectricCharacters = function () {
        var e = [];
        if (this._richEditBrackets) {
          for (var t = 0,
              n = this._richEditBrackets.brackets.length; t < n; t++) {
            var i = this._richEditBrackets.brackets[t],
                o = i.close.charAt(i.close.length - 1);
            e.push(o)
          }
        }
        for (var r = 0, s = this._complexAutoClosePairs; r < s.length; r++) {
          var a = s[r];
          e.push(a.open.charAt(a.open.length - 1))
        }
        return e = e.filter(function (e, t, n) {
          return n.indexOf(e) === t
        })
      }, e.prototype.onElectricCharacter = function (e, t, n) {
        return this._onElectricAutoClose(e, t, n) || this._onElectricAutoIndent(
            e, t, n)
      }, e.prototype._onElectricAutoIndent = function (e, t, o) {
        if (!this._richEditBrackets || 0
            === this._richEditBrackets.brackets.length) {
          return null;
        }
        var r = t.findTokenIndexAtOffset(o - 1);
        if (n.ignoreBracketsInToken(t.getStandardTokenType(r))) {
          return null;
        }
        var s = this._richEditBrackets.reversedRegex,
            a = t.getLineContent().substring(0, o - 1) + e,
            u = i.BracketsUtils.findPrevBracketInToken(s, 1, a, 0, a.length);
        if (!u) {
          return null;
        }
        var l = a.substring(u.startColumn - 1, u.endColumn - 1);
        if (l = l.toLowerCase(), this._richEditBrackets.textIsOpenBracket[l]) {
          return null;
        }
        var c = a.substring(0, u.startColumn - 1);
        return /^\s*$/.test(c) ? {matchOpenBracket: l} : null
      }, e.prototype._onElectricAutoClose = function (e, t, n) {
        if (!this._complexAutoClosePairs.length) {
          return null;
        }
        for (var i = t.getLineContent(), o = 0,
            r = this._complexAutoClosePairs.length; o < r; o++) {
          var s = this._complexAutoClosePairs[o];
          if (e === s.open.charAt(s.open.length - 1) && i.substring(
              i.length - s.open.length + 1) + e === s.open) {
            var a = t.findTokenIndexAtOffset(n - 1),
                u = t.getStandardTokenType(a);
            if (s.isOK(u) && !(i.indexOf(s.close, n - 1)
                >= 0)) {
              return {appendText: s.close}
            }
          }
        }
        return null
      }, e
    }();
    t.BracketElectricCharacterSupport = r
  }),define(d[43], h([1, 0, 543, 207, 550, 545, 98, 11, 10, 9, 95, 91, 2, 60]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var f = function () {
          function e(t, o, a) {
            var u = null;
            o && (u = o._conf), this._conf = e._mergeConf(u,
                a), this._conf.brackets
            && (this.brackets = new s.RichEditBrackets(t,
                this._conf.brackets)), this.onEnter = e._handleOnEnter(
                this._conf), this.comments = e._handleComments(
                this._conf), this.characterPair = new n.CharacterPairSupport(
                this._conf), this.electricCharacter = new i.BracketElectricCharacterSupport(
                this.brackets, this.characterPair.getAutoClosingPairs(),
                this._conf.__electricCharacterSupport), this.wordDefinition = this._conf.wordPattern
                || c.DEFAULT_WORD_REGEXP, this.indentationRules = this._conf.indentationRules, this._conf.indentationRules
            && (this.indentRulesSupport = new r.IndentRulesSupport(
                this._conf.indentationRules))
          }

          return e._mergeConf = function (e, t) {
            return {
              comments: e ? t.comments || e.comments : t.comments,
              brackets: e ? t.brackets || e.brackets : t.brackets,
              wordPattern: e ? t.wordPattern || e.wordPattern : t.wordPattern,
              indentationRules: e ? t.indentationRules || e.indentationRules
                  : t.indentationRules,
              onEnterRules: e ? t.onEnterRules || e.onEnterRules
                  : t.onEnterRules,
              autoClosingPairs: e ? t.autoClosingPairs || e.autoClosingPairs
                  : t.autoClosingPairs,
              surroundingPairs: e ? t.surroundingPairs || e.surroundingPairs
                  : t.surroundingPairs,
              __electricCharacterSupport: e ? t.__electricCharacterSupport
                  || e.__electricCharacterSupport : t.__electricCharacterSupport
            }
          }, e._handleOnEnter = function (e) {
            var t = {}, n = !0;
            return e.brackets
            && (n = !1, t.brackets = e.brackets), e.indentationRules
            && (n = !1, t.indentationRules = e.indentationRules), e.onEnterRules
            && (n = !1, t.regExpRules = e.onEnterRules), n ? null
                : new o.OnEnterSupport(t)
          }, e._handleComments = function (e) {
            var t = e.comments;
            if (!t) {
              return null;
            }
            var n = {};
            if (t.lineComment
            && (n.lineCommentToken = t.lineComment), t.blockComment) {
              var i = t.blockComment, o = i[0], r = i[1];
              n.blockCommentStartToken = o, n.blockCommentEndToken = r
            }
            return n
          }, e
        }();
        t.RichEditSupport = f;
        var g = function () {
          function e() {
            this._onDidChange = new a.Emitter, this.onDidChange = this._onDidChange.event, this._entries = []
          }

          return e.prototype.register = function (e, t) {
            var n = this, i = this._getRichEditSupport(e.id),
                o = new f(e, i, t);
            return this._entries[e.id] = o, this._onDidChange.fire(void 0), {
              dispose: function () {
                n._entries[e.id] === o
                && (n._entries[e.id] = i, n._onDidChange.fire(void 0))
              }
            }
          }, e.prototype._getRichEditSupport = function (e) {
            return this._entries[e] || null
          }, e.prototype.getIndentationRules = function (e) {
            var t = this._entries[e];
            return t ? t.indentationRules || null : null
          }, e.prototype._getElectricCharacterSupport = function (e) {
            var t = this._getRichEditSupport(e);
            return t ? t.electricCharacter || null : null
          }, e.prototype.getElectricCharacters = function (e) {
            var t = this._getElectricCharacterSupport(e);
            return t ? t.getElectricCharacters() : []
          }, e.prototype.onElectricCharacter = function (e, t, n) {
            var i = d.createScopedLineTokens(t, n - 1),
                o = this._getElectricCharacterSupport(i.languageId);
            return o ? o.onElectricCharacter(e, i, n - i.firstCharOffset) : null
          }, e.prototype.getComments = function (e) {
            var t = this._getRichEditSupport(e);
            return t ? t.comments || null : null
          }, e.prototype._getCharacterPairSupport = function (e) {
            var t = this._getRichEditSupport(e);
            return t ? t.characterPair || null : null
          }, e.prototype.getAutoClosingPairs = function (e) {
            var t = this._getCharacterPairSupport(e);
            return t ? t.getAutoClosingPairs() : []
          }, e.prototype.getSurroundingPairs = function (e) {
            var t = this._getCharacterPairSupport(e);
            return t ? t.getSurroundingPairs() : []
          }, e.prototype.shouldAutoClosePair = function (e, t, n) {
            var i = d.createScopedLineTokens(t, n - 1),
                o = this._getCharacterPairSupport(i.languageId);
            return !!o && o.shouldAutoClosePair(e, i, n - i.firstCharOffset)
          }, e.prototype.getWordDefinition = function (e) {
            var t = this._getRichEditSupport(e);
            return t ? c.ensureValidWordDefinition(t.wordDefinition || null)
                : c.ensureValidWordDefinition(null)
          }, e.prototype.getIndentRulesSupport = function (e) {
            var t = this._getRichEditSupport(e);
            return t ? t.indentRulesSupport || null : null
          }, e.prototype.getPrecedingValidLine = function (e, t, n) {
            var i = e.getLanguageIdAtPosition(t, 0);
            if (t > 1) {
              var o = t - 1, r = -1;
              for (o = t - 1; o >= 1; o--) {
                if (e.getLanguageIdAtPosition(o, 0) !== i) {
                  return r;
                }
                var s = e.getLineContent(o);
                if (!n.shouldIgnore(s) && !/^\s+$/.test(s) && ""
                    !== s) {
                  return o;
                }
                r = o
              }
            }
            return -1
          }, e.prototype.getInheritIndentForLine = function (e, t, n) {
            void 0 === n && (n = !0);
            var i = this.getIndentRulesSupport(e.getLanguageIdentifier().id);
            if (!i) {
              return null;
            }
            if (t <= 1) {
              return {indentation: "", action: null};
            }
            var o = this.getPrecedingValidLine(e, t, i);
            if (o < 0) {
              return null;
            }
            if (o < 1) {
              return {indentation: "", action: null};
            }
            var r = e.getLineContent(o);
            if (i.shouldIncrease(r) || i.shouldIndentNextLine(r)) {
              return {
                indentation: l.getLeadingWhitespace(r),
                action: p.IndentAction.Indent,
                line: o
              };
            }
            if (i.shouldDecrease(r)) {
              return {
                indentation: l.getLeadingWhitespace(r),
                action: null,
                line: o
              };
            }
            if (1 === o) {
              return {
                indentation: l.getLeadingWhitespace(e.getLineContent(o)),
                action: null,
                line: o
              };
            }
            var s = o - 1, a = i.getIndentMetadata(e.getLineContent(s));
            if (!(3 & a) && 4 & a) {
              for (var u = 0, c = s - 1; c > 0;
                  c--) {
                if (!i.shouldIndentNextLine(e.getLineContent(c))) {
                  u = c;
                  break
                }
              }
              return {
                indentation: l.getLeadingWhitespace(e.getLineContent(u + 1)),
                action: null,
                line: u + 1
              }
            }
            if (n) {
              return {
                indentation: l.getLeadingWhitespace(e.getLineContent(o)),
                action: null,
                line: o
              };
            }
            for (c = o; c > 0; c--) {
              var d = e.getLineContent(c);
              if (i.shouldIncrease(d)) {
                return {
                  indentation: l.getLeadingWhitespace(d),
                  action: p.IndentAction.Indent,
                  line: c
                };
              }
              if (i.shouldIndentNextLine(d)) {
                for (var u = 0, h = c - 1; h > 0;
                    h--) {
                  if (!i.shouldIndentNextLine(e.getLineContent(c))) {
                    u = h;
                    break
                  }
                }
                return {
                  indentation: l.getLeadingWhitespace(e.getLineContent(u + 1)),
                  action: null,
                  line: u + 1
                }
              }
              if (i.shouldDecrease(d)) {
                return {
                  indentation: l.getLeadingWhitespace(d),
                  action: null,
                  line: c
                }
              }
            }
            return {
              indentation: l.getLeadingWhitespace(e.getLineContent(1)),
              action: null,
              line: 1
            }
          }, e.prototype.getGoodIndentForLine = function (e, t, n, i) {
            var o = this.getIndentRulesSupport(t);
            if (!o) {
              return null;
            }
            var r = this.getInheritIndentForLine(e, n), s = e.getLineContent(n);
            if (r) {
              var a = r.line;
              if (void 0 !== a) {
                var c = this._getOnEnterSupport(t), d = null;
                try {
                  d = c.onEnter("", e.getLineContent(a), "")
                } catch (e) {
                  u.onUnexpectedError(e)
                }
                if (d) {
                  var h = l.getLeadingWhitespace(e.getLineContent(a));
                  return d.removeText && (h = h.substring(0,
                      h.length - d.removeText)), d.indentAction
                  === p.IndentAction.Indent || d.indentAction
                  === p.IndentAction.IndentOutdent ? h = i.shiftIndent(h)
                      : d.indentAction === p.IndentAction.Outdent
                      && (h = i.unshiftIndent(h)), o.shouldDecrease(s)
                  && (h = i.unshiftIndent(h)), d.appendText
                  && (h += d.appendText), l.getLeadingWhitespace(h)
                }
              }
              return o.shouldDecrease(s) ? r.action === p.IndentAction.Indent
                  ? r.indentation : i.unshiftIndent(r.indentation) : r.action
              === p.IndentAction.Indent ? i.shiftIndent(r.indentation)
                  : r.indentation
            }
            return null
          }, e.prototype.getIndentForEnter = function (e, t, n, i) {
            e.forceTokenization(t.startLineNumber);
            var o, r, s = e.getLineTokens(t.startLineNumber),
                a = d.createScopedLineTokens(s, t.startColumn - 1),
                u = a.getLineContent(), c = !1;
            a.firstCharOffset > 0 && s.getLanguageId(0) !== a.languageId
                ? (c = !0, o = u.substr(0,
                    t.startColumn - 1 - a.firstCharOffset))
                : o = s.getLineContent().substring(0,
                    t.startColumn - 1), r = t.isEmpty() ? u.substr(
                    t.startColumn - 1 - a.firstCharOffset)
                : this.getScopedLineTokens(e, t.endLineNumber,
                    t.endColumn).getLineContent().substr(
                    t.endColumn - 1 - a.firstCharOffset);
            var h = this.getIndentRulesSupport(a.languageId);
            if (!h) {
              return null;
            }
            var f = o, g = l.getLeadingWhitespace(o);
            if (!i && !c) {
              var m = this.getInheritIndentForLine(e, t.startLineNumber);
              h.shouldDecrease(o) && m && (g = m.indentation, m.action
              !== p.IndentAction.Indent && (g = n.unshiftIndent(g))), f = g
                  + l.ltrim(l.ltrim(o, " "), "\t")
            }
            var v = {
                  getLineTokens: function (t) {
                    return e.getLineTokens(t)
                  }, getLanguageIdentifier: function () {
                    return e.getLanguageIdentifier()
                  }, getLanguageIdAtPosition: function (t, n) {
                    return e.getLanguageIdAtPosition(t, n)
                  }, getLineContent: function (n) {
                    return n === t.startLineNumber ? f : e.getLineContent(n)
                  }
                }, _ = l.getLeadingWhitespace(s.getLineContent()),
                y = this.getInheritIndentForLine(v, t.startLineNumber + 1);
            if (!y) {
              var C = c ? _ : g;
              return {beforeEnter: C, afterEnter: C}
            }
            var b = c ? _ : y.indentation;
            return y.action === p.IndentAction.Indent && (b = n.shiftIndent(
                b)), h.shouldDecrease(r) && (b = n.unshiftIndent(
                b)), {beforeEnter: c ? _ : g, afterEnter: b}
          }, e.prototype.getIndentActionForType = function (e, t, n, i) {
            var o = this.getScopedLineTokens(e, t.startLineNumber,
                t.startColumn), r = this.getIndentRulesSupport(o.languageId);
            if (!r) {
              return null;
            }
            var s, a = o.getLineContent(),
                u = a.substr(0, t.startColumn - 1 - o.firstCharOffset);
            if (s = t.isEmpty() ? a.substr(
                    t.startColumn - 1 - o.firstCharOffset)
                : this.getScopedLineTokens(e, t.endLineNumber,
                    t.endColumn).getLineContent().substr(
                    t.endColumn - 1 - o.firstCharOffset), !r.shouldDecrease(
                u + s) && r.shouldDecrease(u + n + s)) {
              var l = this.getInheritIndentForLine(e, t.startLineNumber, !1);
              if (!l) {
                return null;
              }
              var c = l.indentation;
              return l.action !== p.IndentAction.Indent && (c = i.unshiftIndent(
                  c)), c
            }
            return null
          }, e.prototype.getIndentMetadata = function (e, t) {
            var n = this.getIndentRulesSupport(e.getLanguageIdentifier().id);
            return n ? t < 1 || t > e.getLineCount() ? null
                : n.getIndentMetadata(e.getLineContent(t)) : null
          }, e.prototype._getOnEnterSupport = function (e) {
            var t = this._getRichEditSupport(e);
            return t ? t.onEnter || null : null
          }, e.prototype.getRawEnterActionAtPosition = function (e, t, n) {
            var i = this.getEnterAction(e, new h.Range(t, n, t, n));
            return i ? i.enterAction : null
          }, e.prototype.getEnterAction = function (e, t) {
            var n = this.getIndentationAtPosition(e, t.startLineNumber,
                    t.startColumn),
                i = this.getScopedLineTokens(e, t.startLineNumber,
                    t.startColumn), o = this._getOnEnterSupport(i.languageId);
            if (!o) {
              return null;
            }
            var r, s = i.getLineContent(),
                a = s.substr(0, t.startColumn - 1 - i.firstCharOffset);
            r = t.isEmpty() ? s.substr(t.startColumn - 1 - i.firstCharOffset)
                : this.getScopedLineTokens(e, t.endLineNumber,
                    t.endColumn).getLineContent().substr(
                    t.endColumn - 1 - i.firstCharOffset);
            var l = t.startLineNumber, c = "";
            if (l > 1 && 0 === i.firstCharOffset) {
              var d = this.getScopedLineTokens(e, l - 1);
              d.languageId === i.languageId && (c = d.getLineContent())
            }
            var h = null;
            try {
              h = o.onEnter(c, a, r)
            } catch (e) {
              u.onUnexpectedError(e)
            }
            return h ? (h.appendText || (h.indentAction
                === p.IndentAction.Indent || h.indentAction
                === p.IndentAction.IndentOutdent ? h.appendText = "\t"
                    : h.appendText = ""), h.removeText && (n = n.substring(0,
                    n.length - h.removeText)), {enterAction: h, indentation: n})
                : null
          }, e.prototype.getIndentationAtPosition = function (e, t, n) {
            var i = e.getLineContent(t), o = l.getLeadingWhitespace(i);
            return o.length > n - 1 && (o = o.substring(0, n - 1)), o
          }, e.prototype.getScopedLineTokens = function (e, t, n) {
            e.forceTokenization(t);
            var i = e.getLineTokens(t),
                o = isNaN(n) ? e.getLineMaxColumn(t) - 1 : n - 1;
            return d.createScopedLineTokens(i, o)
          }, e.prototype.getBracketsSupport = function (e) {
            var t = this._getRichEditSupport(e);
            return t ? t.brackets || null : null
          }, e
        }();
        t.LanguageConfigurationRegistryImpl = g, t.LanguageConfigurationRegistry = new g
      }),define(d[122], h([1, 0, 9, 17, 68, 130]), function (e, t, n, i, o, r) {
    "use strict";

    function s(e) {
      var t = i.TokenizationRegistry.get(e);
      return t || {
        getInitialState: function () {
          return o.NULL_STATE
        }, tokenize: void 0, tokenize2: function (e, t, n) {
          return o.nullTokenize2(0, e, t, n)
        }
      }
    }

    function a(e, t) {
      for (var i = '<div class="monaco-tokenized-source">',
          o = e.split(/\r\n|\r|\n/), s = t.getInitialState(), a = 0,
          u = o.length; a < u; a++) {
        var l = o[a];
        a > 0 && (i += "<br/>");
        for (var c = t.tokenize2(l, s, 0),
            d = new r.LineTokens(c.tokens, l).inflate(), h = 0, p = 0,
            f = d.length; p < f; p++) {
          var g = d[p];
          i += '<span class="' + g.getType() + '">' + n.escape(
              l.substring(h, g.endIndex)) + "</span>", h = g.endIndex
        }
        s = c.endState
      }
      return i += "</div>"
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.tokenizeToString = function (e, t) {
      return a(e, s(t))
    }, t.tokenizeLineToHTML = function (e, t, n, i, o, r) {
      for (var s = "<div>", a = i, u = 0, l = 0, c = t.length; l < c; l++) {
        var d = t[l], h = d.endIndex;
        if (!(d.endIndex <= i)) {
          for (var p = ""; a < h && a < o; a++) {
            var f = e.charCodeAt(a);
            switch (f) {
              case 9:
                var g = r - (a + u) % r;
                for (u += g - 1; g > 0;) {
                  p += "&nbsp;", g--;
                }
                break;
              case 60:
                p += "&lt;";
                break;
              case 62:
                p += "&gt;";
                break;
              case 38:
                p += "&amp;";
                break;
              case 0:
                p += "&#00;";
                break;
              case 65279:
              case 8232:
                p += "�";
                break;
              case 13:
                p += "&#8203";
                break;
              default:
                p += String.fromCharCode(f)
            }
          }
          if (s += '<span style="' + d.getInlineStyle(n) + '">' + p
              + "</span>", d.endIndex > o || a >= o) {
            break
          }
        }
      }
      return s += "</div>"
    }
  }),define(d[210], h([1, 0, 11]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e() {
        this._transientWatchers = {}, this._codeEditors = Object.create(
            null), this._diffEditors = Object.create(
            null), this._onCodeEditorAdd = new n.Emitter, this._onCodeEditorRemove = new n.Emitter, this._onDiffEditorAdd = new n.Emitter, this._onDiffEditorRemove = new n.Emitter
      }

      return e.prototype.addCodeEditor = function (e) {
        this._codeEditors[e.getId()] = e, this._onCodeEditorAdd.fire(e)
      }, Object.defineProperty(e.prototype, "onCodeEditorAdd", {
        get: function () {
          return this._onCodeEditorAdd.event
        }, enumerable: !0, configurable: !0
      }), e.prototype.removeCodeEditor = function (e) {
        delete this._codeEditors[e.getId()] && this._onCodeEditorRemove.fire(e)
      }, Object.defineProperty(e.prototype, "onCodeEditorRemove", {
        get: function () {
          return this._onCodeEditorRemove.event
        }, enumerable: !0, configurable: !0
      }), e.prototype.getCodeEditor = function (e) {
        return this._codeEditors[e] || null
      }, e.prototype.listCodeEditors = function () {
        var e = this;
        return Object.keys(this._codeEditors).map(function (t) {
          return e._codeEditors[t]
        })
      }, e.prototype.addDiffEditor = function (e) {
        this._diffEditors[e.getId()] = e, this._onDiffEditorAdd.fire(e)
      }, Object.defineProperty(e.prototype, "onDiffEditorAdd", {
        get: function () {
          return this._onDiffEditorAdd.event
        }, enumerable: !0, configurable: !0
      }), e.prototype.removeDiffEditor = function (e) {
        delete this._diffEditors[e.getId()] && this._onDiffEditorRemove.fire(e)
      }, Object.defineProperty(e.prototype, "onDiffEditorRemove", {
        get: function () {
          return this._onDiffEditorRemove.event
        }, enumerable: !0, configurable: !0
      }), e.prototype.getDiffEditor = function (e) {
        return this._diffEditors[e] || null
      }, e.prototype.listDiffEditors = function () {
        var e = this;
        return Object.keys(this._diffEditors).map(function (t) {
          return e._diffEditors[t]
        })
      }, e.prototype.getFocusedCodeEditor = function () {
        for (var e = null, t = this.listCodeEditors(), n = 0; n < t.length;
            n++) {
          var i = t[n];
          if (i.isFocused()) {
            return i;
          }
          i.hasWidgetFocus() && (e = i)
        }
        return e
      }, e.prototype.setTransientModelProperty = function (e, t, n) {
        var i, r = e.uri.toString();
        this._transientWatchers.hasOwnProperty(r)
            ? i = this._transientWatchers[r] : (i = new o(r, e,
                this), this._transientWatchers[r] = i), i.set(t, n)
      }, e.prototype.getTransientModelProperty = function (e, t) {
        var n = e.uri.toString();
        if (this._transientWatchers.hasOwnProperty(
            n)) {
          return this._transientWatchers[n].get(t)
        }
      }, e.prototype._removeWatcher = function (e) {
        delete this._transientWatchers[e.uri]
      }, e
    }();
    t.AbstractCodeEditorService = i;
    var o = function () {
      function e(e, t, n) {
        var i = this;
        this.uri = e, this._values = {}, t.onWillDispose(function () {
          return n._removeWatcher(i)
        })
      }

      return e.prototype.set = function (e, t) {
        this._values[e] = t
      }, e.prototype.get = function (e) {
        return this._values[e]
      }, e
    }();
    t.ModelTransientSettingWatcher = o
  }),define(d[152], h([1, 0, 11, 40, 12, 2, 22, 7, 123, 97, 24]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d;
        !function (e) {
          e[e.Ignore = 0] = "Ignore", e[e.Info = 1] = "Info", e[e.Warning = 2] = "Warning", e[e.Error = 3] = "Error"
        }(d = t.Severity || (t.Severity = {}));
        var h = function () {
          function e() {
          }

          return e.chord = function (e, t) {
            return i.KeyChord(e, t)
          }, e.CtrlCmd = 2048, e.Shift = 1024, e.Alt = 512, e.WinCtrl = 256, e
        }();
        t.KeyMod = h;
        var p;
        !function (e) {
          e[e.Unknown = 0] = "Unknown", e[e.Backspace = 1] = "Backspace", e[e.Tab = 2] = "Tab", e[e.Enter = 3] = "Enter", e[e.Shift = 4] = "Shift", e[e.Ctrl = 5] = "Ctrl", e[e.Alt = 6] = "Alt", e[e.PauseBreak = 7] = "PauseBreak", e[e.CapsLock = 8] = "CapsLock", e[e.Escape = 9] = "Escape", e[e.Space = 10] = "Space", e[e.PageUp = 11] = "PageUp", e[e.PageDown = 12] = "PageDown", e[e.End = 13] = "End", e[e.Home = 14] = "Home", e[e.LeftArrow = 15] = "LeftArrow", e[e.UpArrow = 16] = "UpArrow", e[e.RightArrow = 17] = "RightArrow", e[e.DownArrow = 18] = "DownArrow", e[e.Insert = 19] = "Insert", e[e.Delete = 20] = "Delete", e[e.KEY_0 = 21] = "KEY_0", e[e.KEY_1 = 22] = "KEY_1", e[e.KEY_2 = 23] = "KEY_2", e[e.KEY_3 = 24] = "KEY_3", e[e.KEY_4 = 25] = "KEY_4", e[e.KEY_5 = 26] = "KEY_5", e[e.KEY_6 = 27] = "KEY_6", e[e.KEY_7 = 28] = "KEY_7", e[e.KEY_8 = 29] = "KEY_8", e[e.KEY_9 = 30] = "KEY_9", e[e.KEY_A = 31] = "KEY_A", e[e.KEY_B = 32] = "KEY_B", e[e.KEY_C = 33] = "KEY_C", e[e.KEY_D = 34] = "KEY_D", e[e.KEY_E = 35] = "KEY_E", e[e.KEY_F = 36] = "KEY_F", e[e.KEY_G = 37] = "KEY_G", e[e.KEY_H = 38] = "KEY_H", e[e.KEY_I = 39] = "KEY_I", e[e.KEY_J = 40] = "KEY_J", e[e.KEY_K = 41] = "KEY_K", e[e.KEY_L = 42] = "KEY_L", e[e.KEY_M = 43] = "KEY_M", e[e.KEY_N = 44] = "KEY_N", e[e.KEY_O = 45] = "KEY_O", e[e.KEY_P = 46] = "KEY_P", e[e.KEY_Q = 47] = "KEY_Q", e[e.KEY_R = 48] = "KEY_R", e[e.KEY_S = 49] = "KEY_S", e[e.KEY_T = 50] = "KEY_T", e[e.KEY_U = 51] = "KEY_U", e[e.KEY_V = 52] = "KEY_V", e[e.KEY_W = 53] = "KEY_W", e[e.KEY_X = 54] = "KEY_X", e[e.KEY_Y = 55] = "KEY_Y", e[e.KEY_Z = 56] = "KEY_Z", e[e.Meta = 57] = "Meta", e[e.ContextMenu = 58] = "ContextMenu", e[e.F1 = 59] = "F1", e[e.F2 = 60] = "F2", e[e.F3 = 61] = "F3", e[e.F4 = 62] = "F4", e[e.F5 = 63] = "F5", e[e.F6 = 64] = "F6", e[e.F7 = 65] = "F7", e[e.F8 = 66] = "F8", e[e.F9 = 67] = "F9", e[e.F10 = 68] = "F10", e[e.F11 = 69] = "F11", e[e.F12 = 70] = "F12", e[e.F13 = 71] = "F13", e[e.F14 = 72] = "F14", e[e.F15 = 73] = "F15", e[e.F16 = 74] = "F16", e[e.F17 = 75] = "F17", e[e.F18 = 76] = "F18", e[e.F19 = 77] = "F19", e[e.NumLock = 78] = "NumLock", e[e.ScrollLock = 79] = "ScrollLock", e[e.US_SEMICOLON = 80] = "US_SEMICOLON", e[e.US_EQUAL = 81] = "US_EQUAL", e[e.US_COMMA = 82] = "US_COMMA", e[e.US_MINUS = 83] = "US_MINUS", e[e.US_DOT = 84] = "US_DOT", e[e.US_SLASH = 85] = "US_SLASH", e[e.US_BACKTICK = 86] = "US_BACKTICK", e[e.US_OPEN_SQUARE_BRACKET = 87] = "US_OPEN_SQUARE_BRACKET", e[e.US_BACKSLASH = 88] = "US_BACKSLASH", e[e.US_CLOSE_SQUARE_BRACKET = 89] = "US_CLOSE_SQUARE_BRACKET", e[e.US_QUOTE = 90] = "US_QUOTE", e[e.OEM_8 = 91] = "OEM_8", e[e.OEM_102 = 92] = "OEM_102", e[e.NUMPAD_0 = 93] = "NUMPAD_0", e[e.NUMPAD_1 = 94] = "NUMPAD_1", e[e.NUMPAD_2 = 95] = "NUMPAD_2", e[e.NUMPAD_3 = 96] = "NUMPAD_3", e[e.NUMPAD_4 = 97] = "NUMPAD_4", e[e.NUMPAD_5 = 98] = "NUMPAD_5", e[e.NUMPAD_6 = 99] = "NUMPAD_6", e[e.NUMPAD_7 = 100] = "NUMPAD_7",e[e.NUMPAD_8 = 101] = "NUMPAD_8",e[e.NUMPAD_9 = 102] = "NUMPAD_9",e[e.NUMPAD_MULTIPLY = 103] = "NUMPAD_MULTIPLY",e[e.NUMPAD_ADD = 104] = "NUMPAD_ADD",e[e.NUMPAD_SEPARATOR = 105] = "NUMPAD_SEPARATOR",e[e.NUMPAD_SUBTRACT = 106] = "NUMPAD_SUBTRACT",e[e.NUMPAD_DECIMAL = 107] = "NUMPAD_DECIMAL",e[e.NUMPAD_DIVIDE = 108] = "NUMPAD_DIVIDE",e[e.KEY_IN_COMPOSITION = 109] = "KEY_IN_COMPOSITION",e[e.ABNT_C1 = 110] = "ABNT_C1",e[e.ABNT_C2 = 111] = "ABNT_C2",e[e.MAX_VALUE = 112] = "MAX_VALUE"
        }(p = t.KeyCode
            || (t.KeyCode = {})), t.createMonacoBaseAPI = function () {
          return {
            editor: void 0,
            languages: void 0,
            CancellationTokenSource: u.CancellationTokenSource,
            Emitter: n.Emitter,
            KeyCode: p,
            KeyMod: h,
            Position: o.Position,
            Range: r.Range,
            Selection: s.Selection,
            SelectionDirection: s.SelectionDirection,
            Severity: d,
            Promise: a.TPromise,
            Uri: c.default,
            Token: l.Token
          }
        }
      }),define(d[111], h([1, 0, 17, 11]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e() {
        var e = this;
        this._onDidChange = new i.Emitter, this.onDidChange = this._onDidChange.event, this._updateColorMap(), n.TokenizationRegistry.onDidChange(
            function (t) {
              t.changedColorMap && e._updateColorMap()
            })
      }

      return e.getInstance = function () {
        return this._INSTANCE || (this._INSTANCE = new e), this._INSTANCE
      }, e.prototype._updateColorMap = function () {
        var e = n.TokenizationRegistry.getColorMap();
        if (!e) {
          return this._colors = [null], void (this._backgroundIsLight = !0);
        }
        this._colors = [null];
        for (var t = 1; t < e.length; t++) {
          this._colors[t] = e[t].toRGBA();
        }
        var i = e[2].getLuminosity();
        this._backgroundIsLight = i >= .5, this._onDidChange.fire(void 0)
      }, e.prototype.getColor = function (e) {
        return (e < 1 || e >= this._colors.length) && (e = 2), this._colors[e]
      }, e.prototype.backgroundIsLight = function () {
        return this._backgroundIsLight
      }, e._INSTANCE = null, e
    }();
    t.MinimapTokensColorTracker = o;
    !function (e) {
      e[e.START_CH_CODE = 32] = "START_CH_CODE", e[e.END_CH_CODE = 126] = "END_CH_CODE", e[e.CHAR_COUNT = 95] = "CHAR_COUNT", e[e.SAMPLED_CHAR_HEIGHT = 16] = "SAMPLED_CHAR_HEIGHT", e[e.SAMPLED_CHAR_WIDTH = 10] = "SAMPLED_CHAR_WIDTH", e[e.SAMPLED_HALF_CHAR_WIDTH = 5] = "SAMPLED_HALF_CHAR_WIDTH", e[e.x2_CHAR_HEIGHT = 4] = "x2_CHAR_HEIGHT", e[e.x2_CHAR_WIDTH = 2] = "x2_CHAR_WIDTH", e[e.x1_CHAR_HEIGHT = 2] = "x1_CHAR_HEIGHT", e[e.x1_CHAR_WIDTH = 1] = "x1_CHAR_WIDTH", e[e.RGBA_CHANNELS_CNT = 4] = "RGBA_CHANNELS_CNT"
    }(t.Constants || (t.Constants = {}));
    var r = function () {
      function e(t, n) {
        if (760 !== t.length) {
          throw new Error("Invalid x2CharData");
        }
        if (190 !== n.length) {
          throw new Error("Invalid x1CharData");
        }
        this.x2charData = t, this.x1charData = n, this.x2charDataLight = e.soften(
            t, .8), this.x1charDataLight = e.soften(n, 50 / 60)
      }

      return e.soften = function (e, t) {
        for (var n = new Uint8ClampedArray(e.length), i = 0, o = e.length;
            i < o; i++) {
          n[i] = e[i] * t;
        }
        return n
      }, e._getChIndex = function (e) {
        return (e -= 32) < 0 && (e += 95), e % 95
      }, e.prototype.x2RenderChar = function (t, n, i, o, r, s, a) {
        if (n + 2 > t.width || i + 4 > t.height) {
          console.warn(
              "bad render request outside image data");
        } else {
          var u = a ? this.x2charDataLight : this.x2charData,
              l = e._getChIndex(o), c = 4 * t.width, d = s.r, h = s.g, p = s.b,
              f = r.r - d, g = r.g - h, m = r.b - p, v = t.data, _ = 4 * l * 2,
              y = i * c + 4 * n, C = u[_] / 255;
          v[y + 0] = d + f * C, v[y + 1] = h + g * C, v[y + 2] = p + m * C;
          C = u[_ + 1] / 255;
          v[y + 4] = d + f * C, v[y + 5] = h + g * C, v[y + 6] = p + m
              * C, y += c;
          C = u[_ + 2] / 255;
          v[y + 0] = d + f * C, v[y + 1] = h + g * C, v[y + 2] = p + m * C;
          C = u[_ + 3] / 255;
          v[y + 4] = d + f * C, v[y + 5] = h + g * C, v[y + 6] = p + m
              * C, y += c;
          C = u[_ + 4] / 255;
          v[y + 0] = d + f * C, v[y + 1] = h + g * C, v[y + 2] = p + m * C;
          C = u[_ + 5] / 255;
          v[y + 4] = d + f * C, v[y + 5] = h + g * C, v[y + 6] = p + m
              * C, y += c;
          C = u[_ + 6] / 255;
          v[y + 0] = d + f * C, v[y + 1] = h + g * C, v[y + 2] = p + m * C;
          C = u[_ + 7] / 255;
          v[y + 4] = d + f * C, v[y + 5] = h + g * C, v[y + 6] = p + m * C
        }
      }, e.prototype.x1RenderChar = function (t, n, i, o, r, s, a) {
        if (n + 1 > t.width || i + 2 > t.height) {
          console.warn(
              "bad render request outside image data");
        } else {
          var u = a ? this.x1charDataLight : this.x1charData,
              l = e._getChIndex(o), c = 4 * t.width, d = s.r, h = s.g, p = s.b,
              f = r.r - d, g = r.g - h, m = r.b - p, v = t.data, _ = 2 * l * 1,
              y = i * c + 4 * n, C = u[_] / 255;
          v[y + 0] = d + f * C, v[y + 1] = h + g * C, v[y + 2] = p + m
              * C, y += c;
          C = u[_ + 1] / 255;
          v[y + 0] = d + f * C, v[y + 1] = h + g * C, v[y + 2] = p + m * C
        }
      }, e.prototype.x2BlockRenderChar = function (e, t, n, i, o, r) {
        if (t + 2 > e.width || n + 4 > e.height) {
          console.warn(
              "bad render request outside image data");
        } else {
          var s = 4 * e.width, a = o.r, u = o.g, l = o.b,
              c = a + .5 * (i.r - a), d = u + .5 * (i.g - u),
              h = l + .5 * (i.b - l), p = e.data, f = n * s + 4 * t;
          p[f + 0] = c, p[f + 1] = d, p[f + 2] = h, p[f + 4] = c, p[f
          + 5] = d, p[f + 6] = h, p[(f += s) + 0] = c, p[f + 1] = d, p[f
          + 2] = h, p[f + 4] = c, p[f + 5] = d, p[f + 6] = h, p[(f += s)
          + 0] = c, p[f + 1] = d, p[f + 2] = h, p[f + 4] = c, p[f + 5] = d, p[f
          + 6] = h, p[(f += s) + 0] = c, p[f + 1] = d, p[f + 2] = h, p[f
          + 4] = c, p[f + 5] = d, p[f + 6] = h
        }
      }, e.prototype.x1BlockRenderChar = function (e, t, n, i, o, r) {
        if (t + 1 > e.width || n + 2 > e.height) {
          console.warn(
              "bad render request outside image data");
        } else {
          var s = 4 * e.width, a = o.r, u = o.g, l = o.b,
              c = a + .5 * (i.r - a), d = u + .5 * (i.g - u),
              h = l + .5 * (i.b - l), p = e.data, f = n * s + 4 * t;
          p[f + 0] = c, p[f + 1] = d, p[f + 2] = h, p[(f += s) + 0] = c, p[f
          + 1] = d, p[f + 2] = h
        }
      }, e
    }();
    t.MinimapCharRenderer = r
  }),define(d[78], h([1, 0, 2]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t) {
        this._viewLayout = e, this.viewportData = t, this.scrollWidth = this._viewLayout.getScrollWidth(), this.scrollHeight = this._viewLayout.getScrollHeight(), this.visibleRange = this.viewportData.visibleRange, this.bigNumbersDelta = this.viewportData.bigNumbersDelta;
        var n = this._viewLayout.getCurrentViewport();
        this.scrollTop = n.top, this.scrollLeft = n.left, this.viewportWidth = n.width, this.viewportHeight = n.height
      }

      return e.prototype.getScrolledTopFromAbsoluteTop = function (e) {
        return e - this.scrollTop
      }, e.prototype.getVerticalOffsetForLineNumber = function (e) {
        return this._viewLayout.getVerticalOffsetForLineNumber(e)
      }, e.prototype.lineIsVisible = function (e) {
        return this.visibleRange.startLineNumber <= e && e
            <= this.visibleRange.endLineNumber
      }, e.prototype.getDecorationsInViewport = function () {
        return this.viewportData.getDecorationsInViewport()
      }, e
    }();
    t.RestrictedRenderingContext = i;
    var o = function (e) {
      function t(t, n, i) {
        var o = e.call(this, t, n) || this;
        return o._viewLines = i, o
      }

      return f(t, e), t.prototype.linesVisibleRangesForRange = function (e, t) {
        return this._viewLines.linesVisibleRangesForRange(e, t)
      }, t.prototype.visibleRangeForPosition = function (e) {
        var t = this._viewLines.visibleRangesForRange2(
            new n.Range(e.lineNumber, e.column, e.lineNumber, e.column));
        return t ? t[0] : null
      }, t
    }(i);
    t.RenderingContext = o;
    var r = function () {
      return function (e, t) {
        this.lineNumber = e, this.ranges = t
      }
    }();
    t.LineVisibleRanges = r;
    var s = function () {
      function e(e, t) {
        this.left = Math.round(e), this.width = Math.round(t)
      }

      return e.prototype.toString = function () {
        return "[" + this.left + "," + this.width + "]"
      }, e
    }();
    t.HorizontalRange = s
  }),define(d[214], h([1, 0, 78]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t) {
        this.left = e, this.width = t
      }

      return e.prototype.toString = function () {
        return "[" + this.left + "," + this.width + "]"
      }, e.compare = function (e, t) {
        return e.left - t.left
      }, e
    }(), o = function () {
      function e() {
      }

      return e._createRange = function () {
        return this._handyReadyRange
        || (this._handyReadyRange = document.createRange()), this._handyReadyRange
      }, e._detachRange = function (e, t) {
        e.selectNodeContents(t)
      }, e._readClientRects = function (e, t, n, i, o) {
        var r = this._createRange();
        try {
          return r.setStart(e, t), r.setEnd(n, i), r.getClientRects()
        } catch (e) {
          return null
        } finally {
          this._detachRange(r, o)
        }
      }, e._mergeAdjacentRanges = function (e) {
        if (1 === e.length) {
          return [new n.HorizontalRange(e[0].left,
              e[0].width)];
        }
        e.sort(i.compare);
        for (var t = [], o = 0, r = e[0].left, s = e[0].width, a = 1,
            u = e.length; a < u; a++) {
          var l = e[a], c = l.left, d = l.width;
          r + s + .9 >= c ? s = Math.max(s, c + d - r)
              : (t[o++] = new n.HorizontalRange(r, s), r = c, s = d)
        }
        return t[o++] = new n.HorizontalRange(r, s), t
      }, e._createHorizontalRangesFromClientRects = function (e, t) {
        if (!e || 0 === e.length) {
          return null;
        }
        for (var n = [], o = 0, r = e.length; o < r; o++) {
          var s = e[o];
          n[o] = new i(Math.max(0, s.left - t), s.width)
        }
        return this._mergeAdjacentRanges(n)
      }, e.readHorizontalRanges = function (e, t, n, i, o, r, s) {
        var a = e.children.length - 1;
        if (0 > a) {
          return null;
        }
        (t = Math.min(a, Math.max(0, t))) !== (i = Math.min(a, Math.max(0, i)))
        && i > 0 && 0 === o && (i--, o = Number.MAX_VALUE);
        var u = e.children[t].firstChild, l = e.children[i].firstChild;
        if (!u || !l) {
          return null;
        }
        n = Math.min(u.textContent.length, Math.max(0, n)), o = Math.min(
            l.textContent.length, Math.max(0, o));
        var c = this._readClientRects(u, n, l, o, s);
        return this._createHorizontalRangesFromClientRects(c, r)
      }, e
    }();
    t.RangeUtil = o
  }),define(d[215], h([1, 0, 111]), function (e, t, n) {
    "use strict";

    function i(e) {
      for (var t = new Uint8ClampedArray(e.length), n = 0, i = e.length; n < i;
          n++) {
        t[n] = e[n];
      }
      return t
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var o = null;
    t.getOrCreateMinimapCharRenderer = function () {
      if (!o) {
        var e = i(s);
        s = null;
        var t = i(r);
        r = null, o = new n.MinimapCharRenderer(t, e)
      }
      return o
    };
    var r = [0, 0, 0, 0, 0, 0, 0, 0, 39, 14, 39, 14, 14, 5, 29, 10, 96, 96, 29,
          29, 0, 0, 0, 0, 49, 113, 195, 214, 227, 166, 135, 42, 40, 29, 194, 38, 75,
          148, 197, 187, 145, 0, 160, 61, 75, 143, 2, 183, 138, 58, 163, 6, 177,
          223, 197, 227, 38, 13, 11, 4, 0, 0, 0, 0, 10, 54, 52, 8, 62, 4, 71, 122,
          73, 2, 19, 40, 10, 50, 155, 36, 79, 70, 145, 121, 7, 5, 0, 0, 2, 1, 36,
          12, 204, 166, 16, 5, 0, 0, 0, 0, 1, 0, 154, 34, 0, 0, 0, 0, 96, 83, 0, 0,
          0, 0, 0, 0, 0, 0, 46, 34, 0, 82, 2, 56, 53, 3, 146, 0, 146, 119, 152, 132,
          152, 131, 145, 119, 170, 42, 15, 42, 15, 42, 172, 194, 131, 132, 0, 139,
          80, 28, 227, 143, 159, 135, 15, 118, 11, 126, 171, 144, 20, 124, 88, 106,
          217, 196, 0, 106, 189, 92, 168, 43, 5, 130, 164, 133, 130, 115, 183, 65,
          134, 120, 141, 141, 170, 196, 2, 106, 31, 32, 105, 2, 145, 130, 116, 114,
          132, 135, 138, 140, 138, 113, 147, 137, 81, 183, 129, 94, 0, 0, 21, 16, 4,
          3, 46, 34, 0, 0, 45, 34, 1, 0, 160, 49, 0, 0, 43, 143, 203, 23, 1, 76, 0,
          0, 38, 28, 131, 96, 38, 28, 0, 0, 168, 31, 29, 191, 98, 0, 118, 139, 5,
          113, 45, 13, 37, 6, 97, 115, 161, 179, 204, 105, 223, 224, 83, 52, 111,
          100, 184, 186, 120, 132, 212, 145, 180, 139, 174, 161, 212, 182, 104, 162,
          131, 0, 131, 0, 104, 161, 219, 120, 110, 116, 110, 116, 219, 120, 207,
          154, 163, 40, 147, 22, 207, 154, 202, 159, 161, 47, 145, 23, 111, 0, 139,
          154, 144, 30, 144, 135, 139, 187, 110, 110, 168, 161, 150, 145, 110, 110,
          185, 162, 43, 16, 43, 16, 185, 162, 73, 129, 0, 110, 0, 110, 191, 87, 149,
          149, 236, 48, 195, 91, 146, 149, 146, 0, 146, 0, 146, 0, 187, 173, 200,
          201, 222, 215, 172, 147, 95, 95, 193, 97, 224, 129, 159, 206, 97, 192,
          155, 139, 153, 115, 153, 115, 156, 140, 189, 158, 123, 136, 190, 64, 111,
          0, 155, 139, 153, 115, 153, 114, 156, 241, 197, 148, 150, 152, 170, 116,
          110, 157, 156, 128, 169, 14, 13, 159, 158, 149, 212, 189, 43, 16, 43, 16,
          43, 16, 148, 110, 148, 110, 147, 109, 182, 151, 133, 121, 106, 118, 114,
          103, 89, 66, 94, 94, 211, 188, 205, 207, 139, 168, 151, 152, 87, 76, 101,
          79, 151, 152, 130, 156, 125, 116, 47, 29, 43, 16, 169, 228, 11, 103, 120,
          6, 230, 176, 55, 49, 55, 6, 55, 6, 193, 102, 92, 0, 71, 0, 13, 30, 0, 147,
          63, 43, 12, 43, 12, 43, 142, 152, 71, 53, 61, 61, 0, 0, 0, 0, 0, 0, 0, 0,
          0, 0, 158, 146, 25, 2, 0, 0, 0, 0, 0, 0, 0, 0, 107, 130, 170, 194, 176,
          188, 109, 0, 203, 159, 113, 111, 202, 158, 0, 0, 135, 135, 114, 0, 136,
          135, 0, 109, 187, 190, 148, 126, 177, 187, 0, 0, 149, 130, 218, 105, 169,
          135, 37, 113, 146, 113, 49, 13, 49, 13, 0, 0, 178, 195, 147, 114, 255,
          255, 109, 0, 193, 149, 110, 109, 109, 109, 12, 15, 125, 41, 33, 41, 144,
          188, 1, 6, 75, 53, 10, 53, 210, 161, 110, 0, 152, 148, 210, 60, 110, 156,
          213, 5, 63, 5, 63, 5, 45, 111, 0, 0, 232, 172, 190, 168, 190, 169, 0, 0,
          190, 144, 109, 109, 109, 109, 0, 0, 168, 140, 148, 111, 168, 140, 0, 0,
          200, 151, 113, 110, 255, 158, 0, 0, 184, 188, 147, 139, 186, 255, 0, 0,
          122, 130, 111, 0, 109, 0, 0, 0, 132, 69, 109, 93, 110, 136, 51, 5, 205,
          103, 61, 6, 47, 106, 0, 0, 110, 109, 110, 122, 155, 179, 0, 0, 132, 120,
          113, 114, 84, 63, 0, 0, 124, 108, 202, 189, 160, 174, 0, 0, 144, 142, 79,
          57, 159, 146, 0, 0, 138, 138, 119, 117, 255, 69, 0, 0, 97, 198, 47, 38,
          208, 84, 23, 112, 41, 14, 157, 7, 121, 192, 35, 11, 35, 11, 35, 11, 160,
          61, 129, 9, 40, 19, 20, 139, 236, 44, 0, 0, 15, 3, 97, 93, 0, 0],
        s = [0, 0, 23, 12, 53, 0, 130, 127, 58, 149, 67, 77, 72, 198, 13, 0, 25,
          51, 25, 49, 94, 2, 8, 64, 0, 24, 0, 21, 0, 9, 19, 27, 126, 126, 51,
          80, 72, 105, 87, 98, 73, 93, 106, 85, 111, 123, 87, 30, 116, 126, 123,
          110, 4, 16, 9, 28, 21, 53, 8, 62, 23, 52, 73, 21, 132, 183, 78, 142,
          168, 175, 70, 70, 128, 128, 123, 110, 125, 43, 100, 139, 125, 119, 78,
          78, 54, 77, 139, 139, 33, 87, 201, 117, 162, 149, 130, 130, 138, 60,
          130, 172, 149, 127, 95, 98, 95, 25, 118, 135, 110, 85, 147, 175, 105,
          110, 121, 30, 101, 113, 34, 68, 20, 26, 34, 68, 56, 0, 0, 44, 3, 0,
          27, 175, 80, 133, 31, 66, 85, 147, 32, 150, 90, 25, 45, 230, 77, 101,
          36, 83, 22, 84, 71, 118, 44, 44, 52, 172, 38, 101, 35, 130, 40, 197,
          43, 197, 29, 26, 23, 103, 67, 44, 25, 129, 29, 85, 27, 177, 33, 97,
          32, 145, 33, 77, 38, 96, 20, 55, 36, 95, 2, 22]
  }),define(d[216], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e, t, n, i) {
        this.configuration = e, this.theme = t, this.model = n, this.viewLayout = n.viewLayout, this.privateViewEventBus = i
      }

      return e.prototype.addEventHandler = function (e) {
        this.privateViewEventBus.addEventHandler(e)
      }, e.prototype.removeEventHandler = function (e) {
        this.privateViewEventBus.removeEventHandler(e)
      }, e
    }();
    t.ViewContext = n
  }),define(d[217], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e) {
        this._eventHandlerGateKeeper = e, this._eventHandlers = [], this._eventQueue = null, this._isConsumingQueue = !1
      }

      return e.prototype.addEventHandler = function (e) {
        for (var t = 0, n = this._eventHandlers.length; t < n;
            t++) {
          this._eventHandlers[t] === e && console.warn(
              "Detected duplicate listener in ViewEventDispatcher", e);
        }
        this._eventHandlers.push(e)
      }, e.prototype.removeEventHandler = function (e) {
        for (var t = 0; t < this._eventHandlers.length;
            t++) {
          if (this._eventHandlers[t] === e) {
            this._eventHandlers.splice(t, 1);
            break
          }
        }
      }, e.prototype.emit = function (e) {
        this._eventQueue ? this._eventQueue.push(e)
            : this._eventQueue = [e], this._isConsumingQueue
        || this.consumeQueue()
      }, e.prototype.emitMany = function (e) {
        this._eventQueue ? this._eventQueue = this._eventQueue.concat(e)
            : this._eventQueue = e, this._isConsumingQueue
        || this.consumeQueue()
      }, e.prototype.consumeQueue = function () {
        var e = this;
        this._eventHandlerGateKeeper(function () {
          try {
            e._isConsumingQueue = !0, e._doConsumeQueue()
          } finally {
            e._isConsumingQueue = !1
          }
        })
      }, e.prototype._doConsumeQueue = function () {
        for (; this._eventQueue;) {
          var e = this._eventQueue;
          this._eventQueue = null;
          for (var t = this._eventHandlers.slice(0), n = 0, i = t.length; n < i;
              n++) {
            t[n].handleEvents(e)
          }
        }
      }, e
    }();
    t.ViewEventDispatcher = n
  }),define(d[57], h([1, 0, 10, 3]), function (e, t, n, i) {
    "use strict";

    function o(e, t) {
      try {
        e(t)
      } catch (e) {
        n.onUnexpectedError(e)
      }
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.ViewConfigurationChanged = 1] = "ViewConfigurationChanged", e[e.ViewCursorStateChanged = 2] = "ViewCursorStateChanged", e[e.ViewDecorationsChanged = 3] = "ViewDecorationsChanged", e[e.ViewFlushed = 4] = "ViewFlushed", e[e.ViewFocusChanged = 5] = "ViewFocusChanged", e[e.ViewLineMappingChanged = 6] = "ViewLineMappingChanged", e[e.ViewLinesChanged = 7] = "ViewLinesChanged", e[e.ViewLinesDeleted = 8] = "ViewLinesDeleted", e[e.ViewLinesInserted = 9] = "ViewLinesInserted", e[e.ViewRevealRangeRequest = 10] = "ViewRevealRangeRequest", e[e.ViewScrollChanged = 11] = "ViewScrollChanged", e[e.ViewTokensChanged = 12] = "ViewTokensChanged", e[e.ViewTokensColorsChanged = 13] = "ViewTokensColorsChanged", e[e.ViewZonesChanged = 14] = "ViewZonesChanged", e[e.ViewThemeChanged = 15] = "ViewThemeChanged"
    }(t.ViewEventType || (t.ViewEventType = {}));
    var r = function () {
      return function (e) {
        this.type = 1, this.canUseLayerHinting = e.canUseLayerHinting, this.pixelRatio = e.pixelRatio, this.editorClassName = e.editorClassName, this.lineHeight = e.lineHeight, this.readOnly = e.readOnly, this.accessibilitySupport = e.accessibilitySupport, this.emptySelectionClipboard = e.emptySelectionClipboard, this.layoutInfo = e.layoutInfo, this.fontInfo = e.fontInfo, this.viewInfo = e.viewInfo, this.wrappingInfo = e.wrappingInfo
      }
    }();
    t.ViewConfigurationChangedEvent = r;
    var s = function () {
      return function (e, t, n) {
        this.type = 2, this.selections = e, this.isInEditableRange = t, this.screenReaderMessage = n
      }
    }();
    t.ViewCursorStateChangedEvent = s;
    var a = function () {
      return function () {
        this.type = 3
      }
    }();
    t.ViewDecorationsChangedEvent = a;
    var u = function () {
      return function () {
        this.type = 4
      }
    }();
    t.ViewFlushedEvent = u;
    var l = function () {
      return function (e) {
        this.type = 5, this.isFocused = e
      }
    }();
    t.ViewFocusChangedEvent = l;
    var c = function () {
      return function () {
        this.type = 6
      }
    }();
    t.ViewLineMappingChangedEvent = c;
    var d = function () {
      return function (e, t) {
        this.type = 7, this.fromLineNumber = e, this.toLineNumber = t
      }
    }();
    t.ViewLinesChangedEvent = d;
    var h = function () {
      return function (e, t) {
        this.type = 8, this.fromLineNumber = e, this.toLineNumber = t
      }
    }();
    t.ViewLinesDeletedEvent = h;
    var p = function () {
      return function (e, t) {
        this.type = 9, this.fromLineNumber = e, this.toLineNumber = t
      }
    }();
    t.ViewLinesInsertedEvent = p;
    !function (e) {
      e[e.Simple = 0] = "Simple", e[e.Center = 1] = "Center", e[e.CenterIfOutsideViewport = 2] = "CenterIfOutsideViewport", e[e.Top = 3] = "Top", e[e.Bottom = 4] = "Bottom"
    }(t.VerticalRevealType || (t.VerticalRevealType = {}));
    var g = function () {
      return function (e, t, n) {
        this.type = 10, this.range = e, this.verticalType = t, this.revealHorizontal = n
      }
    }();
    t.ViewRevealRangeRequestEvent = g;
    var m = function () {
      return function (e) {
        this.type = 11, this.scrollWidth = e.scrollWidth, this.scrollLeft = e.scrollLeft, this.scrollHeight = e.scrollHeight, this.scrollTop = e.scrollTop, this.scrollWidthChanged = e.scrollWidthChanged, this.scrollLeftChanged = e.scrollLeftChanged, this.scrollHeightChanged = e.scrollHeightChanged, this.scrollTopChanged = e.scrollTopChanged
      }
    }();
    t.ViewScrollChangedEvent = m;
    var v = function () {
      return function (e) {
        this.type = 12, this.ranges = e
      }
    }();
    t.ViewTokensChangedEvent = v;
    var _ = function () {
      return function () {
        this.type = 15
      }
    }();
    t.ViewThemeChangedEvent = _;
    var y = function () {
      return function () {
        this.type = 13
      }
    }();
    t.ViewTokensColorsChangedEvent = y;
    var C = function () {
      return function () {
        this.type = 14
      }
    }();
    t.ViewZonesChangedEvent = C;
    var b = function (e) {
      function t() {
        var t = e.call(this) || this;
        return t._listeners = [], t
      }

      return f(t, e), t.prototype.dispose = function () {
        this._listeners = [], e.prototype.dispose.call(this)
      }, t.prototype._emit = function (e) {
        for (var t = this._listeners.slice(0), n = 0, i = t.length; n < i;
            n++) {
          o(t[n], e)
        }
      }, t.prototype.addEventListener = function (e) {
        var t = this;
        return this._listeners.push(e), {
          dispose: function () {
            for (var n = t._listeners, i = 0, o = n.length; i < o; i++) {
              if (n[i]
                  === e) {
                n.splice(i, 1);
                break
              }
            }
          }
        }
      }, t
    }(i.Disposable);
    t.ViewEventEmitter = b
  }),define(d[138], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e, t, n, i) {
        this.startColumn = e, this.endColumn = t, this.className = n, this.insertsBeforeOrAfter = i
      }

      return e._equals = function (e, t) {
        return e.startColumn === t.startColumn && e.endColumn === t.endColumn
            && e.className === t.className && e.insertsBeforeOrAfter
            === t.insertsBeforeOrAfter
      }, e.equalsArr = function (t, n) {
        var i = t.length;
        if (i !== n.length) {
          return !1;
        }
        for (var o = 0; o < i; o++) {
          if (!e._equals(t[o], n[o])) {
            return !1;
          }
        }
        return !0
      }, e.filter = function (t, n, i, o) {
        if (0 === t.length) {
          return [];
        }
        for (var r = [], s = 0, a = 0, u = t.length; a < u; a++) {
          var l = t[a], c = l.range;
          if (!(c.endLineNumber < n || c.startLineNumber > n) && !c.isEmpty()) {
            var d = c.startLineNumber === n ? c.startColumn : i,
                h = c.endLineNumber === n ? c.endColumn : o;
            h <= 1 || (r[s++] = new e(d, h, l.inlineClassName,
                l.insertsBeforeOrAfter))
          }
        }
        return r
      }, e.compare = function (e, t) {
        return e.startColumn === t.startColumn ? e.endColumn === t.endColumn
            ? e.className < t.className ? -1 : e.className > t.className ? 1 : 0
            : e.endColumn - t.endColumn : e.startColumn - t.startColumn
      }, e
    }();
    t.LineDecoration = n;
    var i = function () {
      return function (e, t, n) {
        this.startOffset = e, this.endOffset = t, this.className = n
      }
    }();
    t.DecorationSegment = i;
    var o = function () {
      function e() {
        this.stopOffsets = [], this.classNames = [], this.count = 0
      }

      return e.prototype.consumeLowerThan = function (e, t, n) {
        for (; this.count > 0 && this.stopOffsets[0] < e;) {
          for (var o = 0;
              o + 1 < this.count && this.stopOffsets[o] === this.stopOffsets[o
              + 1];) {
            o++;
          }
          n.push(new i(t, this.stopOffsets[o],
              this.classNames.join(" "))), t = this.stopOffsets[o]
              + 1, this.stopOffsets.splice(0, o + 1), this.classNames.splice(0,
              o + 1), this.count -= o + 1
        }
        return this.count > 0 && t < e && (n.push(
            new i(t, e - 1, this.classNames.join(" "))), t = e), t
      }, e.prototype.insert = function (e, t) {
        if (0 === this.count || this.stopOffsets[this.count - 1]
            <= e) {
          this.stopOffsets.push(e), this.classNames.push(
              t);
        } else {
          for (var n = 0; n < this.count;
              n++) {
            if (this.stopOffsets[n] >= e) {
              this.stopOffsets.splice(n, 0, e), this.classNames.splice(n, 0, t);
              break
            }
          }
        }
        this.count++
      }, e
    }(), r = function () {
      function e() {
      }

      return e.normalize = function (e) {
        if (0 === e.length) {
          return [];
        }
        for (var t = [], n = new o, i = 0, r = 0, s = e.length; r < s; r++) {
          var a = e[r], u = a.startColumn - 1, l = a.endColumn - 2;
          i = n.consumeLowerThan(u, i, t), 0 === n.count && (i = u), n.insert(l,
              a.className)
        }
        return n.consumeLowerThan(1073741824, i, t), t
      }, e
    }();
    t.LineDecorationsNormalizer = r
  }),define(d[106], h([1, 0, 90, 138, 9]), function (e, t, n, i, o) {
    "use strict";

    function r(e) {
      var t, n, i = e.useMonospaceOptimizations, r = e.lineContent;
      -1 !== e.stopRenderingLineAfter && e.stopRenderingLineAfter < r.length
          ? (t = !0, n = e.stopRenderingLineAfter) : (t = !1, n = r.length);
      var c = s(e.lineTokens, e.fauxIndentLength, n);
      2 !== e.renderWhitespace && 1 !== e.renderWhitespace || (c = u(r, n, c,
          e.fauxIndentLength, e.tabSize, i, 1 === e.renderWhitespace));
      var d = !1;
      if (e.lineDecorations.length > 0) {
        for (var h = 0, p = e.lineDecorations.length; h < p;
            h++) {
          if (e.lineDecorations[h].insertsBeforeOrAfter) {
            d = !0;
            break
          }
        }
        c = l(r, n, c, e.lineDecorations)
      }
      var f = !1;
      return e.mightContainRTL && (f = o.containsRTL(r)), f || e.fontLigatures
      || (c = a(r, c)), new m(i, r, n, t, c, d, e.tabSize, f, e.spaceWidth,
          e.renderWhitespace, e.renderControlCharacters)
    }

    function s(e, t, n) {
      var i = [], o = 0;
      t > 0 && (i[o++] = new d(t, ""));
      for (var r = 0, s = e.length; r < s; r++) {
        var a = e[r], u = a.endIndex;
        if (!(u <= t)) {
          var l = a.getType();
          if (u >= n) {
            i[o++] = new d(n, l);
            break
          }
          i[o++] = new d(u, l)
        }
      }
      return i
    }

    function a(e, t) {
      for (var n = 0, i = [], r = 0, s = 0, a = t.length; s < a; s++) {
        var u = t[s], l = u.endIndex, c = l - n;
        if (c > 50) {
          for (var h = u.type, p = Math.ceil(c / 50), f = 1; f < p; f++) {
            var g = n + 50 * f, m = e.charCodeAt(g - 1);
            o.isHighSurrogate(m) && g--, i[r++] = new d(g, h)
          }
          i[r++] = new d(l, h)
        } else {
          i[r++] = u;
        }
        n = l
      }
      return i
    }

    function u(e, t, n, i, r, s, a) {
      var u, l = [], c = 0, h = 0, p = n[h].type, f = n[h].endIndex,
          g = o.firstNonWhitespaceIndex(e);
      -1 === g ? (g = t, u = t) : u = o.lastNonWhitespaceIndex(e);
      for (var m = 0, v = 0; v < i; v++) {
        9 === (y = e.charCodeAt(v)) ? m = r
            : m++;
      }
      m %= r;
      for (var _ = !1, v = i; v < t; v++) {
        var y = e.charCodeAt(v), C = void 0;
        if (v < g || v > u) {
          C = !0;
        } else if (9 === y) {
          C = !0;
        } else if (32
            === y) {
          if (a) {
            if (_) {
              C = !0;
            } else {
              var b = v + 1 < t ? e.charCodeAt(v + 1) : 0;
              C = 32 === b || 9 === b
            }
          } else {
            C = !0;
          }
        } else {
          C = !1;
        }
        _ ? (!C || !s && m >= r) && (l[c++] = new d(v, "vs-whitespace"), m %= r)
            : (v === f || C && v > i) && (l[c++] = new d(v, p), m %= r), 9 === y
            ? m = r : m++, _ = C, v === f
        && (p = n[++h].type, f = n[h].endIndex)
      }
      return l[c++] = _ ? new d(t, "vs-whitespace") : new d(t, p), l
    }

    function l(e, t, n, o) {
      o.sort(i.LineDecoration.compare);
      for (var r = i.LineDecorationsNormalizer.normalize(o), s = r.length,
          a = 0, u = [], l = 0, c = 0, h = 0, p = n.length; h < p; h++) {
        for (var f = n[h], g = f.endIndex, m = f.type;
            a < s && r[a].startOffset < g;) {
          var v = r[a];
          if (v.startOffset > c && (c = v.startOffset, u[l++] = new d(c,
              m)), !(v.endOffset + 1 <= g)) {
            c = g, u[l++] = new d(c, m + " " + v.className);
            break
          }
          c = v.endOffset + 1, u[l++] = new d(c, m + " " + v.className), a++
        }
        g > c && (c = g, u[l++] = new d(c, m))
      }
      return u
    }

    function c(e) {
      for (var t = e.fontIsMonospace, n = e.containsForeignElements,
          i = e.lineContent, o = e.len, r = e.isOverflowing, s = e.parts,
          a = e.tabSize, u = e.containsRTL, l = e.spaceWidth,
          c = e.renderWhitespace, d = e.renderControlCharacters,
          h = new p(o + 1, s.length), g = 0, m = 0, v = 0, _ = "<span>", y = 0,
          C = s.length; y < C; y++) {
        var b = s[y], w = b.endIndex, S = b.type;
        if (v = 0, 0 !== c && S.indexOf("vs-whitespace") >= 0) {
          for (var E = 0, L = ""; g < w; g++) {
            if (h.setPartData(g, y, v), 9 === (x = i.charCodeAt(
                g))) {
              for (m += (N = a - (g + m) % a) - 1, v += N - 1, N > 0
              && (L += "&rarr;", E++, N--);
                  N > 0;) {
                L += "&nbsp;", E++, N--;
              }
            } else {
              L += "&middot;", E++;
            }
            v++
          }
          h.setPartLength(y, E), _ += t || n ? '<span class="' + S + '">' + L
              + "</span>" : '<span class="' + S + '" style="width:' + l * E
              + 'px">' + L + "</span>"
        } else {
          for (var E = 0, L = ""; g < w; g++) {
            h.setPartData(g, y, v);
            var x = i.charCodeAt(g);
            switch (x) {
              case 9:
                var N = a - (g + m) % a;
                for (m += N - 1, v += N - 1; N > 0;) {
                  L += "&nbsp;", E++, N--;
                }
                break;
              case 32:
                L += "&nbsp;", E++;
                break;
              case 60:
                L += "&lt;", E++;
                break;
              case 62:
                L += "&gt;", E++;
                break;
              case 38:
                L += "&amp;", E++;
                break;
              case 0:
                L += "&#00;", E++;
                break;
              case 65279:
              case 8232:
                L += "�", E++;
                break;
              case 13:
                L += "&#8203", E++;
                break;
              default:
                d && x < 32 ? (L += String.fromCharCode(9216 + x), E++)
                    : (L += String.fromCharCode(x), E++)
            }
            v++
          }
          h.setPartLength(y, E), _ += u ? '<span dir="ltr" class="' + S + '">'
              + L + "</span>" : '<span class="' + S + '">' + L + "</span>"
        }
      }
      return h.setPartData(o, s.length - 1, v), r
      && (_ += "<span>&hellip;</span>"), _ += "</span>", new f(h, _, u, n)
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.None = 0] = "None", e[e.Boundary = 1] = "Boundary", e[e.All = 2] = "All"
    }(t.RenderWhitespace || (t.RenderWhitespace = {}));
    var d = function () {
      return function (e, t) {
        this.endIndex = e, this.type = t
      }
    }(), h = function () {
      function e(e, t, n, i, o, r, s, a, u, l, c, d) {
        this.useMonospaceOptimizations = e, this.lineContent = t, this.mightContainRTL = n, this.fauxIndentLength = i, this.lineTokens = o, this.lineDecorations = r, this.tabSize = s, this.spaceWidth = a, this.stopRenderingLineAfter = u, this.renderWhitespace = "all"
        === l ? 2 : "boundary" === l ? 1
            : 0, this.renderControlCharacters = c, this.fontLigatures = d
      }

      return e.prototype.equals = function (e) {
        return this.useMonospaceOptimizations === e.useMonospaceOptimizations
            && this.lineContent === e.lineContent && this.mightContainRTL
            === e.mightContainRTL && this.fauxIndentLength
            === e.fauxIndentLength && this.tabSize === e.tabSize
            && this.spaceWidth === e.spaceWidth && this.stopRenderingLineAfter
            === e.stopRenderingLineAfter && this.renderWhitespace
            === e.renderWhitespace && this.renderControlCharacters
            === e.renderControlCharacters && this.fontLigatures
            === e.fontLigatures && i.LineDecoration.equalsArr(
                this.lineDecorations, e.lineDecorations)
            && n.ViewLineToken.equalsArr(this.lineTokens, e.lineTokens)
      }, e
    }();
    t.RenderLineInput = h;
    !function (e) {
      e[e.PART_INDEX_MASK = 4294901760] = "PART_INDEX_MASK", e[e.CHAR_INDEX_MASK = 65535] = "CHAR_INDEX_MASK", e[e.CHAR_INDEX_OFFSET = 0] = "CHAR_INDEX_OFFSET", e[e.PART_INDEX_OFFSET = 16] = "PART_INDEX_OFFSET"
    }(t.CharacterMappingConstants || (t.CharacterMappingConstants = {}));
    var p = function () {
      function e(e, t) {
        this.length = e, this._data = new Uint32Array(
            this.length), this._partLengths = new Uint16Array(t)
      }

      return e.getPartIndex = function (e) {
        return (4294901760 & e) >>> 16
      }, e.getCharIndex = function (e) {
        return (65535 & e) >>> 0
      }, e.prototype.setPartData = function (e, t, n) {
        var i = (t << 16 | n << 0) >>> 0;
        this._data[e] = i
      }, e.prototype.setPartLength = function (e, t) {
        this._partLengths[e] = t
      }, e.prototype.getPartLengths = function () {
        return this._partLengths
      }, e.prototype.charOffsetToPartData = function (e) {
        return 0 === this.length ? 0 : e < 0 ? this._data[0] : e >= this.length
            ? this._data[this.length - 1] : this._data[e]
      }, e.prototype.partDataToCharOffset = function (t, n, i) {
        if (0 === this.length) {
          return 0;
        }
        for (var o = (t << 16 | i << 0) >>> 0, r = 0, s = this.length - 1;
            r + 1 < s;) {
          var a = r + s >>> 1, u = this._data[a];
          if (u === o) {
            return a;
          }
          u > o ? s = a : r = a
        }
        if (r === s) {
          return r;
        }
        var l = this._data[r], c = this._data[s];
        if (l === o) {
          return r;
        }
        if (c === o) {
          return s;
        }
        var d = e.getPartIndex(l);
        return i - e.getCharIndex(l) <= (d !== e.getPartIndex(c) ? n
            : e.getCharIndex(c)) - i ? r : s
      }, e
    }();
    t.CharacterMapping = p;
    var f = function () {
      return function (e, t, n, i) {
        this.characterMapping = e, this.html = t, this.containsRTL = n, this.containsForeignElements = i
      }
    }();
    t.RenderLineOutput = f, t.renderViewLine = function (e) {
      if (0 === e.lineContent.length) {
        var t = !1, n = "<span><span>&nbsp;</span></span>";
        if (e.lineDecorations.length > 0) {
          for (var i = [], o = 0, s = e.lineDecorations.length; o < s;
              o++) {
            e.lineDecorations[o].insertsBeforeOrAfter
            && (i[o] = e.lineDecorations[o].className, t = !0);
          }
          t && (n = '<span><span class="' + i.join(" ")
              + '">&nbsp;</span></span>')
        }
        return new f(new p(0, 0), n, !1, t)
      }
      return c(r(e))
    };
    var g, m = function () {
      return function (e, t, n, i, o, r, s, a, u, l, c) {
        this.fontIsMonospace = e, this.lineContent = t, this.len = n, this.isOverflowing = i, this.parts = o, this.containsForeignElements = r, this.tabSize = s, this.containsRTL = a, this.spaceWidth = u, this.renderWhitespace = l, this.renderControlCharacters = c
      }
    }();
    !function (e) {
      e[e.LongToken = 50] = "LongToken"
    }(g || (g = {}))
  }),define(d[221], h([1, 0, 2]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t, i, o) {
        this.selections = e, this.startLineNumber = 0
            | t.startLineNumber, this.endLineNumber = 0
            | t.endLineNumber, this.relativeVerticalOffset = t.relativeVerticalOffset, this.bigNumbersDelta = 0
            | t.bigNumbersDelta, this.whitespaceViewportData = i, this._model = o, this.visibleRange = new n.Range(
            t.startLineNumber, this._model.getLineMinColumn(t.startLineNumber),
            t.endLineNumber, this._model.getLineMaxColumn(t.endLineNumber))
      }

      return e.prototype.getViewLineRenderingData = function (e) {
        return this._model.getViewLineRenderingData(this.visibleRange, e)
      }, e.prototype.getDecorationsInViewport = function () {
        return this._model.getDecorationsInViewport(this.visibleRange)
      }, e
    }();
    t.ViewportData = i
  }),define(d[222], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e() {
        this._heights = [], this._ids = [], this._afterLineNumbers = [], this._ordinals = [], this._prefixSum = [], this._prefixSumValidIndex = -1, this._whitespaceId2Index = {}, this._lastWhitespaceId = 0
      }

      return e.findInsertionIndex = function (e, t, n, i) {
        for (var o = 0, r = e.length; o < r;) {
          var s = o + r >>> 1;
          t === e[s] ? i < n[s] ? r = s : o = s + 1 : t < e[s] ? r = s : o = s
              + 1
        }
        return o
      }, e.prototype.insertWhitespace = function (t, n, i) {
        t |= 0, n |= 0, i |= 0;
        var o = ++this._lastWhitespaceId,
            r = e.findInsertionIndex(this._afterLineNumbers, t, this._ordinals,
                n);
        return this._insertWhitespaceAtIndex(o, r, t, n, i), o
      }, e.prototype._insertWhitespaceAtIndex = function (e, t, n, i, o) {
        e |= 0, t |= 0, n |= 0, i |= 0, o |= 0, this._heights.splice(t, 0,
            o), this._ids.splice(t, 0, e), this._afterLineNumbers.splice(t, 0,
            n), this._ordinals.splice(t, 0, i), this._prefixSum.splice(t, 0, 0);
        for (var r = Object.keys(this._whitespaceId2Index), s = 0, a = r.length;
            s < a; s++) {
          var u = r[s], l = this._whitespaceId2Index[u];
          l >= t && (this._whitespaceId2Index[u] = l + 1)
        }
        this._whitespaceId2Index[e.toString()] = t, this._prefixSumValidIndex = Math.min(
            this._prefixSumValidIndex, t - 1)
      }, e.prototype.changeWhitespace = function (e, t, n) {
        e |= 0, t |= 0, n |= 0;
        var i = !1;
        return i = this.changeWhitespaceHeight(e, n)
            || i, i = this.changeWhitespaceAfterLineNumber(e, t) || i
      }, e.prototype.changeWhitespaceHeight = function (e, t) {
        t |= 0;
        var n = (e |= 0).toString();
        if (this._whitespaceId2Index.hasOwnProperty(n)) {
          var i = this._whitespaceId2Index[n];
          if (this._heights[i]
              !== t) {
            return this._heights[i] = t, this._prefixSumValidIndex = Math.min(
                this._prefixSumValidIndex, i - 1), !0
          }
        }
        return !1
      }, e.prototype.changeWhitespaceAfterLineNumber = function (t, n) {
        n |= 0;
        var i = (t |= 0).toString();
        if (this._whitespaceId2Index.hasOwnProperty(i)) {
          var o = this._whitespaceId2Index[i];
          if (this._afterLineNumbers[o] !== n) {
            var r = this._ordinals[o], s = this._heights[o];
            this.removeWhitespace(t);
            var a = e.findInsertionIndex(this._afterLineNumbers, n,
                this._ordinals, r);
            return this._insertWhitespaceAtIndex(t, a, n, r, s), !0
          }
        }
        return !1
      }, e.prototype.removeWhitespace = function (e) {
        var t = (e |= 0).toString();
        if (this._whitespaceId2Index.hasOwnProperty(t)) {
          var n = this._whitespaceId2Index[t];
          return delete this._whitespaceId2Index[t], this._removeWhitespaceAtIndex(
              n), !0
        }
        return !1
      }, e.prototype._removeWhitespaceAtIndex = function (e) {
        e |= 0, this._heights.splice(e, 1), this._ids.splice(e,
            1), this._afterLineNumbers.splice(e, 1), this._ordinals.splice(e,
            1), this._prefixSum.splice(e,
            1), this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex,
            e - 1);
        for (var t = Object.keys(this._whitespaceId2Index), n = 0, i = t.length;
            n < i; n++) {
          var o = t[n], r = this._whitespaceId2Index[o];
          r >= e && (this._whitespaceId2Index[o] = r - 1)
        }
      }, e.prototype.onLinesDeleted = function (e, t) {
        e |= 0, t |= 0;
        for (var n = 0, i = this._afterLineNumbers.length; n < i; n++) {
          var o = this._afterLineNumbers[n];
          e <= o && o <= t ? this._afterLineNumbers[n] = e - 1 : o > t
              && (this._afterLineNumbers[n] -= t - e + 1)
        }
      }, e.prototype.onLinesInserted = function (e, t) {
        e |= 0, t |= 0;
        for (var n = 0, i = this._afterLineNumbers.length; n < i; n++) {
          e
          <= this._afterLineNumbers[n] && (this._afterLineNumbers[n] += t - e
              + 1)
        }
      }, e.prototype.getTotalHeight = function () {
        return 0 === this._heights.length ? 0 : this.getAccumulatedHeight(
            this._heights.length - 1)
      }, e.prototype.getAccumulatedHeight = function (e) {
        e |= 0;
        var t = Math.max(0, this._prefixSumValidIndex + 1);
        0 === t && (this._prefixSum[0] = this._heights[0], t++);
        for (var n = t; n <= e; n++) {
          this._prefixSum[n] = this._prefixSum[n - 1]
              + this._heights[n];
        }
        return this._prefixSumValidIndex = Math.max(this._prefixSumValidIndex,
            e), this._prefixSum[e]
      }, e.prototype.getAccumulatedHeightBeforeLineNumber = function (e) {
        e |= 0;
        var t = this._findLastWhitespaceBeforeLineNumber(e);
        return -1 === t ? 0 : this.getAccumulatedHeight(t)
      }, e.prototype._findLastWhitespaceBeforeLineNumber = function (e) {
        e |= 0;
        for (var t = this._afterLineNumbers, n = 0, i = t.length - 1; n <= i;) {
          var o = n + ((i - n | 0) / 2 | 0) | 0;
          if (t[o] < e) {
            if (o + 1 >= t.length || t[o + 1] >= e) {
              return o;
            }
            n = o + 1 | 0
          } else {
            i = o - 1 | 0
          }
        }
        return -1
      }, e.prototype._findFirstWhitespaceAfterLineNumber = function (e) {
        e |= 0;
        var t = this._findLastWhitespaceBeforeLineNumber(e) + 1;
        return t < this._heights.length ? t : -1
      }, e.prototype.getFirstWhitespaceIndexAfterLineNumber = function (e) {
        return e |= 0, this._findFirstWhitespaceAfterLineNumber(e)
      }, e.prototype.getCount = function () {
        return this._heights.length
      }, e.prototype.getAfterLineNumberForWhitespaceIndex = function (e) {
        return e |= 0, this._afterLineNumbers[e]
      }, e.prototype.getIdForWhitespaceIndex = function (e) {
        return e |= 0, this._ids[e]
      }, e.prototype.getHeightForWhitespaceIndex = function (e) {
        return e |= 0, this._heights[e]
      }, e.prototype.getWhitespaces = function (e) {
        e |= 0;
        for (var t = [], n = 0; n < this._heights.length; n++) {
          t.push({
            id: this._ids[n],
            afterLineNumber: this._afterLineNumbers[n],
            heightInLines: this._heights[n] / e
          });
        }
        return t
      }, e
    }();
    t.WhitespaceComputer = n
  }),define(d[223], h([1, 0, 222]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t) {
        this._lineCount = e, this._lineHeight = t, this._whitespaces = new n.WhitespaceComputer
      }

      return e.prototype.setLineHeight = function (e) {
        this._lineHeight = e
      }, e.prototype.onFlushed = function (e) {
        this._lineCount = e
      }, e.prototype.insertWhitespace = function (e, t, n) {
        return this._whitespaces.insertWhitespace(e, t, n)
      }, e.prototype.changeWhitespace = function (e, t, n) {
        return this._whitespaces.changeWhitespace(e, t, n)
      }, e.prototype.removeWhitespace = function (e) {
        return this._whitespaces.removeWhitespace(e)
      }, e.prototype.onLinesDeleted = function (e, t) {
        this._lineCount -= t - e + 1, this._whitespaces.onLinesDeleted(e, t)
      }, e.prototype.onLinesInserted = function (e, t) {
        this._lineCount += t - e + 1, this._whitespaces.onLinesInserted(e, t)
      }, e.prototype.getLinesTotalHeight = function () {
        return this._lineHeight * this._lineCount
            + this._whitespaces.getTotalHeight()
      }, e.prototype.getVerticalOffsetForLineNumber = function (e) {
        return ((e |= 0) > 1 ? this._lineHeight * (e - 1) : 0)
            + this._whitespaces.getAccumulatedHeightBeforeLineNumber(e)
      }, e.prototype.getWhitespaceAccumulatedHeightBeforeLineNumber = function (e) {
        return this._whitespaces.getAccumulatedHeightBeforeLineNumber(e)
      }, e.prototype.hasWhitespace = function () {
        return this._whitespaces.getCount() > 0
      }, e.prototype.isAfterLines = function (e) {
        return e > this.getLinesTotalHeight()
      }, e.prototype.getLineNumberAtOrAfterVerticalOffset = function (e) {
        if ((e |= 0) < 0) {
          return 1;
        }
        for (var t = 0 | this._lineCount, n = this._lineHeight, i = 1, o = t;
            i < o;) {
          var r = (i + o) / 2 | 0,
              s = 0 | this.getVerticalOffsetForLineNumber(r);
          if (e >= s + n) {
            i = r + 1;
          } else {
            if (e >= s) {
              return r;
            }
            o = r
          }
        }
        return i > t ? t : i
      }, e.prototype.getLinesViewportData = function (e, t) {
        e |= 0, t |= 0;
        var n, i, o = this._lineHeight,
            r = 0 | this.getLineNumberAtOrAfterVerticalOffset(e),
            s = 0 | this.getVerticalOffsetForLineNumber(r),
            a = 0 | this._lineCount,
            u = 0 | this._whitespaces.getFirstWhitespaceIndexAfterLineNumber(r),
            l = 0 | this._whitespaces.getCount();
        -1 === u ? (u = l, i = a + 1, n = 0) : (i = 0
            | this._whitespaces.getAfterLineNumberForWhitespaceIndex(u), n = 0
            | this._whitespaces.getHeightForWhitespaceIndex(u));
        var c = s, d = c, h = 0;
        s >= 5e5 && (h = 5e5 * Math.floor(s / 5e5), d -= h = Math.floor(h / o)
            * o);
        for (var p = [], f = e + (t - e) / 2, g = -1, m = r; m <= a; m++) {
          if (-1 === g) {
            var v = c, _ = c + o;
            (v <= f && f < _ || v > f) && (g = m)
          }
          for (c += o, p[m - r] = d, d += o; i === m;) {
            d += n, c += n, ++u >= l
                ? i = a + 1 : (i = 0
                    | this._whitespaces.getAfterLineNumberForWhitespaceIndex(
                        u), n = 0
                    | this._whitespaces.getHeightForWhitespaceIndex(
                        u));
          }
          if (c >= t) {
            a = m;
            break
          }
        }
        -1 === g && (g = a);
        var y = 0 | this.getVerticalOffsetForLineNumber(a), C = r, b = a;
        return C < b && s < e && C++, C < b && y + o > t && b--, {
          bigNumbersDelta: h,
          startLineNumber: r,
          endLineNumber: a,
          relativeVerticalOffset: p,
          centeredLineNumber: g,
          completelyVisibleStartLineNumber: C,
          completelyVisibleEndLineNumber: b
        }
      }, e.prototype.getVerticalOffsetForWhitespaceIndex = function (e) {
        e |= 0;
        var t, n = this._whitespaces.getAfterLineNumberForWhitespaceIndex(e);
        t = n >= 1 ? this._lineHeight * n : 0;
        var i;
        return i = e > 0 ? this._whitespaces.getAccumulatedHeight(e - 1) : 0, t
        + i
      }, e.prototype.getWhitespaceIndexAtOrAfterVerticallOffset = function (e) {
        e |= 0;
        var t, n, i, o = 0, r = this._whitespaces.getCount() - 1;
        if (r < 0) {
          return -1;
        }
        if (e >= this.getVerticalOffsetForWhitespaceIndex(r)
            + this._whitespaces.getHeightForWhitespaceIndex(r)) {
          return -1;
        }
        for (; o < r;) {
          if (t = Math.floor(
              (o + r) / 2), n = this.getVerticalOffsetForWhitespaceIndex(
              t), i = this._whitespaces.getHeightForWhitespaceIndex(t), e >= n
          + i) {
            o = t + 1;
          } else {
            if (e >= n) {
              return t;
            }
            r = t
          }
        }
        return o
      }, e.prototype.getWhitespaceAtVerticalOffset = function (e) {
        e |= 0;
        var t = this.getWhitespaceIndexAtOrAfterVerticallOffset(e);
        if (t < 0) {
          return null;
        }
        if (t >= this._whitespaces.getCount()) {
          return null;
        }
        var n = this.getVerticalOffsetForWhitespaceIndex(t);
        if (n > e) {
          return null;
        }
        var i = this._whitespaces.getHeightForWhitespaceIndex(t);
        return {
          id: this._whitespaces.getIdForWhitespaceIndex(t),
          afterLineNumber: this._whitespaces.getAfterLineNumberForWhitespaceIndex(
              t),
          verticalOffset: n,
          height: i
        }
      }, e.prototype.getWhitespaceViewportData = function (e, t) {
        e |= 0, t |= 0;
        var n = this.getWhitespaceIndexAtOrAfterVerticallOffset(e),
            i = this._whitespaces.getCount() - 1;
        if (n < 0) {
          return [];
        }
        for (var o = [], r = n; r <= i; r++) {
          var s = this.getVerticalOffsetForWhitespaceIndex(r),
              a = this._whitespaces.getHeightForWhitespaceIndex(r);
          if (s >= t) {
            break;
          }
          o.push({
            id: this._whitespaces.getIdForWhitespaceIndex(r),
            afterLineNumber: this._whitespaces.getAfterLineNumberForWhitespaceIndex(
                r),
            verticalOffset: s,
            height: a
          })
        }
        return o
      }, e.prototype.getWhitespaces = function () {
        return this._whitespaces.getWhitespaces(this._lineHeight)
      }, e
    }();
    t.LinesLayout = i
  }),define(d[104], h([1, 0, 96]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      return function (e, t) {
        this.index = e, this.remainder = t
      }
    }();
    t.PrefixSumIndexOfResult = i;
    var o = function () {
      function e(e) {
        this.values = e, this.prefixSum = new Uint32Array(
            e.length), this.prefixSumValidIndex = new Int32Array(
            1), this.prefixSumValidIndex[0] = -1
      }

      return e.prototype.getCount = function () {
        return this.values.length
      }, e.prototype.insertValues = function (e, t) {
        e = n.toUint32(e);
        var i = this.values, o = this.prefixSum, r = t.length;
        return 0 !== r && (this.values = new Uint32Array(
            i.length + r), this.values.set(i.subarray(0, e),
            0), this.values.set(i.subarray(e), e + r), this.values.set(t, e), e
        - 1 < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e
            - 1), this.prefixSum = new Uint32Array(
            this.values.length), this.prefixSumValidIndex[0] >= 0
        && this.prefixSum.set(
            o.subarray(0, this.prefixSumValidIndex[0] + 1)), !0)
      }, e.prototype.changeValue = function (e, t) {
        return e = n.toUint32(e), t = n.toUint32(t), this.values[e] !== t
        && (this.values[e] = t, e - 1 < this.prefixSumValidIndex[0]
        && (this.prefixSumValidIndex[0] = e - 1), !0)
      }, e.prototype.removeValues = function (e, t) {
        e = n.toUint32(e), t = n.toUint32(t);
        var i = this.values, o = this.prefixSum;
        if (e >= i.length) {
          return !1;
        }
        var r = i.length - e;
        return t >= r && (t = r), 0 !== t && (this.values = new Uint32Array(
            i.length - t), this.values.set(i.subarray(0, e),
            0), this.values.set(i.subarray(e + t),
            e), this.prefixSum = new Uint32Array(this.values.length), e - 1
        < this.prefixSumValidIndex[0] && (this.prefixSumValidIndex[0] = e
            - 1), this.prefixSumValidIndex[0] >= 0 && this.prefixSum.set(
            o.subarray(0, this.prefixSumValidIndex[0] + 1)), !0)
      }, e.prototype.getTotalValue = function () {
        return 0 === this.values.length ? 0 : this._getAccumulatedValue(
            this.values.length - 1)
      }, e.prototype.getAccumulatedValue = function (e) {
        return e < 0 ? 0 : (e = n.toUint32(e), this._getAccumulatedValue(e))
      }, e.prototype._getAccumulatedValue = function (e) {
        if (e <= this.prefixSumValidIndex[0]) {
          return this.prefixSum[e];
        }
        var t = this.prefixSumValidIndex[0] + 1;
        0 === t && (this.prefixSum[0] = this.values[0], t++), e
        >= this.values.length && (e = this.values.length - 1);
        for (var n = t; n <= e; n++) {
          this.prefixSum[n] = this.prefixSum[n - 1]
              + this.values[n];
        }
        return this.prefixSumValidIndex[0] = Math.max(
            this.prefixSumValidIndex[0], e), this.prefixSum[e]
      }, e.prototype.getIndexOf = function (e) {
        e = Math.floor(e), this.getTotalValue();
        for (var t, n, o, r = 0, s = this.values.length - 1; r <= s;) {
          if (t = r
              + (s - r) / 2 | 0, n = this.prefixSum[t], o = n
              - this.values[t], e
          < o) {
            s = t - 1;
          } else {
            if (!(e >= n)) {
              break;
            }
            r = t + 1
          }
        }
        return new i(t, e - o)
      }, e
    }();
    t.PrefixSumComputer = o;
    var r = function () {
      function e(e) {
        this._cacheAccumulatedValueStart = 0, this._cache = null, this._actual = new o(
            e), this._bustCache()
      }

      return e.prototype._bustCache = function () {
        this._cacheAccumulatedValueStart = 0, this._cache = null
      }, e.prototype.getCount = function () {
        return this._actual.getCount()
      }, e.prototype.insertValues = function (e, t) {
        this._actual.insertValues(e, t) && this._bustCache()
      }, e.prototype.changeValue = function (e, t) {
        this._actual.changeValue(e, t) && this._bustCache()
      }, e.prototype.removeValues = function (e, t) {
        this._actual.removeValues(e, t) && this._bustCache()
      }, e.prototype.getTotalValue = function () {
        return this._actual.getTotalValue()
      }, e.prototype.getAccumulatedValue = function (e) {
        return this._actual.getAccumulatedValue(e)
      }, e.prototype.getIndexOf = function (e) {
        if (e = Math.floor(e), null !== this._cache) {
          var t = e - this._cacheAccumulatedValueStart;
          if (t >= 0 && t < this._cache.length) {
            return this._cache[t]
          }
        }
        return this._actual.getIndexOf(e)
      }, e.prototype.warmUpCache = function (e, t) {
        for (var n = [], i = e; i <= t; i++) {
          n[i - e] = this.getIndexOf(i);
        }
        this._cache = n, this._cacheAccumulatedValueStart = e
      }, e
    }();
    t.PrefixSumComputerWithCache = r
  }),define(d[225], h([1, 0, 104]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t, n, i) {
        this._uri = e, this._lines = t, this._eol = n, this._versionId = i
      }

      return e.prototype.dispose = function () {
        this._lines.length = 0
      }, Object.defineProperty(e.prototype, "version", {
        get: function () {
          return this._versionId
        }, enumerable: !0, configurable: !0
      }), e.prototype.getText = function () {
        return this._lines.join(this._eol)
      }, e.prototype.onEvents = function (e) {
        e.eol && e.eol !== this._eol
        && (this._eol = e.eol, this._lineStarts = null);
        for (var t = e.changes, n = 0, i = t.length; n < i; n++) {
          var o = t[n];
          this._acceptDeleteRange(o.range), this._acceptInsertText({
            lineNumber: o.range.startLineNumber,
            column: o.range.startColumn
          }, o.text)
        }
        this._versionId = e.versionId
      }, e.prototype._ensureLineStarts = function () {
        if (!this._lineStarts) {
          for (var e = this._eol.length, t = this._lines.length,
              i = new Uint32Array(t), o = 0; o < t;
              o++) {
            i[o] = this._lines[o].length + e;
          }
          this._lineStarts = new n.PrefixSumComputer(i)
        }
      }, e.prototype._setLineText = function (e, t) {
        this._lines[e] = t, this._lineStarts && this._lineStarts.changeValue(e,
            this._lines[e].length + this._eol.length)
      }, e.prototype._acceptDeleteRange = function (e) {
        if (e.startLineNumber !== e.endLineNumber) {
          this._setLineText(
              e.startLineNumber - 1,
              this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1)
              + this._lines[e.endLineNumber - 1].substring(
                  e.endColumn - 1)), this._lines.splice(e.startLineNumber,
              e.endLineNumber - e.startLineNumber), this._lineStarts
          && this._lineStarts.removeValues(e.startLineNumber,
              e.endLineNumber - e.startLineNumber);
        } else {
          if (e.startColumn === e.endColumn) {
            return;
          }
          this._setLineText(e.startLineNumber - 1,
              this._lines[e.startLineNumber - 1].substring(0, e.startColumn - 1)
              + this._lines[e.startLineNumber - 1].substring(e.endColumn - 1))
        }
      }, e.prototype._acceptInsertText = function (e, t) {
        if (0 !== t.length) {
          var n = t.split(/\r\n|\r|\n/);
          if (1 !== n.length) {
            n[n.length - 1] += this._lines[e.lineNumber - 1].substring(
                e.column - 1), this._setLineText(e.lineNumber - 1,
                this._lines[e.lineNumber - 1].substring(0, e.column - 1)
                + n[0]);
            for (var i = new Uint32Array(n.length - 1), o = 1; o < n.length;
                o++) {
              this._lines.splice(e.lineNumber + o - 1, 0, n[o]), i[o
              - 1] = n[o].length + this._eol.length;
            }
            this._lineStarts && this._lineStarts.insertValues(e.lineNumber, i)
          } else {
            this._setLineText(e.lineNumber - 1,
                this._lines[e.lineNumber - 1].substring(0, e.column - 1) + n[0]
                + this._lines[e.lineNumber - 1].substring(e.column - 1))
          }
        }
      }, e
    }();
    t.MirrorModel = i
  }),define(d[226], h([1, 0, 24, 7, 2, 457, 139, 12, 225, 536, 546, 95, 152]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var p = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), Object.defineProperty(t.prototype, "uri", {
            get: function () {
              return this._uri
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "version", {
            get: function () {
              return this._versionId
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "eol", {
            get: function () {
              return this._eol
            }, enumerable: !0, configurable: !0
          }), t.prototype.getValue = function () {
            return this.getText()
          }, t.prototype.getLinesContent = function () {
            return this._lines.slice(0)
          }, t.prototype.getLineCount = function () {
            return this._lines.length
          }, t.prototype.getLineContent = function (e) {
            return this._lines[e - 1]
          }, t.prototype.getWordAtPosition = function (e, t) {
            var n = d.getWordAtText(e.column, d.ensureValidWordDefinition(t),
                this._lines[e.lineNumber - 1], 0);
            return n ? new o.Range(e.lineNumber, n.startColumn, e.lineNumber,
                n.endColumn) : null
          }, t.prototype.getWordUntilPosition = function (e, t) {
            var n = this.getWordAtPosition(e, t);
            return n ? {
              word: this._lines[e.lineNumber - 1].substring(n.startColumn - 1,
                  e.column - 1),
              startColumn: n.startColumn,
              endColumn: e.column
            } : {word: "", startColumn: e.column, endColumn: e.column}
          }, t.prototype._getAllWords = function (e) {
            var t = this, n = [];
            return this._lines.forEach(function (i) {
              t._wordenize(i, e).forEach(function (e) {
                n.push(i.substring(e.start, e.end))
              })
            }), n
          }, t.prototype.getAllUniqueWords = function (e, t) {
            var n = !1, i = Object.create(null);
            return this._getAllWords(e).filter(function (e) {
              return t && !n && t === e ? (n = !0, !1) : !i[e]
                  && (i[e] = !0, !0)
            })
          }, t.prototype._wordenize = function (e, t) {
            var n, i = [];
            for (t.lastIndex = 0; (n = t.exec(e)) && 0 !== n[0].length;) {
              i.push(
                  {start: n.index, end: n.index + n[0].length});
            }
            return i
          }, t.prototype.getValueInRange = function (e) {
            if ((e = this._validateRange(e)).startLineNumber
                === e.endLineNumber) {
              return this._lines[e.startLineNumber
              - 1].substring(e.startColumn - 1, e.endColumn - 1);
            }
            var t = this._eol, n = e.startLineNumber - 1,
                i = e.endLineNumber - 1, o = [];
            o.push(this._lines[n].substring(e.startColumn - 1));
            for (var r = n + 1; r < i; r++) {
              o.push(this._lines[r]);
            }
            return o.push(this._lines[i].substring(0, e.endColumn - 1)), o.join(
                t)
          }, t.prototype.offsetAt = function (e) {
            return e = this._validatePosition(
                e), this._ensureLineStarts(), this._lineStarts.getAccumulatedValue(
                e.lineNumber - 2) + (e.column - 1)
          }, t.prototype.positionAt = function (e) {
            e = Math.floor(e), e = Math.max(0, e), this._ensureLineStarts();
            var t = this._lineStarts.getIndexOf(e),
                n = this._lines[t.index].length;
            return {
              lineNumber: 1 + t.index,
              column: 1 + Math.min(t.remainder, n)
            }
          }, t.prototype._validateRange = function (e) {
            var t = this._validatePosition(
                    {lineNumber: e.startLineNumber, column: e.startColumn}),
                n = this._validatePosition(
                    {lineNumber: e.endLineNumber, column: e.endColumn});
            return t.lineNumber !== e.startLineNumber || t.column
            !== e.startColumn || n.lineNumber !== e.endLineNumber || n.column
            !== e.endColumn ? {
              startLineNumber: t.lineNumber,
              startColumn: t.column,
              endLineNumber: n.lineNumber,
              endColumn: n.column
            } : e
          }, t.prototype._validatePosition = function (e) {
            if (!a.Position.isIPosition(e)) {
              throw new Error("bad position");
            }
            var t = e.lineNumber, n = e.column, i = !1;
            if (t < 1) {
              t = 1, n = 1, i = !0;
            } else if (t
                > this._lines.length) {
              t = this._lines.length, n = this._lines[t
              - 1].length + 1, i = !0;
            } else {
              var o = this._lines[t - 1].length + 1;
              n < 1 ? (n = 1, i = !0) : n > o && (n = o, i = !0)
            }
            return i ? {lineNumber: t, column: n} : e
          }, t
        }(u.MirrorModel), g = function () {
          function e() {
            this._foreignModule = null
          }

          return e.prototype.computeDiff = function (e, t, n) {
            var o = this._getModel(e), s = this._getModel(t);
            if (!o || !s) {
              return null;
            }
            var a = o.getLinesContent(), u = s.getLinesContent(),
                l = new r.DiffComputer(a, u, {
                  shouldPostProcessCharChanges: !0,
                  shouldIgnoreTrimWhitespace: n,
                  shouldConsiderTrimWhitespaceInEmptyCase: !0,
                  shouldMakePrettyDiff: !0
                });
            return i.TPromise.as(l.computeDiff())
          }, e.prototype.computeDirtyDiff = function (e, t, n) {
            var o = this._getModel(e), s = this._getModel(t);
            if (!o || !s) {
              return null;
            }
            var a = o.getLinesContent(), u = s.getLinesContent(),
                l = new r.DiffComputer(a, u, {
                  shouldPostProcessCharChanges: !1,
                  shouldIgnoreTrimWhitespace: n,
                  shouldConsiderTrimWhitespaceInEmptyCase: !1,
                  shouldMakePrettyDiff: !0
                });
            return i.TPromise.as(l.computeDiff())
          }, e.prototype.computeMoreMinimalEdits = function (t, n, r) {
            var a = this._getModel(t);
            if (!a) {
              return i.TPromise.as(n);
            }
            for (var u, l = [], c = 0, d = n; c < d.length; c++) {
              var h = d[c], p = h.range, f = h.text, g = h.eol;
              if ("number" == typeof g && (u = g), p) {
                var m = a.getValueInRange(p);
                if (f = f.replace(/\r\n|\n|\r/g, a.eol), m !== f) {
                  if (Math.max(
                      f.length, m.length) > e._diffLimit) {
                    l.push(
                        {range: p, text: f});
                  } else {
                    for (var v = s.stringDiff(m, f,
                            !1), _ = a.offsetAt(o.Range.lift(p).getStartPosition()),
                        y = 0, C = v; y < C.length; y++) {
                      var b = C[y], w = a.positionAt(_ + b.originalStart),
                          S = a.positionAt(
                              _ + b.originalStart + b.originalLength),
                          E = {
                            text: f.substr(b.modifiedStart, b.modifiedLength),
                            range: {
                              startLineNumber: w.lineNumber,
                              startColumn: w.column,
                              endLineNumber: S.lineNumber,
                              endColumn: S.column
                            }
                          };
                      a.getValueInRange(E.range) !== E.text && l.push(E)
                    }
                  }
                }
              }
            }
            return "number" == typeof u && l.push(
                {eol: u, text: void 0, range: void 0}), i.TPromise.as(l)
          }, e.prototype.computeLinks = function (e) {
            var t = this._getModel(e);
            return t ? i.TPromise.as(l.computeLinks(t)) : null
          }, e.prototype.textualSuggest = function (e, t, n, o) {
            var r = this._getModel(e);
            if (r) {
              for (var s = [], a = new RegExp(n, o),
                  u = r.getWordUntilPosition(t, a).word, l = 0,
                  c = r.getAllUniqueWords(a); l < c.length; l++) {
                var d = c[l];
                d !== u && isNaN(Number(d)) && s.push({
                  type: "text",
                  label: d,
                  insertText: d,
                  noAutoAccept: !0,
                  overwriteBefore: u.length
                })
              }
              return i.TPromise.as({suggestions: s})
            }
          }, e.prototype.navigateValueSet = function (e, t, n, o, r) {
            var s = this._getModel(e);
            if (!s) {
              return null;
            }
            var a = new RegExp(o, r);
            t.startColumn === t.endColumn && (t = {
              startLineNumber: t.startLineNumber,
              startColumn: t.startColumn,
              endLineNumber: t.endLineNumber,
              endColumn: t.endColumn + 1
            });
            var u = s.getValueInRange(t), l = s.getWordAtPosition(
                    {lineNumber: t.startLineNumber, column: t.startColumn}, a),
                d = null;
            null !== l && (d = s.getValueInRange(l));
            var h = c.BasicInplaceReplace.INSTANCE.navigateValueSet(t, u, l, d,
                n);
            return i.TPromise.as(h)
          }, e.prototype.loadForeignModule = function (e, t) {
            var n = this;
            return new i.TPromise(function (i, o) {
              self.require([e], function (e) {
                var o = {
                  getMirrorModels: function () {
                    return n._getModels()
                  }
                };
                n._foreignModule = e.create(o, t);
                var r = [];
                for (var s in n._foreignModule) {
                  "function"
                  == typeof n._foreignModule[s] && r.push(s);
                }
                i(r)
              }, o)
            })
          }, e.prototype.fmr = function (e, t) {
            if (!this._foreignModule || "function"
                != typeof this._foreignModule[e]) {
              return i.TPromise.wrapError(
                  new Error("Missing requestHandler or method: " + e));
            }
            try {
              return i.TPromise.as(
                  this._foreignModule[e].apply(this._foreignModule, t))
            } catch (e) {
              return i.TPromise.wrapError(e)
            }
          }, e._diffLimit = 1e4, e
        }();
        t.BaseEditorSimpleWorker = g;
        var m = function (e) {
          function t() {
            var t = e.call(this) || this;
            return t._models = Object.create(null), t
          }

          return f(t, e), t.prototype.dispose = function () {
            this._models = Object.create(null)
          }, t.prototype._getModel = function (e) {
            return this._models[e]
          }, t.prototype._getModels = function () {
            var e = this, t = [];
            return Object.keys(this._models).forEach(function (n) {
              return t.push(e._models[n])
            }), t
          }, t.prototype.acceptNewModel = function (e) {
            this._models[e.url] = new p(n.default.parse(e.url), e.lines, e.EOL,
                e.versionId)
          }, t.prototype.acceptModelChanged = function (e, t) {
            this._models[e] && this._models[e].onEvents(t)
          }, t.prototype.acceptRemovedModel = function (e) {
            this._models[e] && delete this._models[e]
          }, t
        }(g);
        t.EditorSimpleWorkerImpl = m, t.create = function () {
          return new m
        };
        var v = self;
        "function" == typeof v.importScripts
        && (v.monaco = h.createMonacoBaseAPI())
      }),define(d[82], h([1, 0, 57, 3]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function (e) {
      function t() {
        var t = e.call(this) || this;
        return t._shouldRender = !0, t
      }

      return f(t, e), t.prototype.shouldRender = function () {
        return this._shouldRender
      }, t.prototype.forceShouldRender = function () {
        this._shouldRender = !0
      }, t.prototype.setShouldRender = function () {
        this._shouldRender = !0
      }, t.prototype.onDidRender = function () {
        this._shouldRender = !1
      }, t.prototype.onConfigurationChanged = function (e) {
        return !1
      }, t.prototype.onCursorStateChanged = function (e) {
        return !1
      }, t.prototype.onDecorationsChanged = function (e) {
        return !1
      }, t.prototype.onFlushed = function (e) {
        return !1
      }, t.prototype.onFocusChanged = function (e) {
        return !1
      }, t.prototype.onLineMappingChanged = function (e) {
        return !1
      }, t.prototype.onLinesChanged = function (e) {
        return !1
      }, t.prototype.onLinesDeleted = function (e) {
        return !1
      }, t.prototype.onLinesInserted = function (e) {
        return !1
      }, t.prototype.onRevealRangeRequest = function (e) {
        return !1
      }, t.prototype.onScrollChanged = function (e) {
        return !1
      }, t.prototype.onTokensChanged = function (e) {
        return !1
      }, t.prototype.onTokensColorsChanged = function (e) {
        return !1
      }, t.prototype.onZonesChanged = function (e) {
        return !1
      }, t.prototype.onThemeChanged = function (e) {
        return !1
      }, t.prototype.handleEvents = function (e) {
        for (var t = !1, n = 0, i = e.length; n < i; n++) {
          var o = e[n];
          switch (o.type) {
            case 1:
              this.onConfigurationChanged(o) && (t = !0);
              break;
            case 2:
              this.onCursorStateChanged(o) && (t = !0);
              break;
            case 3:
              this.onDecorationsChanged(o) && (t = !0);
              break;
            case 4:
              this.onFlushed(o) && (t = !0);
              break;
            case 5:
              this.onFocusChanged(o) && (t = !0);
              break;
            case 6:
              this.onLineMappingChanged(o) && (t = !0);
              break;
            case 7:
              this.onLinesChanged(o) && (t = !0);
              break;
            case 8:
              this.onLinesDeleted(o) && (t = !0);
              break;
            case 9:
              this.onLinesInserted(o) && (t = !0);
              break;
            case 10:
              this.onRevealRangeRequest(o) && (t = !0);
              break;
            case 11:
              this.onScrollChanged(o) && (t = !0);
              break;
            case 12:
              this.onTokensChanged(o) && (t = !0);
              break;
            case 13:
              this.onTokensColorsChanged(o) && (t = !0);
              break;
            case 14:
              this.onZonesChanged(o) && (t = !0);
              break;
            case 15:
              this.onThemeChanged(o) && (t = !0);
              break;
            default:
              console.info("View received unknown event: "), console.info(o)
          }
        }
        t && (this._shouldRender = !0)
      }, t
    }(i.Disposable);
    t.ViewEventHandler = o
  }),define(d[67], h([1, 0, 82]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function (e) {
      function t() {
        return null !== e && e.apply(this, arguments) || this
      }

      return f(t, e), t
    }(n.ViewEventHandler);
    t.DynamicViewOverlay = i
  }),define(d[35], h([1, 0, 82, 27]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n._context = t, n._context.addEventHandler(n), n
      }

      return f(t, e), t.prototype.dispose = function () {
        this._context.removeEventHandler(
            this), this._context = null, e.prototype.dispose.call(this)
      }, t
    }(n.ViewEventHandler);
    t.ViewPart = o;
    !function (e) {
      e[e.None = 0] = "None", e[e.ContentWidgets = 1] = "ContentWidgets", e[e.OverflowingContentWidgets = 2] = "OverflowingContentWidgets", e[e.OverflowGuard = 3] = "OverflowGuard", e[e.OverlayWidgets = 4] = "OverlayWidgets", e[e.ScrollableElement = 5] = "ScrollableElement", e[e.TextArea = 6] = "TextArea", e[e.ViewLines = 7] = "ViewLines", e[e.Minimap = 8] = "Minimap"
    }(t.PartFingerprint || (t.PartFingerprint = {}));
    var r = function () {
      function e() {
      }

      return e.write = function (e, t) {
        i.FastDomNode, e.setAttribute("data-mprt", String(t))
      }, e.read = function (e) {
        var t = e.getAttribute("data-mprt");
        return null === t ? 0 : parseInt(t, 10)
      }, e.collect = function (e, t) {
        for (var n = [], i = 0; e && e !== document.body && e !== t;) {
          e.nodeType
          === e.ELEMENT_NODE && (n[i++] = this.read(e)), e = e.parentElement;
        }
        for (var o = new Uint8Array(i), r = 0; r < i; r++) {
          o[r] = n[i - r - 1];
        }
        return o
      }, e
    }();
    t.PartFingerprints = r
  }),define(d[230], h([1, 0, 4, 27, 25, 35]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      return function (e, t) {
        this.top = e, this.left = t
      }
    }(), a = function (e) {
      function t(t, n) {
        var o = e.call(this, t) || this;
        return o._viewDomNode = n, o._widgets = {}, o.domNode = i.createFastDomNode(
            document.createElement("div")), r.PartFingerprints.write(o.domNode,
            1), o.domNode.setClassName("contentWidgets"), o.domNode.setPosition(
            "absolute"), o.domNode.setTop(
            0), o.overflowingContentWidgetsDomNode = i.createFastDomNode(
            document.createElement("div")), r.PartFingerprints.write(
            o.overflowingContentWidgetsDomNode,
            2), o.overflowingContentWidgetsDomNode.setClassName(
            "overflowingContentWidgets"), o
      }

      return f(t, e), t.prototype.dispose = function () {
        e.prototype.dispose.call(
            this), this._widgets = null, this.domNode = null
      }, t.prototype.onConfigurationChanged = function (e) {
        for (var t = Object.keys(this._widgets), n = 0, i = t.length; n < i;
            n++) {
          var o = t[n];
          this._widgets[o].onConfigurationChanged(e)
        }
        return !0
      }, t.prototype.onDecorationsChanged = function (e) {
        return !0
      }, t.prototype.onFlushed = function (e) {
        return !0
      }, t.prototype.onLinesChanged = function (e) {
        return !0
      }, t.prototype.onLinesDeleted = function (e) {
        return !0
      }, t.prototype.onLinesInserted = function (e) {
        return !0
      }, t.prototype.onScrollChanged = function (e) {
        return !0
      }, t.prototype.onZonesChanged = function (e) {
        return !0
      }, t.prototype.addWidget = function (e) {
        var t = new u(this._context, this._viewDomNode, e);
        this._widgets[t.id] = t, t.allowEditorOverflow
            ? this.overflowingContentWidgetsDomNode.appendChild(t.domNode)
            : this.domNode.appendChild(t.domNode), this.setShouldRender()
      }, t.prototype.setWidgetPosition = function (e, t, n) {
        this._widgets[e.getId()].setPosition(t, n), this.setShouldRender()
      }, t.prototype.removeWidget = function (e) {
        var t = e.getId();
        if (this._widgets.hasOwnProperty(t)) {
          var n = this._widgets[t];
          delete this._widgets[t];
          var i = n.domNode.domNode;
          i.parentNode.removeChild(i), i.removeAttribute(
              "monaco-visible-content-widget"), this.setShouldRender()
        }
      }, t.prototype.shouldSuppressMouseDownOnWidget = function (e) {
        return !!this._widgets.hasOwnProperty(e)
            && this._widgets[e].suppressMouseDown
      }, t.prototype.prepareRender = function (e) {
        for (var t = Object.keys(this._widgets), n = 0, i = t.length; n < i;
            n++) {
          var o = t[n];
          this._widgets[o].prepareRender(e)
        }
      }, t.prototype.render = function (e) {
        for (var t = Object.keys(this._widgets), n = 0, i = t.length; n < i;
            n++) {
          var o = t[n];
          this._widgets[o].render(e)
        }
      }, t
    }(r.ViewPart);
    t.ViewContentWidgets = a;
    var u = function () {
      function e(e, t, n) {
        this._context = e, this._viewDomNode = t, this._actual = n, this.domNode = i.createFastDomNode(
            this._actual.getDomNode()), this.id = this._actual.getId(), this.allowEditorOverflow = this._actual.allowEditorOverflow
            || !1, this.suppressMouseDown = this._actual.suppressMouseDown
            || !1, this._fixedOverflowWidgets = this._context.configuration.editor.viewInfo.fixedOverflowWidgets, this._contentWidth = this._context.configuration.editor.layoutInfo.contentWidth, this._contentLeft = this._context.configuration.editor.layoutInfo.contentLeft, this._lineHeight = this._context.configuration.editor.lineHeight, this._position = null, this._preference = null, this._isVisible = !1, this._renderData = null, this.domNode.setPosition(
            this._fixedOverflowWidgets && this.allowEditorOverflow ? "fixed"
                : "absolute"), this._updateMaxWidth(), this.domNode.setVisibility(
            "hidden"), this.domNode.setAttribute("widgetId", this.id)
      }

      return e.prototype.onConfigurationChanged = function (e) {
        e.lineHeight
        && (this._lineHeight = this._context.configuration.editor.lineHeight), e.layoutInfo
        && (this._contentLeft = this._context.configuration.editor.layoutInfo.contentLeft, this._contentWidth = this._context.configuration.editor.layoutInfo.contentWidth, this._updateMaxWidth())
      }, e.prototype._updateMaxWidth = function () {
        var e = this.allowEditorOverflow ? window.innerWidth
            || document.documentElement.clientWidth || document.body.clientWidth
            : this._contentWidth;
        this.domNode.setMaxWidth(e)
      }, e.prototype.setPosition = function (e, t) {
        this._position = e, this._preference = t
      }, e.prototype._layoutBoxInViewport = function (e, t, n, i) {
        var o = e.top, r = o, s = e.top + this._lineHeight, a = o - n,
            u = r >= n, l = s, c = i.viewportHeight - s >= n, d = e.left;
        return d + t > i.scrollLeft + i.viewportWidth && (d = i.scrollLeft
            + i.viewportWidth - t), d < i.scrollLeft && (d = i.scrollLeft), {
          aboveTop: a,
          fitsAbove: u,
          belowTop: l,
          fitsBelow: c,
          left: d
        }
      }, e.prototype._layoutBoxInPage = function (e, t, i, o) {
        var r = e.left - o.scrollLeft;
        if (r + t < 0 || r > this._contentWidth) {
          return null;
        }
        var s = e.top - i, a = e.top + this._lineHeight,
            u = r + this._contentLeft,
            l = n.getDomNodePagePosition(this._viewDomNode.domNode),
            c = l.top + s - n.StandardWindow.scrollY,
            d = l.top + a - n.StandardWindow.scrollY,
            h = l.left + u - n.StandardWindow.scrollX,
            p = window.innerWidth || document.documentElement.clientWidth
                || document.body.clientWidth, f = c >= 22,
            g = d + i <= (window.innerHeight
                || document.documentElement.clientHeight
                || document.body.clientHeight) - 22;
        if (h + t + 20 > p && (h -= m = h - (p - t - 20), u -= m), h < 0) {
          var m = h;
          h -= m, u -= m
        }
        return this._fixedOverflowWidgets && (s = c, a = d, u = h), {
          aboveTop: s,
          fitsAbove: f,
          belowTop: a,
          fitsBelow: g,
          left: u
        }
      }, e.prototype._prepareRenderWidgetAtExactPositionOverflowing = function (e) {
        return new s(e.top, e.left + this._contentLeft)
      }, e.prototype._getTopLeft = function (e, t) {
        var n = e.visibleRangeForPosition(t);
        if (!n) {
          return null;
        }
        var i = e.getVerticalOffsetForLineNumber(t.lineNumber) - e.scrollTop;
        return new s(i, n.left)
      }, e.prototype._prepareRenderWidget = function (e) {
        var t = this;
        if (!this._position || !this._preference) {
          return null;
        }
        var n = this._context.model.validateModelPosition(this._position);
        if (!this._context.model.coordinatesConverter.modelPositionIsVisible(
            n)) {
          return null;
        }
        for (var i = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(
            n), r = null, a = function () {
          if (!r) {
            var n = t._getTopLeft(e, i);
            if (n) {
              var o = t.domNode.domNode, s = o.clientWidth, a = o.clientHeight;
              r = t.allowEditorOverflow ? t._layoutBoxInPage(n, s, a, e)
                  : t._layoutBoxInViewport(n, s, a, e)
            }
          }
        }, u = 1; u <= 2; u++) {
          for (var l = 0; l < this._preference.length;
              l++) {
            var c = this._preference[l];
            if (c === o.ContentWidgetPositionPreference.ABOVE) {
              if (a(), !r) {
                return null;
              }
              if (2 === u || r.fitsAbove) {
                return new s(r.aboveTop, r.left)
              }
            } else {
              if (c !== o.ContentWidgetPositionPreference.BELOW) {
                var d = this._getTopLeft(e, i);
                return d ? this.allowEditorOverflow
                        ? this._prepareRenderWidgetAtExactPositionOverflowing(d) : d
                    : null
              }
              if (a(), !r) {
                return null;
              }
              if (2 === u || r.fitsBelow) {
                return new s(r.belowTop, r.left)
              }
            }
          }
        }
        return null
      }, e.prototype.prepareRender = function (e) {
        this._renderData = this._prepareRenderWidget(e)
      }, e.prototype.render = function (e) {
        this._renderData ? (this.allowEditorOverflow ? (this.domNode.setTop(
                    this._renderData.top), this.domNode.setLeft(this._renderData.left))
                : (this.domNode.setTop(this._renderData.top + e.scrollTop
                    - e.bigNumbersDelta), this.domNode.setLeft(
                    this._renderData.left)), this._isVisible
            || (this.domNode.setVisibility("inherit"), this.domNode.setAttribute(
                "monaco-visible-content-widget", "true"), this._isVisible = !0))
            : this._isVisible && (this.domNode.removeAttribute(
            "monaco-visible-content-widget"), this._isVisible = !1, this.domNode.setVisibility(
            "hidden"))
      }, e
    }()
  }),define(d[231], h([1, 0, 67, 2, 78, 278]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n._context = t, n._lineHeight = n._context.configuration.editor.lineHeight, n._typicalHalfwidthCharacterWidth = n._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth, n._renderResult = null, n._context.addEventHandler(
            n), n
      }

      return f(t, e), t.prototype.dispose = function () {
        this._context.removeEventHandler(
            this), this._context = null, this._renderResult = null, e.prototype.dispose.call(
            this)
      }, t.prototype.onConfigurationChanged = function (e) {
        return e.lineHeight
        && (this._lineHeight = this._context.configuration.editor.lineHeight), e.fontInfo
        && (this._typicalHalfwidthCharacterWidth = this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth), !0
      }, t.prototype.onDecorationsChanged = function (e) {
        return !0
      }, t.prototype.onFlushed = function (e) {
        return !0
      }, t.prototype.onLinesChanged = function (e) {
        return !0
      }, t.prototype.onLinesDeleted = function (e) {
        return !0
      }, t.prototype.onLinesInserted = function (e) {
        return !0
      }, t.prototype.onScrollChanged = function (e) {
        return e.scrollTopChanged || e.scrollWidthChanged
      }, t.prototype.onZonesChanged = function (e) {
        return !0
      }, t.prototype.prepareRender = function (e) {
        for (var t = e.getDecorationsInViewport(), n = [], o = 0, r = 0,
            s = t.length; r < s; r++) {
          var a = t[r];
          a.source.options.className && (n[o++] = a)
        }
        n = n.sort(function (e, t) {
          var n = e.source.options.className, o = t.source.options.className;
          return n < o ? -1 : n > o ? 1 : i.Range.compareRangesUsingStarts(
              e.range, t.range)
        });
        for (var u = e.visibleRange.startLineNumber,
            l = e.visibleRange.endLineNumber, c = [], d = u; d <= l; d++) {
          c[d
          - u] = "";
        }
        this._renderWholeLineDecorations(e, n,
            c), this._renderNormalDecorations(e, n, c), this._renderResult = c
      }, t.prototype._renderWholeLineDecorations = function (e, t, n) {
        for (var i = String(this._lineHeight),
            o = e.visibleRange.startLineNumber,
            r = e.visibleRange.endLineNumber, s = 0, a = t.length; s < a; s++) {
          var u = t[s];
          if (u.source.options.isWholeLine) {
            for (var l = '<div class="cdr '
                    + u.source.options.className
                    + '" style="left:0;width:100%;height:' + i + 'px;"></div>',
                c = Math.max(u.range.startLineNumber, o),
                d = Math.min(u.range.endLineNumber, r), h = c; h <= d; h++) {
              n[h
              - o] += l
            }
          }
        }
      }, t.prototype._renderNormalDecorations = function (e, t, n) {
        for (var r = String(this._lineHeight),
            s = e.visibleRange.startLineNumber, a = 0, u = t.length; a < u;
            a++) {
          var l = t[a];
          if (!l.source.options.isWholeLine) {
            var c = l.source.options.className,
                d = l.source.options.showIfCollapsed, h = l.range;
            d && 1 === h.endColumn && h.endLineNumber !== h.startLineNumber
            && (h = new i.Range(h.startLineNumber, h.startColumn,
                h.endLineNumber - 1,
                this._context.model.getLineMaxColumn(h.endLineNumber - 1)));
            var p = e.linesVisibleRangesForRange(h, "findMatch" === c);
            if (p) {
              for (var f = 0, g = p.length; f < g; f++) {
                var m = p[f], v = m.lineNumber - s;
                if (d && 1 === m.ranges.length) {
                  var _ = m.ranges[0];
                  0 === _.width && (m.ranges[0] = new o.HorizontalRange(_.left,
                      this._typicalHalfwidthCharacterWidth))
                }
                for (var y = 0, C = m.ranges.length; y < C; y++) {
                  var b = m.ranges[y],
                      w = '<div class="cdr ' + c + '" style="left:' + String(
                              b.left) + "px;width:" + String(b.width) + "px;height:"
                          + r + 'px;"></div>';
                  n[v] += w
                }
              }
            }
          }
        }
      }, t.prototype.render = function (e, t) {
        if (!this._renderResult) {
          return "";
        }
        var n = t - e;
        if (n < 0 || n >= this._renderResult.length) {
          throw new Error(
              "Unexpected render request");
        }
        return this._renderResult[n]
      }, t
    }(n.DynamicViewOverlay);
    t.DecorationsOverlay = r
  }),define(d[113], h([1, 0, 67, 279]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      return function (e, t, n) {
        this.startLineNumber = +e, this.endLineNumber = +t, this.className = String(
            n)
      }
    }();
    t.DecorationToRender = i;
    var o = function (e) {
      function t() {
        return null !== e && e.apply(this, arguments) || this
      }

      return f(t, e), t.prototype._render = function (e, t, n) {
        for (var i = [], o = e; o <= t; o++) {
          i[o - e] = [];
        }
        if (0 === n.length) {
          return i;
        }
        n.sort(function (e, t) {
          return e.className === t.className ? e.startLineNumber
          === t.startLineNumber ? e.endLineNumber - t.endLineNumber
              : e.startLineNumber - t.startLineNumber : e.className
          < t.className ? -1 : 1
        });
        for (var r = null, s = 0, a = 0, u = n.length; a < u; a++) {
          var l = n[a], c = l.className, d = Math.max(l.startLineNumber, e) - e,
              h = Math.min(l.endLineNumber, t) - e;
          r === c ? (d = Math.max(s + 1, d), s = Math.max(s, h))
              : (r = c, s = h);
          for (var p = d; p <= s; p++) {
            i[p].push(r)
          }
        }
        return i
      }, t
    }(n.DynamicViewOverlay);
    t.DedupOverlay = o;
    var r = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n._context = t, n._lineHeight = n._context.configuration.editor.lineHeight, n._glyphMargin = n._context.configuration.editor.viewInfo.glyphMargin, n._glyphMarginLeft = n._context.configuration.editor.layoutInfo.glyphMarginLeft, n._glyphMarginWidth = n._context.configuration.editor.layoutInfo.glyphMarginWidth, n._renderResult = null, n._context.addEventHandler(
            n), n
      }

      return f(t, e), t.prototype.dispose = function () {
        this._context.removeEventHandler(
            this), this._context = null, this._renderResult = null, e.prototype.dispose.call(
            this)
      }, t.prototype.onConfigurationChanged = function (e) {
        return e.lineHeight
        && (this._lineHeight = this._context.configuration.editor.lineHeight), e.viewInfo
        && (this._glyphMargin = this._context.configuration.editor.viewInfo.glyphMargin), e.layoutInfo
        && (this._glyphMarginLeft = this._context.configuration.editor.layoutInfo.glyphMarginLeft, this._glyphMarginWidth = this._context.configuration.editor.layoutInfo.glyphMarginWidth), !0
      }, t.prototype.onDecorationsChanged = function (e) {
        return !0
      }, t.prototype.onFlushed = function (e) {
        return !0
      }, t.prototype.onLinesChanged = function (e) {
        return !0
      }, t.prototype.onLinesDeleted = function (e) {
        return !0
      }, t.prototype.onLinesInserted = function (e) {
        return !0
      }, t.prototype.onScrollChanged = function (e) {
        return e.scrollTopChanged
      }, t.prototype.onZonesChanged = function (e) {
        return !0
      }, t.prototype._getDecorations = function (e) {
        for (var t = e.getDecorationsInViewport(), n = [], o = 0, r = t.length;
            o < r; o++) {
          var s = t[o], a = s.source.options.glyphMarginClassName;
          a && n.push(new i(s.range.startLineNumber, s.range.endLineNumber, a))
        }
        return n
      }, t.prototype.prepareRender = function (e) {
        if (this._glyphMargin) {
          for (var t = e.visibleRange.startLineNumber,
              n = e.visibleRange.endLineNumber,
              i = this._render(t, n, this._getDecorations(e)),
              o = this._lineHeight.toString(),
              r = '" style="left:' + this._glyphMarginLeft.toString()
                  + "px;width:" + this._glyphMarginWidth.toString()
                  + "px;height:" + o + 'px;"></div>', s = [], a = t; a <= n;
              a++) {
            var u = a - t, l = i[u];
            0 === l.length ? s[u] = "" : s[u] = '<div class="cgmr ' + l.join(
                " ") + r
          }
          this._renderResult = s
        } else {
          this._renderResult = null
        }
      }, t.prototype.render = function (e, t) {
        if (!this._renderResult) {
          return "";
        }
        var n = t - e;
        if (n < 0 || n >= this._renderResult.length) {
          throw new Error(
              "Unexpected render request");
        }
        return this._renderResult[n]
      }, t
    }(o);
    t.GlyphMarginOverlay = r
  }),define(d[233], h([1, 0, 113, 288]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n._context = t, n._decorationsLeft = n._context.configuration.editor.layoutInfo.decorationsLeft, n._decorationsWidth = n._context.configuration.editor.layoutInfo.decorationsWidth, n._renderResult = null, n._context.addEventHandler(
            n), n
      }

      return f(t, e), t.prototype.dispose = function () {
        this._context.removeEventHandler(
            this), this._context = null, this._renderResult = null, e.prototype.dispose.call(
            this)
      }, t.prototype.onConfigurationChanged = function (e) {
        return e.layoutInfo
        && (this._decorationsLeft = this._context.configuration.editor.layoutInfo.decorationsLeft, this._decorationsWidth = this._context.configuration.editor.layoutInfo.decorationsWidth), !0
      }, t.prototype.onDecorationsChanged = function (e) {
        return !0
      }, t.prototype.onFlushed = function (e) {
        return !0
      }, t.prototype.onLinesChanged = function (e) {
        return !0
      }, t.prototype.onLinesDeleted = function (e) {
        return !0
      }, t.prototype.onLinesInserted = function (e) {
        return !0
      }, t.prototype.onScrollChanged = function (e) {
        return e.scrollTopChanged
      }, t.prototype.onZonesChanged = function (e) {
        return !0
      }, t.prototype._getDecorations = function (e) {
        for (var t = e.getDecorationsInViewport(), i = [], o = 0, r = t.length;
            o < r; o++) {
          var s = t[o], a = s.source.options.linesDecorationsClassName;
          a && i.push(new n.DecorationToRender(s.range.startLineNumber,
              s.range.endLineNumber, a))
        }
        return i
      }, t.prototype.prepareRender = function (e) {
        for (var t = e.visibleRange.startLineNumber,
            n = e.visibleRange.endLineNumber,
            i = this._render(t, n, this._getDecorations(e)),
            o = '" style="left:' + this._decorationsLeft.toString()
                + "px;width:" + this._decorationsWidth.toString()
                + 'px;"></div>', r = [], s = t; s <= n; s++) {
          for (var a = s - t, u = i[a], l = "", c = 0, d = u.length; c < d;
              c++) {
            l += '<div class="cldr ' + u[c] + o;
          }
          r[a] = l
        }
        this._renderResult = r
      }, t.prototype.render = function (e, t) {
        return this._renderResult ? this._renderResult[t - e] : ""
      }, t
    }(n.DedupOverlay);
    t.LinesDecorationsOverlay = i
  }),define(d[182], h([1, 0, 27, 35]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function (e) {
      function t(t) {
        var n = e.call(this, t) || this;
        return n._canUseLayerHinting = n._context.configuration.editor.canUseLayerHinting, n._contentLeft = n._context.configuration.editor.layoutInfo.contentLeft, n._glyphMarginLeft = n._context.configuration.editor.layoutInfo.glyphMarginLeft, n._glyphMarginWidth = n._context.configuration.editor.layoutInfo.glyphMarginWidth, n._domNode = n._createDomNode(), n
      }

      return f(t, e), t.prototype.dispose = function () {
        e.prototype.dispose.call(this)
      }, t.prototype.getDomNode = function () {
        return this._domNode
      }, t.prototype._createDomNode = function () {
        var e = n.createFastDomNode(document.createElement("div"));
        return e.setClassName("margin"), e.setPosition(
            "absolute"), e.setAttribute("role", "presentation"), e.setAttribute(
            "aria-hidden",
            "true"), this._glyphMarginBackgroundDomNode = n.createFastDomNode(
            document.createElement(
                "div")), this._glyphMarginBackgroundDomNode.setClassName(
            t.CLASS_NAME), e.appendChild(this._glyphMarginBackgroundDomNode), e
      }, t.prototype.onConfigurationChanged = function (e) {
        return e.canUseLayerHinting
        && (this._canUseLayerHinting = this._context.configuration.editor.canUseLayerHinting), e.layoutInfo
        && (this._contentLeft = this._context.configuration.editor.layoutInfo.contentLeft, this._glyphMarginLeft = this._context.configuration.editor.layoutInfo.glyphMarginLeft, this._glyphMarginWidth = this._context.configuration.editor.layoutInfo.glyphMarginWidth), !0
      }, t.prototype.onScrollChanged = function (t) {
        return e.prototype.onScrollChanged.call(this, t) || t.scrollTopChanged
      }, t.prototype.prepareRender = function (e) {
      }, t.prototype.render = function (e) {
        this._domNode.setLayerHinting(this._canUseLayerHinting);
        var t = e.scrollTop - e.bigNumbersDelta;
        this._domNode.setTop(-t);
        var n = Math.min(e.scrollHeight, 1e6);
        this._domNode.setHeight(n), this._domNode.setWidth(
            this._contentLeft), this._glyphMarginBackgroundDomNode.setLeft(
            this._glyphMarginLeft), this._glyphMarginBackgroundDomNode.setWidth(
            this._glyphMarginWidth), this._glyphMarginBackgroundDomNode.setHeight(
            n)
      }, t.CLASS_NAME = "glyph-margin", t
    }(i.ViewPart);
    t.Margin = o
  }),define(d[235], h([1, 0, 113, 291]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n._context = t, n._renderResult = null, n._context.addEventHandler(
            n), n
      }

      return f(t, e), t.prototype.dispose = function () {
        this._context.removeEventHandler(
            this), this._context = null, this._renderResult = null, e.prototype.dispose.call(
            this)
      }, t.prototype.onConfigurationChanged = function (e) {
        return !0
      }, t.prototype.onDecorationsChanged = function (e) {
        return !0
      }, t.prototype.onFlushed = function (e) {
        return !0
      }, t.prototype.onLinesChanged = function (e) {
        return !0
      }, t.prototype.onLinesDeleted = function (e) {
        return !0
      }, t.prototype.onLinesInserted = function (e) {
        return !0
      }, t.prototype.onScrollChanged = function (e) {
        return e.scrollTopChanged
      }, t.prototype.onZonesChanged = function (e) {
        return !0
      }, t.prototype._getDecorations = function (e) {
        for (var t = e.getDecorationsInViewport(), i = [], o = 0, r = t.length;
            o < r; o++) {
          var s = t[o], a = s.source.options.marginClassName;
          a && i.push(new n.DecorationToRender(s.range.startLineNumber,
              s.range.endLineNumber, a))
        }
        return i
      }, t.prototype.prepareRender = function (e) {
        for (var t = e.visibleRange.startLineNumber,
            n = e.visibleRange.endLineNumber,
            i = this._render(t, n, this._getDecorations(e)), o = [], r = t;
            r <= n; r++) {
          for (var s = r - t, a = i[s], u = "", l = 0, c = a.length; l < c;
              l++) {
            u += '<div class="cmdr ' + a[l] + '" style=""></div>';
          }
          o[s] = u
        }
        this._renderResult = o
      }, t.prototype.render = function (e, t) {
        return this._renderResult ? this._renderResult[t - e] : ""
      }, t
    }(n.DedupOverlay);
    t.MarginViewLineDecorationsOverlay = i
  }),define(d[236], h([1, 0, 27, 25, 35, 296]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function (e) {
      function t(t) {
        var i = e.call(this, t) || this;
        return i._widgets = {}, i._verticalScrollbarWidth = i._context.configuration.editor.layoutInfo.verticalScrollbarWidth, i._minimapWidth = i._context.configuration.editor.layoutInfo.minimapWidth, i._horizontalScrollbarHeight = i._context.configuration.editor.layoutInfo.horizontalScrollbarHeight, i._editorHeight = i._context.configuration.editor.layoutInfo.height, i._editorWidth = i._context.configuration.editor.layoutInfo.width, i._domNode = n.createFastDomNode(
            document.createElement("div")), o.PartFingerprints.write(i._domNode,
            4), i._domNode.setClassName("overlayWidgets"), i
      }

      return f(t, e), t.prototype.dispose = function () {
        e.prototype.dispose.call(this), this._widgets = null
      }, t.prototype.getDomNode = function () {
        return this._domNode
      }, t.prototype.onConfigurationChanged = function (e) {
        return !!e.layoutInfo
            && (this._verticalScrollbarWidth = this._context.configuration.editor.layoutInfo.verticalScrollbarWidth, this._minimapWidth = this._context.configuration.editor.layoutInfo.minimapWidth, this._horizontalScrollbarHeight = this._context.configuration.editor.layoutInfo.horizontalScrollbarHeight, this._editorHeight = this._context.configuration.editor.layoutInfo.height, this._editorWidth = this._context.configuration.editor.layoutInfo.width, !0)
      }, t.prototype.addWidget = function (e) {
        var t = n.createFastDomNode(e.getDomNode());
        this._widgets[e.getId()] = {
          widget: e,
          preference: null,
          domNode: t
        }, t.setPosition("absolute"), t.setAttribute("widgetId",
            e.getId()), this._domNode.appendChild(t), this.setShouldRender()
      }, t.prototype.setWidgetPosition = function (e, t) {
        var n = this._widgets[e.getId()];
        return n.preference !== t
            && (n.preference = t, this.setShouldRender(), !0)
      }, t.prototype.removeWidget = function (e) {
        var t = e.getId();
        if (this._widgets.hasOwnProperty(t)) {
          var n = this._widgets[t].domNode.domNode;
          delete this._widgets[t], n.parentNode.removeChild(
              n), this.setShouldRender()
        }
      }, t.prototype._renderWidget = function (e) {
        var t = e.domNode;
        if (null !== e.preference) {
          if (e.preference
              === i.OverlayWidgetPositionPreference.TOP_RIGHT_CORNER) {
            t.setTop(
                0), t.setRight(2 * this._verticalScrollbarWidth
                + this._minimapWidth);
          } else if (e.preference
              === i.OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER) {
            var n = t.domNode.clientHeight;
            t.setTop(this._editorHeight - n - 2
                * this._horizontalScrollbarHeight), t.setRight(
                2 * this._verticalScrollbarWidth + this._minimapWidth)
          } else {
            e.preference === i.OverlayWidgetPositionPreference.TOP_CENTER
            && (t.setTop(0), t.domNode.style.right = "50%");
          }
        } else {
          t.unsetTop()
        }
      }, t.prototype.prepareRender = function (e) {
      }, t.prototype.render = function (e) {
        this._domNode.setWidth(this._editorWidth);
        for (var t = Object.keys(this._widgets), n = 0, i = t.length; n < i;
            n++) {
          var o = t[n];
          this._renderWidget(this._widgets[o])
        }
      }, t
    }(o.ViewPart);
    t.ViewOverlayWidgets = r
  }),define(d[237], h([1, 0, 10, 27, 35, 12]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function (e) {
      function t(t) {
        var n = e.call(this, t) || this;
        return n._lineHeight = n._context.configuration.editor.lineHeight, n._contentWidth = n._context.configuration.editor.layoutInfo.contentWidth, n._contentLeft = n._context.configuration.editor.layoutInfo.contentLeft, n.domNode = i.createFastDomNode(
            document.createElement("div")), n.domNode.setClassName(
            "view-zones"), n.domNode.setPosition(
            "absolute"), n.domNode.setAttribute("role",
            "presentation"), n.domNode.setAttribute("aria-hidden",
            "true"), n.marginDomNode = i.createFastDomNode(
            document.createElement("div")), n.marginDomNode.setClassName(
            "margin-view-zones"), n.marginDomNode.setPosition(
            "absolute"), n.marginDomNode.setAttribute("role",
            "presentation"), n.marginDomNode.setAttribute("aria-hidden",
            "true"), n._zones = {}, n
      }

      return f(t, e), t.prototype.dispose = function () {
        e.prototype.dispose.call(this), this._zones = {}
      }, t.prototype._recomputeWhitespacesProps = function () {
        for (var e = !1, t = Object.keys(this._zones), n = 0, i = t.length;
            n < i; n++) {
          var o = t[n], r = this._zones[o],
              s = this._computeWhitespaceProps(r.delegate);
          this._context.viewLayout.changeWhitespace(parseInt(o, 10),
              s.afterViewLineNumber, s.heightInPx)
          && (this._safeCallOnComputedHeight(r.delegate, s.heightInPx), e = !0)
        }
        return e
      }, t.prototype.onConfigurationChanged = function (e) {
        return e.lineHeight
            ? (this._lineHeight = this._context.configuration.editor.lineHeight, this._recomputeWhitespacesProps())
            : (e.layoutInfo
            && (this._contentWidth = this._context.configuration.editor.layoutInfo.contentWidth, this._contentLeft = this._context.configuration.editor.layoutInfo.contentLeft), !0)
      }, t.prototype.onLineMappingChanged = function (e) {
        return this._recomputeWhitespacesProps()
      }, t.prototype.onLinesDeleted = function (e) {
        return !0
      }, t.prototype.onScrollChanged = function (e) {
        return e.scrollTopChanged || e.scrollWidthChanged
      }, t.prototype.onZonesChanged = function (e) {
        return !0
      }, t.prototype.onLinesInserted = function (e) {
        return !0
      }, t.prototype._getZoneOrdinal = function (e) {
        return void 0 !== e.afterColumn ? e.afterColumn : 1e4
      }, t.prototype._computeWhitespaceProps = function (e) {
        if (0 === e.afterLineNumber) {
          return {
            afterViewLineNumber: 0,
            heightInPx: this._heightInPixels(e)
          };
        }
        var t;
        if (void 0
            !== e.afterColumn) {
          t = this._context.model.validateModelPosition(
              {lineNumber: e.afterLineNumber, column: e.afterColumn});
        } else {
          var n = this._context.model.validateModelPosition(
              {lineNumber: e.afterLineNumber, column: 1}).lineNumber;
          t = new r.Position(n, this._context.model.getModelLineMaxColumn(n))
        }
        var i;
        i = t.column === this._context.model.getModelLineMaxColumn(t.lineNumber)
            ? this._context.model.validateModelPosition(
                {lineNumber: t.lineNumber + 1, column: 1})
            : this._context.model.validateModelPosition(
                {lineNumber: t.lineNumber, column: t.column + 1});
        var o = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(
                t),
            s = this._context.model.coordinatesConverter.modelPositionIsVisible(
                i);
        return {
          afterViewLineNumber: o.lineNumber,
          heightInPx: s ? this._heightInPixels(e) : 0
        }
      }, t.prototype.addZone = function (e) {
        var t = this._computeWhitespaceProps(e), n = {
          whitespaceId: this._context.viewLayout.addWhitespace(
              t.afterViewLineNumber, this._getZoneOrdinal(e), t.heightInPx),
          delegate: e,
          isVisible: !1,
          domNode: i.createFastDomNode(e.domNode),
          marginDomNode: e.marginDomNode ? i.createFastDomNode(e.marginDomNode)
              : null
        };
        return this._safeCallOnComputedHeight(n.delegate,
            t.heightInPx), n.domNode.setPosition(
            "absolute"), n.domNode.domNode.style.width = "100%", n.domNode.setDisplay(
            "none"), n.domNode.setAttribute("monaco-view-zone",
            n.whitespaceId.toString()), this.domNode.appendChild(
            n.domNode), n.marginDomNode && (n.marginDomNode.setPosition(
            "absolute"), n.marginDomNode.domNode.style.width = "100%", n.marginDomNode.setDisplay(
            "none"), n.marginDomNode.setAttribute("monaco-view-zone",
            n.whitespaceId.toString()), this.marginDomNode.appendChild(
            n.marginDomNode)), this._zones[n.whitespaceId.toString()] = n, this.setShouldRender(), n.whitespaceId
      }, t.prototype.removeZone = function (e) {
        if (this._zones.hasOwnProperty(e.toString())) {
          var t = this._zones[e.toString()];
          return delete this._zones[e.toString()], this._context.viewLayout.removeWhitespace(
              t.whitespaceId), t.domNode.removeAttribute(
              "monaco-visible-view-zone"), t.domNode.removeAttribute(
              "monaco-view-zone"), t.domNode.domNode.parentNode.removeChild(
              t.domNode.domNode), t.marginDomNode
          && (t.marginDomNode.removeAttribute(
              "monaco-visible-view-zone"), t.marginDomNode.removeAttribute(
              "monaco-view-zone"), t.marginDomNode.domNode.parentNode.removeChild(
              t.marginDomNode.domNode)), this.setShouldRender(), !0
        }
        return !1
      }, t.prototype.layoutZone = function (e) {
        var t = !1;
        if (this._zones.hasOwnProperty(e.toString())) {
          var n = this._zones[e.toString()],
              i = this._computeWhitespaceProps(n.delegate);
          (t = this._context.viewLayout.changeWhitespace(n.whitespaceId,
              i.afterViewLineNumber, i.heightInPx) || t)
          && (this._safeCallOnComputedHeight(n.delegate,
              i.heightInPx), this.setShouldRender())
        }
        return t
      }, t.prototype.shouldSuppressMouseDownOnViewZone = function (e) {
        return !!this._zones.hasOwnProperty(e.toString())
            && this._zones[e.toString()].delegate.suppressMouseDown
      }, t.prototype._heightInPixels = function (e) {
        return "number" == typeof e.heightInPx ? e.heightInPx : "number"
        == typeof e.heightInLines ? this._lineHeight * e.heightInLines
            : this._lineHeight
      }, t.prototype._safeCallOnComputedHeight = function (e, t) {
        if ("function" == typeof e.onComputedHeight) {
          try {
            e.onComputedHeight(t)
          } catch (e) {
            n.onUnexpectedError(e)
          }
        }
      }, t.prototype._safeCallOnDomNodeTop = function (e, t) {
        if ("function" == typeof e.onDomNodeTop) {
          try {
            e.onDomNodeTop(t)
          } catch (e) {
            n.onUnexpectedError(e)
          }
        }
      }, t.prototype.prepareRender = function (e) {
      }, t.prototype.render = function (e) {
        for (var t = e.viewportData.whitespaceViewportData, n = {}, i = !1,
            o = 0, r = t.length; o < r;
            o++) {
          n[t[o].id.toString()] = t[o], i = !0;
        }
        for (var s = Object.keys(this._zones), o = 0, r = s.length; o < r;
            o++) {
          var a = s[o], u = this._zones[a], l = 0, c = 0, d = "none";
          n.hasOwnProperty(a) ? (l = n[a].verticalOffset
                  - e.bigNumbersDelta, c = n[a].height, d = "block", u.isVisible
              || (u.domNode.setAttribute("monaco-visible-view-zone",
                  "true"), u.isVisible = !0), this._safeCallOnDomNodeTop(u.delegate,
                  e.getScrolledTopFromAbsoluteTop(n[a].verticalOffset)))
              : (u.isVisible && (u.domNode.removeAttribute(
                  "monaco-visible-view-zone"), u.isVisible = !1), this._safeCallOnDomNodeTop(
                  u.delegate,
                  e.getScrolledTopFromAbsoluteTop(-1e6))), u.domNode.setTop(
              l), u.domNode.setHeight(c), u.domNode.setDisplay(
              d), u.marginDomNode && (u.marginDomNode.setTop(
              l), u.marginDomNode.setHeight(c), u.marginDomNode.setDisplay(d))
        }
        i && (this.domNode.setWidth(Math.max(e.scrollWidth,
            this._contentWidth)), this.marginDomNode.setWidth(
            this._contentLeft))
      }, t
    }(o.ViewPart);
    t.ViewZones = s
  }),define(d[86], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      return function (e, t, n, i) {
        this.top = 0 | e, this.left = 0 | t, this.width = 0 | n, this.height = 0
            | i
      }
    }();
    t.Viewport = n;
    var i = function () {
      return function (e, t) {
        this.tabSize = e, this.data = t
      }
    }();
    t.MinimapLinesRenderingData = i;
    var o = function () {
      return function (e, t, n, i) {
        this.content = e, this.minColumn = t, this.maxColumn = n, this.tokens = i
      }
    }();
    t.ViewLineData = o;
    var r = function () {
      return function (e, t, n, i, o, r, s, a) {
        this.minColumn = e, this.maxColumn = t, this.content = n, this.mightContainRTL = i, this.mightContainNonBasicASCII = o, this.tokens = r, this.inlineDecorations = s, this.tabSize = a
      }
    }();
    t.ViewLineRenderingData = r;
    var s = function () {
      return function (e, t, n) {
        this.range = e, this.inlineClassName = t, this.insertsBeforeOrAfter = n
      }
    }();
    t.InlineDecoration = s;
    var a = function () {
      return function (e) {
        this.range = null, this.source = e
      }
    }();
    t.ViewModelDecoration = a;
    var u = function () {
      function e() {
        this._eventsLen = 0, this._events = [], this._eventsLen = 0
      }

      return e.prototype.emit = function (e) {
        this._events[this._eventsLen++] = e
      }, e.prototype.finalize = function () {
        var e = this._events;
        return this._events = null, e
      }, e
    }();
    t.ViewEventsCollector = u
  }),define(d[239], h([1, 0, 3, 48, 223, 86]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function (e) {
      function t(t, n) {
        var r = e.call(this) || this;
        return r._configuration = t, r._linesLayout = new o.LinesLayout(n,
            r._configuration.editor.lineHeight), r.scrollable = r._register(
            new i.Scrollable), r.scrollable.updateState({
          width: t.editor.layoutInfo.contentWidth,
          height: t.editor.layoutInfo.contentHeight
        }), r.onDidScroll = r.scrollable.onScroll, r._updateHeight(), r
      }

      return f(t, e), t.prototype.dispose = function () {
        e.prototype.dispose.call(this)
      }, t.prototype.getScrollable = function () {
        return this.scrollable
      }, t.prototype.onHeightMaybeChanged = function () {
        this._updateHeight()
      }, t.prototype.onConfigurationChanged = function (e) {
        e.lineHeight && this._linesLayout.setLineHeight(
            this._configuration.editor.lineHeight), e.layoutInfo
        && this.scrollable.updateState({
          width: this._configuration.editor.layoutInfo.contentWidth,
          height: this._configuration.editor.layoutInfo.contentHeight
        }), this._updateHeight()
      }, t.prototype.onFlushed = function (e) {
        this._linesLayout.onFlushed(e), this._updateHeight()
      }, t.prototype.onLinesDeleted = function (e, t) {
        this._linesLayout.onLinesDeleted(e, t), this._updateHeight()
      }, t.prototype.onLinesInserted = function (e, t) {
        this._linesLayout.onLinesInserted(e, t), this._updateHeight()
      }, t.prototype._getHorizontalScrollbarHeight = function (e) {
        return this._configuration.editor.viewInfo.scrollbar.horizontal
        === i.ScrollbarVisibility.Hidden ? 0 : e.width >= e.scrollWidth ? 0
            : this._configuration.editor.viewInfo.scrollbar.horizontalScrollbarSize
      }, t.prototype._getTotalHeight = function () {
        var e = this.scrollable.getState(),
            t = this._linesLayout.getLinesTotalHeight();
        return this._configuration.editor.viewInfo.scrollBeyondLastLine
            ? t += e.height - this._configuration.editor.lineHeight
            : t += this._getHorizontalScrollbarHeight(e), Math.max(e.height, t)
      }, t.prototype._updateHeight = function () {
        this.scrollable.updateState({scrollHeight: this._getTotalHeight()})
      }, t.prototype.getCurrentViewport = function () {
        var e = this.scrollable.getState();
        return new r.Viewport(e.scrollTop, e.scrollLeft, e.width, e.height)
      }, t.prototype._computeScrollWidth = function (e, n) {
        return this._configuration.editor.wrappingInfo.isViewportWrapping
            ? Math.max(e, n) : Math.max(e + t.LINES_HORIZONTAL_EXTRA_PX, n)
      }, t.prototype.onMaxLineWidthChanged = function (e) {
        var t = this._computeScrollWidth(e, this.getCurrentViewport().width);
        this.scrollable.updateState({scrollWidth: t}), this._updateHeight()
      }, t.prototype.saveState = function () {
        var e = this.scrollable.getState(), t = e.scrollTop,
            n = this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);
        return {
          scrollTop: t,
          scrollTopWithoutViewZones: t
              - this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(
                  n),
          scrollLeft: e.scrollLeft
        }
      }, t.prototype.restoreState = function (e) {
        var t = e.scrollTop;
        "number" != typeof e.scrollTopWithoutViewZones
        || this._linesLayout.hasWhitespace()
        || (t = e.scrollTopWithoutViewZones), this.scrollable.updateState(
            {scrollLeft: e.scrollLeft, scrollTop: t})
      }, t.prototype.addWhitespace = function (e, t, n) {
        return this._linesLayout.insertWhitespace(e, t, n)
      }, t.prototype.changeWhitespace = function (e, t, n) {
        return this._linesLayout.changeWhitespace(e, t, n)
      }, t.prototype.removeWhitespace = function (e) {
        return this._linesLayout.removeWhitespace(e)
      }, t.prototype.getVerticalOffsetForLineNumber = function (e) {
        return this._linesLayout.getVerticalOffsetForLineNumber(e)
      }, t.prototype.isAfterLines = function (e) {
        return this._linesLayout.isAfterLines(e)
      }, t.prototype.getLineNumberAtVerticalOffset = function (e) {
        return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)
      }, t.prototype.getWhitespaceAtVerticalOffset = function (e) {
        return this._linesLayout.getWhitespaceAtVerticalOffset(e)
      }, t.prototype.getLinesViewportData = function () {
        var e = this.getCurrentViewport();
        return this._linesLayout.getLinesViewportData(e.top, e.top + e.height)
      }, t.prototype.getLinesViewportDataAtScrollTop = function (e) {
        var t = this.scrollable.getState();
        return e + t.height > t.scrollHeight && (e = t.scrollHeight
            - t.height), e < 0
        && (e = 0), this._linesLayout.getLinesViewportData(e, e + t.height)
      }, t.prototype.getWhitespaceViewportData = function () {
        var e = this.getCurrentViewport();
        return this._linesLayout.getWhitespaceViewportData(e.top,
            e.top + e.height)
      }, t.prototype.getWhitespaces = function () {
        return this._linesLayout.getWhitespaces()
      }, t.prototype.getScrollWidth = function () {
        return this.scrollable.getState().scrollWidth
      }, t.prototype.getScrollLeft = function () {
        return this.scrollable.getState().scrollLeft
      }, t.prototype.getScrollHeight = function () {
        return this.scrollable.getState().scrollHeight
      }, t.prototype.getScrollTop = function () {
        return this.scrollable.getState().scrollTop
      }, t.prototype.setScrollPosition = function (e) {
        this.scrollable.updateState(e)
      }, t.LINES_HORIZONTAL_EXTRA_PX = 30, t
    }(n.Disposable);
    t.ViewLayout = s
  }),define(d[240], h([1, 0, 2, 12, 86]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e(e, t, n, i) {
        this.editorId = e, this.model = t, this.configuration = n, this._coordinatesConverter = i, this._decorationsCache = Object.create(
            null), this._clearCachedModelDecorationsResolver()
      }

      return e.prototype._clearCachedModelDecorationsResolver = function () {
        this._cachedModelDecorationsResolver = null, this._cachedModelDecorationsResolverViewRange = null
      }, e.prototype.dispose = function () {
        this._decorationsCache = null, this._clearCachedModelDecorationsResolver()
      }, e.prototype.reset = function () {
        this._decorationsCache = Object.create(
            null), this._clearCachedModelDecorationsResolver()
      }, e.prototype.onModelDecorationsChanged = function (e) {
        for (var t = e.changedDecorations, n = 0, i = t.length; n < i; n++) {
          var o = t[n], r = this._decorationsCache[o];
          r && (r.range = null)
        }
        var s = e.removedDecorations;
        if (null !== this._decorationsCache && void 0
            !== this._decorationsCache) {
          for (var n = 0, i = s.length; n < i;
              n++) {
            var a = s[n];
            delete this._decorationsCache[a]
          }
        }
        this._clearCachedModelDecorationsResolver()
      }, e.prototype.onLineMappingChanged = function () {
        this._decorationsCache = Object.create(
            null), this._clearCachedModelDecorationsResolver()
      }, e.prototype._getOrCreateViewModelDecoration = function (e) {
        var t = e.id, r = this._decorationsCache[t];
        if (r || (r = new o.ViewModelDecoration(
            e), this._decorationsCache[t] = r), null === r.range) {
          var s = e.range;
          if (e.options.isWholeLine) {
            var a = this._coordinatesConverter.convertModelPositionToViewPosition(
                    new i.Position(s.startLineNumber, 1)),
                u = this._coordinatesConverter.convertModelPositionToViewPosition(
                    new i.Position(s.endLineNumber,
                        this.model.getLineMaxColumn(s.endLineNumber)));
            r.range = new n.Range(a.lineNumber, a.column, u.lineNumber,
                u.column)
          } else {
            r.range = this._coordinatesConverter.convertModelRangeToViewRange(
                s)
          }
        }
        return r
      }, e.prototype.getAllOverviewRulerDecorations = function () {
        for (var e = this.model.getAllDecorations(this.editorId,
                this.configuration.editor.readOnly), t = [], n = 0, i = 0,
            o = e.length; i < o; i++) {
          var r = e[i];
          if (r.options.overviewRuler.color) {
            var s = this._getOrCreateViewModelDecoration(r);
            t[n++] = s
          }
        }
        return t
      }, e.prototype.getDecorationsViewportData = function (e) {
        var t = !0;
        return t = t && null !== this._cachedModelDecorationsResolver, (t = t
            && e.equalsRange(this._cachedModelDecorationsResolverViewRange))
        || (this._cachedModelDecorationsResolver = this._getDecorationsViewportData(
            e), this._cachedModelDecorationsResolverViewRange = e), this._cachedModelDecorationsResolver
      }, e.prototype._getDecorationsViewportData = function (e) {
        for (var t = this._coordinatesConverter.convertViewRangeToModelRange(e),
            i = e.startLineNumber, r = e.endLineNumber,
            s = this.model.getDecorationsInRange(t, this.editorId,
                this.configuration.editor.readOnly), a = [], u = 0, l = [],
            c = i; c <= r; c++) {
          l[c - i] = [];
        }
        for (var d = 0, h = s.length; d < h; d++) {
          var p = s[d], f = p.options,
              g = this._getOrCreateViewModelDecoration(p), m = g.range;
          if (a[u++] = g, f.inlineClassName) {
            for (var v = new o.InlineDecoration(
                    m, f.inlineClassName, !1), _ = Math.max(i, m.startLineNumber),
                y = Math.min(r, m.endLineNumber), c = _; c <= y; c++) {
              l[c
              - i].push(v);
            }
          }
          if (f.beforeContentClassName && i <= m.startLineNumber
              && m.startLineNumber <= r) {
            v = new o.InlineDecoration(
                new n.Range(m.startLineNumber, m.startColumn, m.startLineNumber,
                    m.startColumn + 1), f.beforeContentClassName, !0);
            l[m.startLineNumber - i].push(v)
          }
          if (f.afterContentClassName && i <= m.endLineNumber && m.endLineNumber
              <= r && m.endColumn > 1) {
            v = new o.InlineDecoration(
                new n.Range(m.endLineNumber, m.endColumn - 1, m.endLineNumber,
                    m.endColumn), f.afterContentClassName, !0);
            l[m.endLineNumber - i].push(v)
          }
        }
        return {decorations: a, inlineDecorations: l}
      }, e
    }();
    t.ViewModelDecorations = r
  }),define(d[241], h([1, 0, 2]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t) {
        this._selection = e, this._isMovingLeft = t
      }

      return e.prototype.getEditOperations = function (e, t) {
        var i = this._selection;
        if (this._selectionId = t.trackSelection(i), i.startLineNumber
        === i.endLineNumber && (!this._isMovingLeft || 0 !== i.startColumn)
        && (this._isMovingLeft || i.endColumn !== e.getLineMaxColumn(
            i.startLineNumber))) {
          var o, r, s, a = i.selectionStartLineNumber, u = e.getLineContent(a);
          this._isMovingLeft ? (o = u.substring(0,
                  i.startColumn - 2), r = u.substring(i.startColumn - 1,
                  i.endColumn - 1), s = u.substring(i.startColumn - 2,
                  i.startColumn - 1) + u.substring(i.endColumn - 1))
              : (o = u.substring(0, i.startColumn - 1) + u.substring(
                  i.endColumn - 1, i.endColumn), r = u.substring(i.startColumn - 1,
                  i.endColumn - 1), s = u.substring(i.endColumn));
          var l = o + r + s;
          t.addEditOperation(new n.Range(a, 1, a, e.getLineMaxColumn(a)),
              null), t.addEditOperation(new n.Range(a, 1, a, 1),
              l), this._cutStartIndex = i.startColumn + (this._isMovingLeft ? -1
              : 1), this._cutEndIndex = this._cutStartIndex + i.endColumn
              - i.startColumn, this._moved = !0
        }
      }, e.prototype.computeCursorState = function (e, t) {
        var n = t.getTrackedSelection(this._selectionId);
        return this._moved && (n = (n = n.setStartPosition(n.startLineNumber,
            this._cutStartIndex)).setEndPosition(n.startLineNumber,
            this._cutEndIndex)), n
      }, e
    }();
    t.MoveCaretCommand = i
  }),define(d[242], h([1, 0, 32, 2]), function (e, t, n, i) {
    "use strict";

    function o(e) {
      return !!e.transparentFormatter
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.isAdvancedFormatter = o;
    var r = function () {
      function e(e, t, n, o, r, s, a) {
        this.editorModel = s, this.colorFormatters = [], this._colorModelIndex = 0, this.originalColor = e, this._opaqueFormatter = n, this.colorFormatters = r, this.color = t, this.hue = t.getHue(), this.saturation = t.getSaturation(), this.value = t.getValue(), this._colorRange = new i.Range(
            a.startLineNumber, a.startColumn, a.endLineNumber, a.endColumn)
      }

      return Object.defineProperty(e.prototype, "color", {
        get: function () {
          return this._color
        }, set: function (e) {
          this._color = e;
          var t = e.toRGBA().a;
          this._opacity || (this._opacity = t
              / 255), this.saturation = e.getSaturation(), this.value = e.getValue(), 1
          === this._opacity
              ? this.selectedColorString = this._opaqueFormatter.toString(
                  this._color) : this._transparentFormatter
                  ? this.selectedColorString = this._transparentFormatter.toString(
                      this._color) : this.nextColorMode()
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "selectedColorString", {
        get: function () {
          return this._selectedColor
        }, set: function (e) {
          this._selectedColor !== e && (this._selectedColor = e, this.widget
          && this.widget.header && this.widget.body
          && (this.widget.header.updatePickedColor(), this.widget.body.fillOpacityOverlay(
              this._color), this.editorModel.pushEditOperations([], [{
            identifier: null,
            range: this._colorRange,
            text: e,
            forceMoveMarkers: !1
          }], function () {
            return []
          }), this._colorRange = this._colorRange.setEndPosition(
              this._colorRange.endLineNumber,
              this._colorRange.startColumn + e.length)))
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "hue", {
        get: function () {
          return this._hue
        }, set: function (e) {
          this._hue = e, this.widget && this.widget.body
          && this.widget.body.saturationBox.fillSaturationBox()
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "opacity", {
        get: function () {
          return this._opacity
        }, set: function (e) {
          this._opacity = e;
          var t = this._color.toRGBA();
          this.color = n.Color.fromRGBA(
              new n.RGBA(t.r, t.g, t.b, 255 * e)), this.widget.header
          && this.widget.header.updatePickedColor()
        }, enumerable: !0, configurable: !0
      }), e.prototype.nextColorMode = function () {
        this._colorModelIndex++, this._colorModelIndex
        === this.colorFormatters.length && (this._colorModelIndex = 0);
        var e = this.colorFormatters[this._colorModelIndex];
        o(e)
            ? (this._transparentFormatter = e.transparentFormatter, this._opaqueFormatter = e.opaqueFormatter, this.selectedColorString = 1
            === this._opacity ? this._opaqueFormatter.toString(this._color)
                : this._transparentFormatter.toString(this._color))
            : this._transparentFormatter && 1 !== this._opacity
                ? this.nextColorMode()
                : (this._transparentFormatter = null, this._opaqueFormatter = e, this.selectedColorString = this._opaqueFormatter.toString(
                    this._color))
      }, e.prototype.getHueColor = function (e) {
        var t = e / 60, i = 1 - Math.abs(t % 2 - 1), o = 0, r = 0, s = 0;
        return t >= 0 && t < 1 ? (o = 1, r = i) : t >= 1 && t < 2
            ? (o = i, r = 1) : t >= 2 && t < 3 ? (r = 1, s = i) : t >= 3 && t
            < 4 ? (r = i, s = 1) : t >= 4 && t < 5 ? (o = i, s = 1)
                : (o = 1, s = i), o = Math.round(255 * o), r = Math.round(
            255 * r), s = Math.round(255 * s), n.Color.fromRGBA(
            new n.RGBA(o, r, s))
      }, e
    }();
    t.ColorPickerModel = r;
    var s = function () {
      return function () {
      }
    }();
    t.ISaturationState = s
  }),define(d[243], h([1, 0, 4, 3, 83, 15, 32]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = n.$, u = function (e) {
          function t(t, i) {
            var o = e.call(this) || this;
            return o.widget = t, o.model = i, o.pixelRatio = o.widget.editor.getConfiguration().pixelRatio, o.domNode = a(
                ".colorpicker-body"), n.append(t.getDomNode(),
                o.domNode), o.drawSaturationBox(), o.drawOpacityStrip(), o.drawHueStrip(), o.registerListeners(), o
          }

          return f(t, e), t.prototype.fillOpacityOverlay = function (e) {
            var t = e.toRGBA(), n = t.r, i = t.g, o = t.b;
            this.opacityOverlay.style.background = "linear-gradient(to bottom, rgba("
                + n + ", " + i + ", " + o + ", 1) 0%, rgba(" + n + ", " + i
                + ", " + o + ", 0) 100%)"
          }, t.prototype.registerListeners = function () {
            var e = this, t = this._register(new o.GlobalMouseMoveMonitor);
            this._register(n.addDisposableListener(this.saturationBox.domNode,
                n.EventType.MOUSE_DOWN, function (n) {
                  e.saturationListener(n, t)
                })), this._register(
                n.addDisposableListener(this.hueStrip, n.EventType.MOUSE_DOWN,
                    function (n) {
                      e.stripListener(e.hueStrip, n, t)
                    })), this._register(
                n.addDisposableListener(this.opacityStrip,
                    n.EventType.MOUSE_DOWN, function (n) {
                      e.stripListener(e.opacityStrip, n, t)
                    }))
          }, t.prototype.saturationListener = function (e, t) {
            var n = this;
            if (0 === e.button) {
              var i, r, a = function (e, t) {
                var i = n.saturationBox.extractColor(e, t).toRGBA();
                n.widget.model.color = s.Color.fromRGBA(
                    new s.RGBA(i.r, i.g, i.b, 255
                        * n.widget.model.opacity)), n.saturationBox.focusSaturationSelection(
                    {x: e, y: t})
              };
              e.target !== this.saturationBox.saturationSelection
                  ? (i = e.offsetX, r = e.offsetY, a(i, r))
                  : (i = this.widget.model.saturationSelection.x, r = this.widget.model.saturationSelection.y);
              var u = e.clientY, l = e.clientX;
              t.startMonitoring(o.standardMouseMoveMerger, function (e) {
                var t = e.posx - l, n = e.posy - u;
                a(i + t, r + n)
              }, function () {
                return null
              })
            }
          }, t.prototype.stripListener = function (e, t, n) {
            var i = this;
            if (0 === t.button) {
              var s = e === this.hueStrip ? this.hueSlider : this.opacitySlider,
                  a = e === this.hueStrip ? this.hueStrip : this.opacityStrip;
              t.target !== this.hueStrip && t.target !== this.opacityStrip
              || (s.top = t.offsetY);
              var u = function () {
                s === i.hueSlider ? i.widget.model.hue = i.calculateSliderHue(s)
                    : s === i.opacitySlider
                    && (i.widget.model.opacity = i.calculateOpacity(s))
              };
              u();
              var l = t.clientY, c = t.clientX, d = s.top;
              n.startMonitoring(o.standardMouseMoveMerger, function (e) {
                a.style.cursor = "-webkit-grabbing";
                var t = Math.abs(e.posx - c);
                if (r.isWindows && t > 140) {
                  return s.top = 0, void (s
                  === i.hueSlider ? i.widget.model.hue = 0 : s
                      === i.opacitySlider
                      && (i.widget.model.opacity = 1));
                }
                var n = e.posy - l;
                s.top = d + n, u()
              }, function () {
                a.style.cursor = "-webkit-grab"
              })
            }
          }, t.prototype.drawSaturationBox = function () {
            this.saturationBox = new l(this.model, this.domNode,
                this.pixelRatio)
          }, t.prototype.drawOpacityStrip = function () {
            this.opacityStrip = a(".strip.opacity-strip"), n.append(
                this.domNode, this.opacityStrip), this.opacityOverlay = a(
                ".opacity-overlay"), this.fillOpacityOverlay(
                this.model.color), n.append(this.opacityStrip,
                this.opacityOverlay), this.opacitySlider = new c(
                this.opacityStrip), this.opacitySlider.top = 1
            === this.model.opacity ? 0 : this.opacityStrip.offsetHeight * (1
                - this.model.opacity), n.append(this.opacityStrip,
                this.opacitySlider.domNode)
          }, t.prototype.drawHueStrip = function () {
            this.hueStrip = a(".strip.hue-strip"), n.append(this.domNode,
                this.hueStrip), this.hueSlider = new c(this.hueStrip), n.append(
                this.hueStrip,
                this.hueSlider.domNode), this.hueSlider.top = (this.hueStrip.offsetHeight
                    - this.hueSlider.domNode.offsetHeight)
                * (this.model.color.getHue() / 359)
          }, t.prototype.calculateSliderHue = function (e) {
            var t = this.hueStrip.offsetHeight - e.domNode.offsetHeight;
            return 359 * (1 - (t - e.top) / t)
          }, t.prototype.calculateOpacity = function (e) {
            var t = this.opacityStrip.offsetHeight - e.domNode.offsetHeight;
            return (t - e.top) / t
          }, t
        }(i.Disposable);
        t.ColorPickerBody = u;
        var l = function () {
          function e(e, t, i) {
            this.model = e, this.pixelRatio = i, this.domNode = a(
                ".saturation-wrap"), n.append(t,
                this.domNode), this.saturationCanvas = document.createElement(
                "canvas"), this.saturationCanvas.className = "saturation-box", n.append(
                this.domNode,
                this.saturationCanvas), this.saturationSelection = a(
                ".saturation-selection"), n.append(this.domNode,
                this.saturationSelection)
          }

          return e.prototype.layout = function () {
            var e = this.domNode.offsetWidth * this.pixelRatio,
                t = this.domNode.offsetHeight * this.pixelRatio;
            this.saturationCanvas.width = e, this.saturationCanvas.height = t, this.saturationCtx = this.saturationCanvas.getContext(
                "2d"), this.saturationCtx.rect(0, 0, e, t);
            var n = document.createElement("canvas").getContext("2d");
            this.whiteGradient = n.createLinearGradient(0, 0, e,
                0), this.whiteGradient.addColorStop(0,
                "rgba(255, 255, 255, 1)"), this.whiteGradient.addColorStop(1,
                "rgba(255, 255, 255, 0)"), this.blackGradient = n.createLinearGradient(
                0, 0, 0, t), this.blackGradient.addColorStop(0,
                "rgba(0, 0, 0, 0)"), this.blackGradient.addColorStop(1,
                "rgba(0, 0, 0, 1)"), this.fillSaturationBox();
            var i = this.model.saturation * this.saturationCanvas.clientWidth,
                o = this.model.value * this.saturationCanvas.clientHeight,
                r = 0 === o ? this.saturationCanvas.clientHeight
                    : this.saturationCanvas.clientHeight - o;
            this.focusSaturationSelection({x: i, y: r})
          }, e.prototype.fillSaturationBox = function () {
            if (this.saturationCtx.fillStyle = this.calculateHueColor(
                this.model.hue).toString(), this.saturationCtx.fill(), this.saturationCtx.fillStyle = this.whiteGradient, this.saturationCtx.fill(), this.saturationCtx.fillStyle = this.blackGradient, this.saturationCtx.fill(), this.model.saturationSelection) {
              var e = s.Color.fromHSV(this.model.hue, this.model.saturation,
                  this.model.value, 255 * this.model.opacity);
              this.model.color = e
            }
          }, e.prototype.focusSaturationSelection = function (e) {
            var t = e.x, n = e.y;
            t < 0 ? t = 0 : t > this.domNode.offsetWidth
                && (t = this.domNode.offsetWidth), n < 0 ? n = 0 : n
                > this.domNode.offsetHeight
                && (n = this.domNode.offsetHeight), this.saturationSelection.style.left = t
                + "px", this.saturationSelection.style.top = n
                + "px", this.model.saturationSelection = {x: t, y: n}
          }, e.prototype.extractColor = function (e, t) {
            var n = 1 - e / this.domNode.offsetWidth,
                i = t / this.domNode.offsetHeight,
                o = s.Color.fromRGBA(new s.RGBA(255, 255, 255, 255 * n));
            return s.Color.fromRGBA(new s.RGBA(0, 0, 0, 255 * i)).blend(
                o).blend(this.calculateHueColor(this.model.hue))
          }, e.prototype.calculateHueColor = function (e) {
            var t = e / 60, n = 1 - Math.abs(t % 2 - 1), i = 0, o = 0, r = 0;
            return t >= 0 && t < 1 ? (i = 1, o = n) : t >= 1 && t < 2
                ? (i = n, o = 1) : t >= 2 && t < 3 ? (o = 1, r = n) : t >= 3
                && t < 4 ? (o = n, r = 1) : t >= 4 && t < 5 ? (i = n, r = 1)
                    : (i = 1, r = n), i = Math.round(255 * i), o = Math.round(
                255 * o), r = Math.round(255 * r), s.Color.fromRGBA(
                new s.RGBA(i, o, r))
          }, e
        }();
        t.SaturationBox = l;
        var c = function () {
          function e(e) {
            this.strip = e, this.domNode = a(".slider"), this._top = 0
          }

          return Object.defineProperty(e.prototype, "top", {
            get: function () {
              return this._top
            }, set: function (e) {
              e < 0 ? e = 0 : e > this.strip.offsetHeight
                  - this.domNode.offsetHeight && (e = this.strip.offsetHeight
                      - this.domNode.offsetHeight), this.domNode.style.top = e
                  + "px", this._top = e
            }, enumerable: !0, configurable: !0
          }), e
        }()
      }),define(d[244], h([1, 0, 4, 3]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = n.$, r = function (e) {
      function t(t, i) {
        var r = e.call(this) || this;
        return r.widget = t, r.model = i, r.domNode = o(
            ".colorpicker-header"), n.append(t.getDomNode(),
            r.domNode), r.drawPickedColorBox(), r.drawOriginalColorBox(), n.addDisposableListener(
            r.pickedColorNode, n.EventType.CLICK, function () {
              0 !== r.model.colorFormatters.length && r.model.nextColorMode()
            }), r
      }

      return f(t, e), t.prototype.updatePickedColor = function () {
        this.pickedColorNode.textContent = this.model.selectedColorString, this.pickedColorNode.style.backgroundColor = this.model.color.toString()
      }, t.prototype.drawPickedColorBox = function () {
        this.pickedColorNode = o(
            ".picked-color"), this.pickedColorNode.style.backgroundColor = this.model.color.toString(), this.pickedColorNode.textContent = this.model.selectedColorString, n.append(
            this.domNode, this.pickedColorNode)
      }, t.prototype.drawOriginalColorBox = function () {
        var e = o(".original-color");
        e.style.backgroundColor = this.model.originalColor, n.append(
            this.domNode, e)
      }, t
    }(i.Disposable);
    t.ColorPickerHeader = r
  }),define(d[245], h([1, 0, 41, 4, 28, 244, 243, 316]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = i.$, u = function (e) {
          function t(t, n) {
            var i = e.call(this) || this;
            return i.model = t, i.editor = n, i.visible = !1, i._register(
                o.onDidChangeZoomLevel(function () {
                  return i.layout()
                })), i.domNode = a(".editor-widget.colorpicker-widget"), i
          }

          return f(t, e), t.prototype.layout = function () {
            this.visible || (this.header = new r.ColorPickerHeader(this,
                this.model), this.body = new s.ColorPickerBody(this,
                this.model), this.visible = !0)
          }, t.prototype.layoutSaturationBox = function () {
            this.body.saturationBox.layout()
          }, t.prototype.dispose = function () {
            this.visible = !1, this.domNode = null, e.prototype.dispose.call(
                this)
          }, t.prototype.getId = function () {
            return t.ID
          }, t.prototype.getDomNode = function () {
            return this.domNode
          }, t.ID = "editor.contrib.colorPickerWidget", t
        }(n.Widget);
        t.ColorPickerWidget = u
      }),define(d[246], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.isColorDecorationOptions = function (e) {
      return !(!e || !e.color)
    }
  }),define(d[247], h([1, 0]), function (e, t) {
    "use strict";

    function n(e) {
      return function () {
        return e
      }
    }

    function i(e, t, n, i) {
      var o = e;
      if (t || n) {
        if (t > n) {
          throw new Error(
              "Color format range defined is not correct. Range start is bigger than end.");
        }
        if (t === n) {
          throw new Error(
              "Color format range defined is not correct. Range start is the same as end.");
        }
        o = o / i * (n - t) + t
      }
      return o
    }

    function o(e, t, n, o, u) {
      return function (l) {
        var c;
        switch (e) {
          case"red":
            c = i(l.toRGBA().r, o, u, r);
            break;
          case"green":
            c = i(l.toRGBA().g, o, u, r);
            break;
          case"blue":
            c = i(l.toRGBA().b, o, u, r);
            break;
          case"alpha":
            c = i(l.toRGBA().a, o, u, r);
            break;
          case"hue":
            c = i(l.toHSLA().h, o, u, s);
            break;
          case"saturation":
            c = i(l.toHSLA().s, o, u, a);
            break;
          case"luminosity":
            c = i(l.toHSLA().l, o, u, a)
        }
        if (void 0 === c) {
          throw new Error(
              e + " is not supported as a color format.");
        }
        var d;
        return "f" === n ? (t = t || 2, d = c.toFixed(t)) : "x" === n || "X"
        === n ? (2 !== (d = i(c, o, u, r).toString(16)).length && (d = "0"
            + d), "X" === n && (d = d.toUpperCase())) : d = c.toFixed(
            0), d.toString()
      }
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var r = 255, s = 360, a = 1, u = function () {
      function e(e) {
        this.tree = [], this.parse(e)
      }

      return e.prototype.parse = function (t) {
        for (var i = e.PATTERN.exec(t), r = 0; null !== i;) {
          var s = i.index;
          r < s && this.tree.push(n(t.substring(r, s)));
          var a = i[1];
          if (!a) {
            throw new Error(a + " is not defined.");
          }
          var u = parseInt(i[2]), l = i[3], c = parseInt(i[4]),
              d = parseInt(i[5]);
          this.tree.push(o(a, u, l, c, d)), r = s
              + i[0].length, i = e.PATTERN.exec(t)
        }
        this.tree.push(n(t.substring(r, t.length)))
      }, e.prototype.toString = function (e) {
        var t = [];
        return this.tree.forEach(function (n) {
          t.push(n(e))
        }), t.join("")
      }, e.PATTERN = /{(\w+)(?::(\d*)(\w)+(?:\[(\d+)-(\d+)\])?)?}/g, e
    }();
    t.ColorFormatter = u
  }),define(d[248], h([1, 0, 7, 17, 18, 10]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.getColors = function (e) {
      var t = [],
          s = i.ColorProviderRegistry.ordered(e).reverse().map(function (n) {
            return o.asWinJsPromise(function (t) {
              return n.provideColorRanges(e, t)
            }).then(function (e) {
              Array.isArray(e) && (t = t.concat(e))
            }, r.onUnexpectedExternalError)
          });
      return n.TPromise.join(s).then(function () {
        return t
      })
    }
  }),define(d[189], h([1, 0, 59, 12, 2, 22, 43]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function () {
          function e(e) {
            this._selection = e, this._usedEndToken = null
          }

          return e._haystackHasNeedleAtOffset = function (e, t, n) {
            if (n < 0) {
              return !1;
            }
            var i = t.length;
            if (n + i > e.length) {
              return !1;
            }
            for (var o = 0; o < i; o++) {
              if (e.charCodeAt(n + o)
                  !== t.charCodeAt(o)) {
                return !1;
              }
            }
            return !0
          }, e.prototype._createOperationsForBlockComment = function (t, n, i,
              r) {
            var s, a = t.startLineNumber, u = t.startColumn,
                l = t.endLineNumber, c = t.endColumn,
                d = n.blockCommentStartToken, h = n.blockCommentEndToken,
                p = i.getLineContent(a).lastIndexOf(d, u - 1 + d.length),
                f = i.getLineContent(l).indexOf(h, c - 1 - h.length);
            -1 !== p && -1 !== f ? (32 === i.getLineContent(a).charCodeAt(
                    p + d.length) && (d += " "), 32 === i.getLineContent(
                    l).charCodeAt(f - 1) && (h = " "
                    + h, f -= 1), s = e._createRemoveBlockCommentOperations(
                    new o.Range(a, p + 1 + d.length, l, f + 1), d, h))
                : (s = e._createAddBlockCommentOperations(t, d,
                    h), this._usedEndToken = 1 === s.length ? h : null);
            for (var g = 0; g < s.length; g++) {
              r.addTrackedEditOperation(
                  s[g].range, s[g].text)
            }
          }, e._createRemoveBlockCommentOperations = function (e, t, i) {
            var r = [];
            return o.Range.isEmpty(e) ? r.push(n.EditOperation.delete(
                new o.Range(e.startLineNumber, e.startColumn - t.length,
                    e.endLineNumber, e.endColumn + i.length))) : (r.push(
                n.EditOperation.delete(
                    new o.Range(e.startLineNumber, e.startColumn - t.length,
                        e.startLineNumber, e.startColumn))), r.push(
                n.EditOperation.delete(
                    new o.Range(e.endLineNumber, e.endColumn, e.endLineNumber,
                        e.endColumn + i.length)))), r
          }, e._createAddBlockCommentOperations = function (e, t, r) {
            var s = [];
            return o.Range.isEmpty(e) ? s.push(n.EditOperation.replace(
                new o.Range(e.startLineNumber, e.startColumn, e.endLineNumber,
                    e.endColumn), t + "  " + r)) : (s.push(
                n.EditOperation.insert(
                    new i.Position(e.startLineNumber, e.startColumn),
                    t + " ")), s.push(n.EditOperation.insert(
                new i.Position(e.endLineNumber, e.endColumn), " " + r))), s
          }, e.prototype.getEditOperations = function (e, t) {
            var n = this._selection.startLineNumber,
                i = this._selection.startColumn,
                r = this._selection.endLineNumber,
                a = this._selection.endColumn;
            e.forceTokenization(n);
            var u = e.getLanguageIdAtPosition(n, i),
                l = s.LanguageConfigurationRegistry.getComments(u);
            l && l.blockCommentStartToken && l.blockCommentEndToken
            && this._createOperationsForBlockComment(new o.Range(n, i, r, a), l,
                e, t)
          }, e.prototype.computeCursorState = function (e, t) {
            var n = t.getInverseEditOperations();
            if (2 === n.length) {
              var i = n[0], o = n[1];
              return new r.Selection(i.range.endLineNumber, i.range.endColumn,
                  o.range.startLineNumber, o.range.startColumn)
            }
            var s = n[0].range,
                a = this._usedEndToken ? -this._usedEndToken.length - 1 : 0;
            return new r.Selection(s.endLineNumber, s.endColumn + a,
                s.endLineNumber, s.endColumn + a)
          }, e
        }();
        t.BlockCommentCommand = a
      }),define(d[250], h([1, 0, 9, 59, 12, 2, 22, 189, 43]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        !function (e) {
          e[e.Toggle = 0] = "Toggle", e[e.ForceAdd = 1] = "ForceAdd", e[e.ForceRemove = 2] = "ForceRemove"
        }(t.Type || (t.Type = {}));
        var l = function () {
          function e(e, t, n) {
            this._selection = e, this._tabSize = t, this._type = n, this._deltaColumn = 0
          }

          return e._gatherPreflightCommentStrings = function (e, t, n) {
            e.forceTokenization(t);
            var i = e.getLanguageIdAtPosition(t, 1),
                o = u.LanguageConfigurationRegistry.getComments(i),
                r = o ? o.lineCommentToken : null;
            if (!r) {
              return null;
            }
            for (var s = [], a = 0, l = n - t + 1; a < l; a++) {
              s[a] = {
                ignore: !1,
                commentStr: r,
                commentStrOffset: 0,
                commentStrLength: r.length
              };
            }
            return s
          }, e._analyzeLines = function (e, t, i, o) {
            var r, s, u, l, c, d, h, p, f = !0;
            for (h = 0 === e || 1 !== e, l = 0, c = i.length; l < c;
                l++) {
              r = i[l], d = o + l, p = t.getLineContent(d), -1
              !== (s = n.firstNonWhitespaceIndex(p))
                  ? (f = !1, r.ignore = !1, r.commentStrOffset = s, h
                  && !a.BlockCommentCommand._haystackHasNeedleAtOffset(p,
                      r.commentStr, s) && (0 === e ? h = !1 : 1 === e
                      || (r.ignore = !0)), h && (u = s + r.commentStrLength)
                  < p.length && 32 === p.charCodeAt(u)
                  && (r.commentStrLength += 1))
                  : (r.ignore = !0, r.commentStrOffset = p.length);
            }
            if (0 === e && f) {
              for (h = !1, l = 0, c = i.length; l < c;
                  l++) {
                i[l].ignore = !1;
              }
            }
            return {supported: !0, shouldRemoveComments: h, lines: i}
          }, e._gatherPreflightData = function (t, n, i, o) {
            var r = e._gatherPreflightCommentStrings(n, i, o);
            return null === r ? {
              supported: !1,
              shouldRemoveComments: !1,
              lines: null
            } : e._analyzeLines(t, n, r, i)
          }, e.prototype._executeLineComments = function (t, n, i, r) {
            var s;
            i.shouldRemoveComments ? s = e._createRemoveLineCommentsOperations(
                i.lines, r.startLineNumber) : (e._normalizeInsertionPoint(t,
                i.lines, r.startLineNumber,
                this._tabSize), s = e._createAddLineCommentsOperations(i.lines,
                r.startLineNumber));
            for (var a = new o.Position(r.positionLineNumber, r.positionColumn),
                u = 0, l = s.length; u < l; u++) {
              n.addEditOperation(s[u].range,
                  s[u].text), s[u].range.isEmpty()
              && s[u].range.getStartPosition().equals(a)
              && (this._deltaColumn = s[u].text.length);
            }
            this._selectionId = n.trackSelection(r)
          }, e.prototype._attemptRemoveBlockComment = function (e, t, n, i) {
            var o = t.startLineNumber, s = t.endLineNumber,
                u = i.length + Math.max(
                    e.getLineFirstNonWhitespaceColumn(t.startLineNumber),
                    t.startColumn),
                l = e.getLineContent(o).lastIndexOf(n, u - 1),
                c = e.getLineContent(s).indexOf(i, t.endColumn - 1 - n.length);
            return -1 !== l && -1 === c && (c = e.getLineContent(o).indexOf(i,
                l + n.length), s = o), -1 === l && -1 !== c
            && (l = e.getLineContent(s).lastIndexOf(n, c), o = s), !t.isEmpty()
            || -1 !== l && -1 !== c || -1 !== (l = e.getLineContent(o).indexOf(
                n)) && (c = e.getLineContent(o).indexOf(i, l + n.length)), -1
            !== l && 32 === e.getLineContent(o).charCodeAt(l + n.length)
            && (n += " "), -1 !== c && 32 === e.getLineContent(s).charCodeAt(
                c - 1) && (i = " " + i, c -= 1), -1 !== l && -1 !== c
                ? a.BlockCommentCommand._createRemoveBlockCommentOperations(
                    new r.Range(o, l + n.length + 1, s, c + 1), n, i) : null
          }, e.prototype._executeBlockComment = function (e, t, i) {
            e.forceTokenization(i.startLineNumber);
            var o = e.getLanguageIdAtPosition(i.startLineNumber, i.startColumn),
                s = u.LanguageConfigurationRegistry.getComments(o);
            if (s && s.blockCommentStartToken && s.blockCommentEndToken) {
              var l = s.blockCommentStartToken, c = s.blockCommentEndToken,
                  d = this._attemptRemoveBlockComment(e, i, l, c);
              if (!d) {
                if (i.isEmpty()) {
                  var h = e.getLineContent(i.startLineNumber),
                      p = n.firstNonWhitespaceIndex(h);
                  -1 === p
                  && (p = h.length), d = a.BlockCommentCommand._createAddBlockCommentOperations(
                      new r.Range(i.startLineNumber, p + 1, i.startLineNumber,
                          h.length + 1), l, c)
                } else {
                  d = a.BlockCommentCommand._createAddBlockCommentOperations(
                      new r.Range(i.startLineNumber,
                          e.getLineFirstNonWhitespaceColumn(i.startLineNumber),
                          i.endLineNumber, e.getLineMaxColumn(i.endLineNumber)),
                      l, c);
                }
                1 === d.length && (this._deltaColumn = l.length + 1)
              }
              this._selectionId = t.trackSelection(i);
              for (var f = 0; f < d.length; f++) {
                t.addEditOperation(d[f].range,
                    d[f].text)
              }
            }
          }, e.prototype.getEditOperations = function (t, n) {
            var i = this._selection;
            this._moveEndPositionDown = !1, i.startLineNumber < i.endLineNumber
            && 1 === i.endColumn
            && (this._moveEndPositionDown = !0, i = i.setEndPosition(
                i.endLineNumber - 1, t.getLineMaxColumn(i.endLineNumber - 1)));
            var o = e._gatherPreflightData(this._type, t, i.startLineNumber,
                i.endLineNumber);
            return o.supported ? this._executeLineComments(t, n, o, i)
                : this._executeBlockComment(t, n, i)
          }, e.prototype.computeCursorState = function (e, t) {
            var n = t.getTrackedSelection(this._selectionId);
            return this._moveEndPositionDown && (n = n.setEndPosition(
                n.endLineNumber + 1, 1)), new s.Selection(n.startLineNumber,
                n.startColumn + this._deltaColumn, n.endLineNumber,
                n.endColumn + this._deltaColumn)
          }, e._createRemoveLineCommentsOperations = function (e, t) {
            var n, o, s, a = [];
            for (n = 0, o = e.length; n < o; n++) {
              (s = e[n]).ignore || a.push(
                  i.EditOperation.delete(
                      new r.Range(t + n, s.commentStrOffset + 1, t + n,
                          s.commentStrOffset + s.commentStrLength + 1)));
            }
            return a
          }, e._createAddLineCommentsOperations = function (e, t) {
            var n, r, s, a = [];
            for (n = 0, r = e.length; n < r; n++) {
              (s = e[n]).ignore || a.push(
                  i.EditOperation.insert(
                      new o.Position(t + n, s.commentStrOffset + 1),
                      s.commentStr + " "));
            }
            return a
          }, e.nextVisibleColumn = function (e, t, n, i) {
            return n ? e + (t - e % t) : e + i
          }, e._normalizeInsertionPoint = function (t, n, i, o) {
            var r, s, a, u, l, c, d = Number.MAX_VALUE;
            for (r = 0, s = n.length; r < s; r++) {
              if (!n[r].ignore) {
                for (a = t.getLineContent(
                    i + r), c = 0, u = 0, l = n[r].commentStrOffset;
                    c < d && u < l; u++) {
                  c = e.nextVisibleColumn(c, o,
                      9 === a.charCodeAt(u), 1);
                }
                c < d && (d = c)
              }
            }
            for (d = Math.floor(d / o) * o, r = 0, s = n.length; r < s;
                r++) {
              if (!n[r].ignore) {
                for (a = t.getLineContent(
                    i + r), c = 0, u = 0, l = n[r].commentStrOffset;
                    c < d && u < l; u++) {
                  c = e.nextVisibleColumn(c, o,
                      9 === a.charCodeAt(u), 1);
                }
                n[r].commentStrOffset = c > d ? u - 1 : u
              }
            }
          }, e
        }();
        t.LineCommentCommand = l
      }),define(d[251], h([1, 0, 22, 2]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e(e, t, n) {
        this.selection = e, this.targetPosition = t, this.copy = n
      }

      return e.prototype.getEditOperations = function (e, t) {
        var o = e.getValueInRange(this.selection);
        this.copy || t.addEditOperation(this.selection,
            null), t.addEditOperation(
            new i.Range(this.targetPosition.lineNumber,
                this.targetPosition.column, this.targetPosition.lineNumber,
                this.targetPosition.column),
            o), !this.selection.containsPosition(this.targetPosition)
        || this.copy && (this.selection.getEndPosition().equals(
            this.targetPosition) || this.selection.getStartPosition().equals(
            this.targetPosition)) ? this.copy
                ? this.targetSelection = new n.Selection(
                    this.targetPosition.lineNumber, this.targetPosition.column,
                    this.selection.endLineNumber - this.selection.startLineNumber
                    + this.targetPosition.lineNumber,
                    this.selection.startLineNumber === this.selection.endLineNumber
                        ? this.targetPosition.column + this.selection.endColumn
                        - this.selection.startColumn : this.selection.endColumn)
                : this.targetPosition.lineNumber > this.selection.endLineNumber
                    ? this.targetSelection = new n.Selection(
                        this.targetPosition.lineNumber
                        - this.selection.endLineNumber
                        + this.selection.startLineNumber,
                        this.targetPosition.column, this.targetPosition.lineNumber,
                        this.selection.startLineNumber
                        === this.selection.endLineNumber
                            ? this.targetPosition.column + this.selection.endColumn
                            - this.selection.startColumn : this.selection.endColumn)
                    : this.targetPosition.lineNumber < this.selection.endLineNumber
                        ? this.targetSelection = new n.Selection(
                            this.targetPosition.lineNumber,
                            this.targetPosition.column,
                            this.targetPosition.lineNumber
                            + this.selection.endLineNumber
                            - this.selection.startLineNumber,
                            this.selection.startLineNumber
                            === this.selection.endLineNumber
                                ? this.targetPosition.column
                                + this.selection.endColumn
                                - this.selection.startColumn
                                : this.selection.endColumn)
                        : this.selection.endColumn <= this.targetPosition.column
                            ? this.targetSelection = new n.Selection(
                                this.targetPosition.lineNumber
                                - this.selection.endLineNumber
                                + this.selection.startLineNumber,
                                (this.selection.startLineNumber, this.selection.endLineNumber, this.targetPosition.column
                                - this.selection.endColumn
                                + this.selection.startColumn),
                                this.targetPosition.lineNumber,
                                this.selection.startLineNumber
                                === this.selection.endLineNumber
                                    ? this.targetPosition.column
                                    : this.selection.endColumn)
                            : this.targetSelection = new n.Selection(
                                this.targetPosition.lineNumber
                                - this.selection.endLineNumber
                                + this.selection.startLineNumber,
                                this.targetPosition.column,
                                this.targetPosition.lineNumber,
                                this.targetPosition.column
                                + this.selection.endColumn
                                - this.selection.startColumn)
            : this.targetSelection = this.selection
      }, e.prototype.computeCursorState = function (e, t) {
        return this.targetSelection
      }, e
    }();
    t.DragAndDropCommand = o
  }),define(d[252], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.getSelectionSearchString = function (e) {
      var t = e.getSelection();
      if (t.startLineNumber === t.endLineNumber) {
        if (!t.isEmpty()) {
          return e.getModel().getValueInRange(t);
        }
        var n = e.getModel().getWordAtPosition(t.getStartPosition());
        if (n) {
          return n.word
        }
      }
      return null
    }
  }),define(d[253], h([1, 0, 38, 2]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e() {
        this._searchString = "", this._replaceString = "", this._isRevealed = !1, this._isReplaceRevealed = !1, this._isRegex = !1, this._wholeWord = !1, this._matchCase = !1, this._searchScope = null, this._matchesPosition = 0, this._matchesCount = 0, this._currentMatch = null, this._eventEmitter = new n.EventEmitter
      }

      return Object.defineProperty(e.prototype, "searchString", {
        get: function () {
          return this._searchString
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "replaceString", {
        get: function () {
          return this._replaceString
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "isRevealed", {
        get: function () {
          return this._isRevealed
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "isReplaceRevealed", {
        get: function () {
          return this._isReplaceRevealed
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "isRegex", {
        get: function () {
          return this._isRegex
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "wholeWord", {
        get: function () {
          return this._wholeWord
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "matchCase", {
        get: function () {
          return this._matchCase
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "searchScope", {
        get: function () {
          return this._searchScope
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "matchesPosition", {
        get: function () {
          return this._matchesPosition
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "matchesCount", {
        get: function () {
          return this._matchesCount
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "currentMatch", {
        get: function () {
          return this._currentMatch
        }, enumerable: !0, configurable: !0
      }), e.prototype.dispose = function () {
        this._eventEmitter.dispose()
      }, e.prototype.addChangeListener = function (t) {
        return this._eventEmitter.addListener(e._CHANGED_EVENT, t)
      }, e.prototype.changeMatchInfo = function (t, n, o) {
        var r = {
          moveCursor: !1,
          updateHistory: !1,
          searchString: !1,
          replaceString: !1,
          isRevealed: !1,
          isReplaceRevealed: !1,
          isRegex: !1,
          wholeWord: !1,
          matchCase: !1,
          searchScope: !1,
          matchesPosition: !1,
          matchesCount: !1,
          currentMatch: !1
        }, s = !1;
        0 === n && (t = 0), t > n && (t = n), this._matchesPosition !== t
        && (this._matchesPosition = t, r.matchesPosition = !0, s = !0), this._matchesCount
        !== n && (this._matchesCount = n, r.matchesCount = !0, s = !0), void 0
        !== o && (i.Range.equalsRange(this._currentMatch, o)
            || (this._currentMatch = o, r.currentMatch = !0, s = !0)), s
        && this._eventEmitter.emit(e._CHANGED_EVENT, r)
      }, e.prototype.change = function (t, n, o) {
        void 0 === o && (o = !0);
        var r = {
          moveCursor: n,
          updateHistory: o,
          searchString: !1,
          replaceString: !1,
          isRevealed: !1,
          isReplaceRevealed: !1,
          isRegex: !1,
          wholeWord: !1,
          matchCase: !1,
          searchScope: !1,
          matchesPosition: !1,
          matchesCount: !1,
          currentMatch: !1
        }, s = !1;
        void 0 !== t.searchString && this._searchString !== t.searchString
        && (this._searchString = t.searchString, r.searchString = !0, s = !0), void 0
        !== t.replaceString && this._replaceString !== t.replaceString
        && (this._replaceString = t.replaceString, r.replaceString = !0, s = !0), void 0
        !== t.isRevealed && this._isRevealed !== t.isRevealed
        && (this._isRevealed = t.isRevealed, r.isRevealed = !0, s = !0), void 0
        !== t.isReplaceRevealed && this._isReplaceRevealed
        !== t.isReplaceRevealed
        && (this._isReplaceRevealed = t.isReplaceRevealed, r.isReplaceRevealed = !0, s = !0), void 0
        !== t.isRegex && this._isRegex !== t.isRegex
        && (this._isRegex = t.isRegex, r.isRegex = !0, s = !0), void 0
        !== t.wholeWord && this._wholeWord !== t.wholeWord
        && (this._wholeWord = t.wholeWord, r.wholeWord = !0, s = !0), void 0
        !== t.matchCase && this._matchCase !== t.matchCase
        && (this._matchCase = t.matchCase, r.matchCase = !0, s = !0), void 0
        !== t.searchScope && (i.Range.equalsRange(this._searchScope,
                t.searchScope)
            || (this._searchScope = t.searchScope, r.searchScope = !0, s = !0)), s
        && this._eventEmitter.emit(e._CHANGED_EVENT, r)
      }, e._CHANGED_EVENT = "changed", e
    }();
    t.FindReplaceState = o
  }),define(d[254], h([1, 0, 2]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t, n) {
        this._editorSelection = e, this._ranges = t, this._replaceStrings = n
      }

      return e.prototype.getEditOperations = function (e, t) {
        if (this._ranges.length > 0) {
          for (var i = [], o = 0; o < this._ranges.length; o++) {
            i.push(
                {range: this._ranges[o], text: this._replaceStrings[o]});
          }
          i.sort(function (e, t) {
            return n.Range.compareRangesUsingStarts(e.range, t.range)
          });
          for (var r = [], s = i[0], o = 1; o < i.length;
              o++) {
            s.range.endLineNumber === i[o].range.startLineNumber
            && s.range.endColumn === i[o].range.startColumn
                ? (s.range = s.range.plusRange(i[o].range), s.text = s.text
                    + i[o].text) : (r.push(s), s = i[o]);
          }
          r.push(s);
          for (o = 0; o < r.length; o++) {
            t.addEditOperation(r[o].range,
                r[o].text)
          }
        }
        this._trackedEditorSelectionId = t.trackSelection(this._editorSelection)
      }, e.prototype.computeCursorState = function (e, t) {
        return t.getTrackedSelection(this._trackedEditorSelectionId)
      }, e
    }();
    t.ReplaceAllCommand = i
  }),define(d[255], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e(e) {
        e && 0 !== e.length ? 1 === e.length && null !== e[0].staticValue
                ? (this._staticValue = e[0].staticValue, this._pieces = null)
                : (this._staticValue = null, this._pieces = e)
            : (this._staticValue = "", this._pieces = null)
      }

      return e.fromStaticValue = function (t) {
        return new e([i.staticValue(t)])
      }, Object.defineProperty(e.prototype, "hasReplacementPatterns", {
        get: function () {
          return null === this._staticValue
        }, enumerable: !0, configurable: !0
      }), e.prototype.buildReplaceString = function (t) {
        if (null !== this._staticValue) {
          return this._staticValue;
        }
        for (var n = "", i = 0, o = this._pieces.length; i < o; i++) {
          var r = this._pieces[i];
          null === r.staticValue ? n += e._substitute(r.matchIndex, t)
              : n += r.staticValue
        }
        return n
      }, e._substitute = function (e, t) {
        if (0 === e) {
          return t[0];
        }
        for (var n = ""; e > 0;) {
          if (e < t.length) {
            return (t[e] || "") + n;
          }
          n = String(e % 10) + n, e = Math.floor(e / 10)
        }
        return "$" + n
      }, e
    }();
    t.ReplacePattern = n;
    var i = function () {
      function e(e, t) {
        this.staticValue = e, this.matchIndex = t
      }

      return e.staticValue = function (t) {
        return new e(t, -1)
      }, e.matchIndex = function (t) {
        return new e(null, t)
      }, e
    }();
    t.ReplacePiece = i;
    var o = function () {
      function e(e) {
        this._source = e, this._lastCharIndex = 0, this._result = [], this._resultLen = 0, this._currentStaticPiece = ""
      }

      return e.prototype.emitUnchanged = function (e) {
        this._emitStatic(this._source.substring(this._lastCharIndex,
            e)), this._lastCharIndex = e
      }, e.prototype.emitStatic = function (e, t) {
        this._emitStatic(e), this._lastCharIndex = t
      }, e.prototype._emitStatic = function (e) {
        0 !== e.length && (this._currentStaticPiece += e)
      }, e.prototype.emitMatchIndex = function (e, t) {
        0 !== this._currentStaticPiece.length
        && (this._result[this._resultLen++] = i.staticValue(
            this._currentStaticPiece), this._currentStaticPiece = ""), this._result[this._resultLen++] = i.matchIndex(
            e), this._lastCharIndex = t
      }, e.prototype.finalize = function () {
        return this.emitUnchanged(this._source.length), 0
        !== this._currentStaticPiece.length
        && (this._result[this._resultLen++] = i.staticValue(
            this._currentStaticPiece), this._currentStaticPiece = ""), new n(
            this._result)
      }, e
    }();
    t.parseReplaceString = function (e) {
      if (!e || 0 === e.length) {
        return new n(null);
      }
      for (var t = new o(e), i = 0, r = e.length; i < r; i++) {
        var s = e.charCodeAt(i);
        if (92 !== s) {
          if (36 === s) {
            if (++i >= r) {
              break;
            }
            var a = e.charCodeAt(i);
            if (36 === a) {
              t.emitUnchanged(i - 1), t.emitStatic("$", i + 1);
              continue
            }
            if (48 === a || 38 === a) {
              t.emitUnchanged(i - 1), t.emitMatchIndex(0, i + 1);
              continue
            }
            if (49 <= a && a <= 57) {
              var u = a - 48;
              if (i + 1 < r) {
                var l = e.charCodeAt(i + 1);
                if (48 <= l && l <= 57) {
                  i++, u = 10 * u + (l - 48), t.emitUnchanged(
                      i - 2), t.emitMatchIndex(u, i + 1);
                  continue
                }
              }
              t.emitUnchanged(i - 1), t.emitMatchIndex(u, i + 1);
              continue
            }
          }
        } else {
          if (++i >= r) {
            break;
          }
          switch (a = e.charCodeAt(i)) {
            case 92:
              t.emitUnchanged(i - 1), t.emitStatic("\\", i + 1);
              break;
            case 110:
              t.emitUnchanged(i - 1), t.emitStatic("\n", i + 1);
              break;
            case 116:
              t.emitUnchanged(i - 1), t.emitStatic("\t", i + 1)
          }
        }
      }
      return t.finalize()
    }
  }),define(d[256], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.ID = "editor.contrib.folding"
  }),define(d[257], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.computeRanges = function (e) {
      return e.getIndentRanges()
    }, t.limitByIndent = function (e, t) {
      if (e.length <= t) {
        return e;
      }
      var n = [];
      e.forEach(function (e) {
        e.indent < 1e3 && (n[e.indent] = (n[e.indent] || 0) + 1)
      });
      for (var i = n.length, o = 0; o < n.length; o++) {
        if (n[o] && (t -= n[o])
            < 0) {
          i = o;
          break
        }
      }
      return e.filter(function (e) {
        return e.indent < i
      })
    }
  }),define(d[258], h([1, 0, 9, 2]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e(e, t) {
        this._initialSelection = t, this._edits = [], this._newEol = void 0;
        for (var n = 0, i = e; n < i.length; n++) {
          var o = i[n];
          "number" == typeof o.eol && (this._newEol = o.eol), o.range
          && "string" == typeof o.text && this._edits.push(o)
        }
      }

      return e.execute = function (t, n) {
        var i = new e(n, t.getSelection());
        "number" == typeof i._newEol && t.getModel().setEOL(
            i._newEol), t.pushUndoStop(), t.executeCommand("formatEditsCommand",
            i), t.pushUndoStop()
      }, e.prototype.getEditOperations = function (t, n) {
        for (var o = 0, r = this._edits; o < r.length; o++) {
          var s = r[o];
          null !== e.trimEdit(s, t) && n.addEditOperation(i.Range.lift(s.range),
              s.text)
        }
        var a = !1;
        Array.isArray(this._edits) && 1 === this._edits.length
        && this._initialSelection.isEmpty() && (this._edits[0].range.startColumn
        === this._initialSelection.endColumn
        && this._edits[0].range.startLineNumber
        === this._initialSelection.endLineNumber
            ? (a = !0, this._selectionId = n.trackSelection(
                this._initialSelection, !0)) : this._edits[0].range.endColumn
            === this._initialSelection.startColumn
            && this._edits[0].range.endLineNumber
            === this._initialSelection.startLineNumber
            && (a = !0, this._selectionId = n.trackSelection(
                this._initialSelection, !1))), a
        || (this._selectionId = n.trackSelection(this._initialSelection))
      }, e.prototype.computeCursorState = function (e, t) {
        return t.getTrackedSelection(this._selectionId)
      }, e.fixLineTerminators = function (e, t) {
        e.text = e.text.replace(/\r\n|\r|\n/g, t.getEOL())
      }, e.trimEdit = function (e, t) {
        return this.fixLineTerminators(e, t), this._trimEdit(
            t.validateRange(e.range), e.text, e.forceMoveMarkers, t)
      }, e._trimEdit = function (e, t, o, r) {
        var s = r.getValueInRange(e), a = n.commonPrefixLength(t, s);
        if (a === s.length && a === t.length) {
          return null;
        }
        if (a > 0) {
          var u = r.modifyPosition(e.getStartPosition(), a);
          e = new i.Range(u.lineNumber, u.column, e.endLineNumber,
              e.endColumn), t = t.substring(a), s = s.substr(a)
        }
        var l = n.commonSuffixLength(t, s);
        if (l > 0) {
          var c = r.modifyPosition(e.getEndPosition(), -l);
          e = new i.Range(e.startLineNumber, e.startColumn, c.lineNumber,
              c.column), t = t.substring(0, t.length - l), s = s.substring(0,
              s.length - l)
        }
        return {text: t, range: e, forceMoveMarkers: o}
      }, e
    }();
    t.EditOperationsCommand = o
  }),define(d[192], h([1, 0, 28, 3, 11, 15, 171]), function (e, t, n, i, o, r) {
    "use strict";

    function s(e, t) {
      return !!e[t]
    }

    function a(e) {
      return "altKey" === e ? r.isMacintosh ? new c(57, "metaKey", 6, "altKey")
          : new c(5, "ctrlKey", 6, "altKey") : r.isMacintosh ? new c(6,
          "altKey", 57, "metaKey") : new c(6, "altKey", 5, "ctrlKey")
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var u = function () {
      return function (e, t) {
        this.target = e.target, this.hasTriggerModifier = s(e.event,
            t.triggerModifier), this.hasSideBySideModifier = s(e.event,
            t.triggerSideBySideModifier), this.isNoneOrSingleMouseDown = n.isIE
            || e.event.detail <= 1
      }
    }();
    t.ClickLinkMouseEvent = u;
    var l = function () {
      return function (e, t) {
        this.keyCodeIsTriggerKey = e.keyCode
            === t.triggerKey, this.keyCodeIsSideBySideKey = e.keyCode
            === t.triggerSideBySideKey, this.hasTriggerModifier = s(e,
            t.triggerModifier)
      }
    }();
    t.ClickLinkKeyboardEvent = l;
    var c = function () {
      function e(e, t, n, i) {
        this.triggerKey = e, this.triggerModifier = t, this.triggerSideBySideKey = n, this.triggerSideBySideModifier = i
      }

      return e.prototype.equals = function (e) {
        return this.triggerKey === e.triggerKey && this.triggerModifier
            === e.triggerModifier && this.triggerSideBySideKey
            === e.triggerSideBySideKey && this.triggerSideBySideModifier
            === e.triggerSideBySideModifier
      }, e
    }();
    t.ClickLinkOptions = c;
    var d = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n._onMouseMoveOrRelevantKeyDown = n._register(
            new o.Emitter), n.onMouseMoveOrRelevantKeyDown = n._onMouseMoveOrRelevantKeyDown.event, n._onExecute = n._register(
            new o.Emitter), n.onExecute = n._onExecute.event, n._onCancel = n._register(
            new o.Emitter), n.onCancel = n._onCancel.event, n._editor = t, n._opts = a(
            n._editor.getConfiguration().multiCursorModifier), n.lastMouseMoveEvent = null, n.hasTriggerKeyOnMouseDown = !1, n._register(
            n._editor.onDidChangeConfiguration(function (e) {
              if (e.multiCursorModifier) {
                var t = a(n._editor.getConfiguration().multiCursorModifier);
                if (n._opts.equals(t)) {
                  return;
                }
                n._opts = t, n.lastMouseMoveEvent = null, n.hasTriggerKeyOnMouseDown = !1, n._onCancel.fire()
              }
            })), n._register(n._editor.onMouseMove(function (e) {
          return n.onEditorMouseMove(new u(e, n._opts))
        })), n._register(n._editor.onMouseDown(function (e) {
          return n.onEditorMouseDown(new u(e, n._opts))
        })), n._register(n._editor.onMouseUp(function (e) {
          return n.onEditorMouseUp(new u(e, n._opts))
        })), n._register(n._editor.onKeyDown(function (e) {
          return n.onEditorKeyDown(new l(e, n._opts))
        })), n._register(n._editor.onKeyUp(function (e) {
          return n.onEditorKeyUp(new l(e, n._opts))
        })), n._register(n._editor.onMouseDrag(function () {
          return n.resetHandler()
        })), n._register(n._editor.onDidChangeCursorSelection(function (e) {
          return n.onDidChangeCursorSelection(e)
        })), n._register(n._editor.onDidChangeModel(function (e) {
          return n.resetHandler()
        })), n._register(n._editor.onDidChangeModelContent(function () {
          return n.resetHandler()
        })), n._register(n._editor.onDidScrollChange(function (e) {
          (e.scrollTopChanged || e.scrollLeftChanged) && n.resetHandler()
        })), n
      }

      return f(t, e), t.prototype.onDidChangeCursorSelection = function (e) {
        e.selection && e.selection.startColumn !== e.selection.endColumn
        && this.resetHandler()
      }, t.prototype.onEditorMouseMove = function (e) {
        this.lastMouseMoveEvent = e, this._onMouseMoveOrRelevantKeyDown.fire(
            [e, null])
      }, t.prototype.onEditorMouseDown = function (e) {
        this.hasTriggerKeyOnMouseDown = e.hasTriggerModifier
      }, t.prototype.onEditorMouseUp = function (e) {
        this.hasTriggerKeyOnMouseDown && this._onExecute.fire(e)
      }, t.prototype.onEditorKeyDown = function (e) {
        this.lastMouseMoveEvent && (e.keyCodeIsTriggerKey
            || e.keyCodeIsSideBySideKey && e.hasTriggerModifier)
            ? this._onMouseMoveOrRelevantKeyDown.fire(
                [this.lastMouseMoveEvent, e]) : e.hasTriggerModifier
            && this._onCancel.fire()
      }, t.prototype.onEditorKeyUp = function (e) {
        e.keyCodeIsTriggerKey && this._onCancel.fire()
      }, t.prototype.resetHandler = function () {
        this.lastMouseMoveEvent = null, this.hasTriggerKeyOnMouseDown = !1, this._onCancel.fire()
      }, t
    }(i.Disposable);
    t.ClickLinkGesture = d
  }),define(d[195], h([1, 0, 18, 10]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o;
    !function (e) {
      e[e.IDLE = 0] = "IDLE", e[e.FIRST_WAIT = 1] = "FIRST_WAIT", e[e.SECOND_WAIT = 2] = "SECOND_WAIT", e[e.WAITING_FOR_ASYNC_COMPUTATION = 3] = "WAITING_FOR_ASYNC_COMPUTATION"
    }(o || (o = {}));
    var r = function () {
      function e(e, t, i, o) {
        var r = this;
        this._computer = e, this._state = 0, this._firstWaitScheduler = new n.RunOnceScheduler(
            function () {
              return r._triggerAsyncComputation()
            }, this._getHoverTimeMillis()
            / 2), this._secondWaitScheduler = new n.RunOnceScheduler(
            function () {
              return r._triggerSyncComputation()
            }, this._getHoverTimeMillis()
            / 2), this._loadingMessageScheduler = new n.RunOnceScheduler(
            function () {
              return r._showLoadingMessage()
            }, 3
            * this._getHoverTimeMillis()), this._asyncComputationPromise = null, this._asyncComputationPromiseDone = !1, this._completeCallback = t, this._errorCallback = i, this._progressCallback = o
      }

      return e.prototype.getComputer = function () {
        return this._computer
      }, e.prototype._getHoverTimeMillis = function () {
        return this._computer.getHoverTimeMillis
            ? this._computer.getHoverTimeMillis() : e.HOVER_TIME
      }, e.prototype._triggerAsyncComputation = function () {
        var e = this;
        this._state = 2, this._secondWaitScheduler.schedule(), this._computer.computeAsync
            ? (this._asyncComputationPromiseDone = !1, this._asyncComputationPromise = this._computer.computeAsync().then(
                function (t) {
                  e._asyncComputationPromiseDone = !0, e._withAsyncResult(t)
                }, function () {
                  return e._onError
                })) : this._asyncComputationPromiseDone = !0
      }, e.prototype._triggerSyncComputation = function () {
        this._computer.computeSync && this._computer.onResult(
            this._computer.computeSync(), !0), this._asyncComputationPromiseDone
            ? (this._state = 0, this._onComplete(this._computer.getResult()))
            : (this._state = 3, this._onProgress(this._computer.getResult()))
      }, e.prototype._showLoadingMessage = function () {
        3 === this._state && this._onProgress(
            this._computer.getResultWithLoadingMessage())
      }, e.prototype._withAsyncResult = function (e) {
        e && this._computer.onResult(e, !1), 3 === this._state
        && (this._state = 0, this._onComplete(this._computer.getResult()))
      }, e.prototype._onComplete = function (e) {
        this._completeCallback && this._completeCallback(e)
      }, e.prototype._onError = function (e) {
        this._errorCallback ? this._errorCallback(e) : i.onUnexpectedError(e)
      }, e.prototype._onProgress = function (e) {
        this._progressCallback && this._progressCallback(e)
      }, e.prototype.start = function () {
        0 === this._state
        && (this._state = 1, this._firstWaitScheduler.schedule(), this._loadingMessageScheduler.schedule())
      }, e.prototype.cancel = function () {
        this._loadingMessageScheduler.cancel(), 1 === this._state
        && this._firstWaitScheduler.cancel(), 2 === this._state
        && (this._secondWaitScheduler.cancel(), this._asyncComputationPromise
        && (this._asyncComputationPromise.cancel(), this._asyncComputationPromise = null)), 3
        === this._state && this._asyncComputationPromise
        && (this._asyncComputationPromise.cancel(), this._asyncComputationPromise = null), this._state = 0
      }, e.HOVER_TIME = 300, e
    }();
    t.HoverOperation = r
  }),define(d[196], h([1, 0, 4, 12, 25, 41, 63, 3]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var u = function (e) {
          function t(t, n) {
            var i = e.call(this) || this;
            return i.disposables = [], i.allowEditorOverflow = !0, i._id = t, i._editor = n, i._isVisible = !1, i._containerDomNode = document.createElement(
                "div"), i._containerDomNode.className = "monaco-editor-hover hidden", i._containerDomNode.tabIndex = 0, i._domNode = document.createElement(
                "div"), i._domNode.className = "monaco-editor-hover-content", i.scrollbar = new s.DomScrollableElement(
                i._domNode, {}), i.disposables.push(
                i.scrollbar), i._containerDomNode.appendChild(
                i.scrollbar.getDomNode()), i.onkeydown(i._containerDomNode,
                function (e) {
                  e.equals(9) && i.hide()
                }), i._register(
                i._editor.onDidChangeConfiguration(function (e) {
                  e.fontInfo && i.updateFont()
                })), i._editor.onDidLayoutChange(function (e) {
              return i.updateMaxHeight()
            }), i.updateMaxHeight(), i._editor.addContentWidget(
                i), i._showAtPosition = null, i
          }

          return f(t, e), Object.defineProperty(t.prototype, "isVisible", {
            get: function () {
              return this._isVisible
            }, set: function (e) {
              this._isVisible = e, n.toggleClass(this._containerDomNode,
                  "hidden", !this._isVisible)
            }, enumerable: !0, configurable: !0
          }), t.prototype.getId = function () {
            return this._id
          }, t.prototype.getDomNode = function () {
            return this._containerDomNode
          }, t.prototype.showAt = function (e, t) {
            this._showAtPosition = new i.Position(e.lineNumber,
                e.column), this.isVisible = !0, this._editor.layoutContentWidget(
                this), this._editor.render(), this._stoleFocus = t, t
            && this._containerDomNode.focus()
          }, t.prototype.hide = function () {
            this.isVisible
            && (this.isVisible = !1, this._editor.layoutContentWidget(
                this), this._stoleFocus && this._editor.focus())
          }, t.prototype.getPosition = function () {
            return this.isVisible ? {
              position: this._showAtPosition,
              preference: [o.ContentWidgetPositionPreference.ABOVE,
                o.ContentWidgetPositionPreference.BELOW]
            } : null
          }, t.prototype.dispose = function () {
            this._editor.removeContentWidget(
                this), this.disposables = a.dispose(
                this.disposables), e.prototype.dispose.call(this)
          }, t.prototype.updateFont = function () {
            var e = this, t = Array.prototype.slice.call(
                    this._domNode.getElementsByTagName("code")),
                n = Array.prototype.slice.call(
                    this._domNode.getElementsByClassName("code"));
            t.concat(n).forEach(function (t) {
              return e._editor.applyFontInfo(t)
            })
          }, t.prototype.updateContents = function (e) {
            this._domNode.textContent = "", this._domNode.appendChild(
                e), this.updateFont(), this._editor.layoutContentWidget(
                this), this.scrollbar.scanDomNode()
          }, t.prototype.updateMaxHeight = function () {
            var e = Math.max(this._editor.getLayoutInfo().height / 4, 250),
                t = this._editor.getConfiguration().fontInfo, n = t.fontSize,
                i = t.lineHeight;
            this._domNode.style.fontSize = n
                + "px", this._domNode.style.lineHeight = i
                + "px", this._domNode.style.maxHeight = e + "px"
          }, t
        }(r.Widget);
        t.ContentHoverWidget = u;
        var l = function (e) {
          function t(t, n) {
            var i = e.call(this) || this;
            return i._id = t, i._editor = n, i._isVisible = !1, i._domNode = document.createElement(
                "div"), i._domNode.className = "monaco-editor-hover hidden", i._domNode.setAttribute(
                "aria-hidden", "true"), i._domNode.setAttribute("role",
                "presentation"), i._showAtLineNumber = -1, i._register(
                i._editor.onDidChangeConfiguration(function (e) {
                  e.fontInfo && i.updateFont()
                })), i._editor.addOverlayWidget(i), i
          }

          return f(t, e), Object.defineProperty(t.prototype, "isVisible", {
            get: function () {
              return this._isVisible
            }, set: function (e) {
              this._isVisible = e, n.toggleClass(this._domNode, "hidden",
                  !this._isVisible)
            }, enumerable: !0, configurable: !0
          }), t.prototype.getId = function () {
            return this._id
          }, t.prototype.getDomNode = function () {
            return this._domNode
          }, t.prototype.showAt = function (e) {
            this._showAtLineNumber = e, this.isVisible || (this.isVisible = !0);
            var t = this._editor.getLayoutInfo(),
                n = this._editor.getTopForLineNumber(this._showAtLineNumber),
                i = this._editor.getScrollTop(),
                o = this._editor.getConfiguration().lineHeight,
                r = n - i - (this._domNode.clientHeight - o) / 2;
            this._domNode.style.left = t.glyphMarginLeft + t.glyphMarginWidth
                + "px", this._domNode.style.top = Math.max(Math.round(r), 0)
                + "px"
          }, t.prototype.hide = function () {
            this.isVisible && (this.isVisible = !1)
          }, t.prototype.getPosition = function () {
            return null
          }, t.prototype.dispose = function () {
            this._editor.removeOverlayWidget(this), e.prototype.dispose.call(
                this)
          }, t.prototype.updateFont = function () {
            var e = this, t = Array.prototype.slice.call(
                    this._domNode.getElementsByTagName("code")),
                n = Array.prototype.slice.call(
                    this._domNode.getElementsByClassName("code"));
            t.concat(n).forEach(function (t) {
              return e._editor.applyFontInfo(t)
            })
          }, t.prototype.updateContents = function (e) {
            this._domNode.textContent = "", this._domNode.appendChild(
                e), this.updateFont()
          }, t
        }(r.Widget);
        t.GlyphHoverWidget = l
      }),define(d[262], h([1, 0, 22]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t, n) {
        this._editRange = e, this._originalSelection = t, this._text = n
      }

      return e.prototype.getEditOperations = function (e, t) {
        t.addTrackedEditOperation(this._editRange, this._text)
      }, e.prototype.computeCursorState = function (e, t) {
        var i = t.getInverseEditOperations()[0].range;
        return this._originalSelection.isEmpty() ? new n.Selection(
                i.endLineNumber,
                Math.min(this._originalSelection.positionColumn, i.endColumn),
                i.endLineNumber,
                Math.min(this._originalSelection.positionColumn, i.endColumn))
            : new n.Selection(i.endLineNumber, i.endColumn - this._text.length,
                i.endLineNumber, i.endColumn)
      }, e
    }();
    t.InPlaceReplaceCommand = i
  }),define(d[263], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.getSpaceCnt = function (e, t) {
      for (var n = 0, i = 0; i < e.length; i++) {
        "\t" === e.charAt(i) ? n += t
            : n++;
      }
      return n
    }, t.generateIndent = function (e, t, n) {
      e = e < 0 ? 0 : e;
      var i = "";
      if (!n) {
        var o = Math.floor(e / t);
        for (e %= t, r = 0; r < o; r++) {
          i += "\t"
        }
      }
      for (var r = 0; r < e; r++) {
        i += " ";
      }
      return i
    }
  }),define(d[264], h([1, 0, 2, 22]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e(e, t) {
        this._selection = e, this._isCopyingDown = t
      }

      return e.prototype.getEditOperations = function (e, t) {
        var i = this._selection;
        this._startLineNumberDelta = 0, this._endLineNumberDelta = 0, i.startLineNumber
        < i.endLineNumber && 1 === i.endColumn
        && (this._endLineNumberDelta = 1, i = i.setEndPosition(
            i.endLineNumber - 1, e.getLineMaxColumn(i.endLineNumber - 1)));
        for (var o = [], r = i.startLineNumber; r <= i.endLineNumber;
            r++) {
          o.push(e.getLineContent(r));
        }
        var s = o.join("\n");
        "" === s && this._isCopyingDown
        && (this._startLineNumberDelta++, this._endLineNumberDelta++), this._isCopyingDown
            ? t.addEditOperation(
                new n.Range(i.startLineNumber, 1, i.startLineNumber, 1),
                s + "\n") : t.addEditOperation(new n.Range(i.endLineNumber,
                    e.getLineMaxColumn(i.endLineNumber), i.endLineNumber,
                    e.getLineMaxColumn(i.endLineNumber)),
                "\n" + s), this._selectionId = t.trackSelection(
            i), this._selectionDirection = this._selection.getDirection()
      }, e.prototype.computeCursorState = function (e, t) {
        var n = t.getTrackedSelection(this._selectionId);
        if (0 !== this._startLineNumberDelta || 0
            !== this._endLineNumberDelta) {
          var o = n.startLineNumber, r = n.startColumn, s = n.endLineNumber,
              a = n.endColumn;
          0 !== this._startLineNumberDelta
          && (o += this._startLineNumberDelta, r = 1), 0
          !== this._endLineNumberDelta
          && (s += this._endLineNumberDelta, a = 1), n = i.Selection.createWithDirection(
              o, r, s, a, this._selectionDirection)
        }
        return n
      }, e
    }();
    t.CopyLinesCommand = o
  }),define(d[265], h([1, 0, 2, 22]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e(e, t, n) {
        this.startLineNumber = e, this.endLineNumber = t, this.restoreCursorToColumn = n
      }

      return e.createFromSelection = function (t) {
        var n = t.endLineNumber;
        return t.startLineNumber < t.endLineNumber && 1 === t.endColumn
        && (n -= 1), new e(t.startLineNumber, n, t.positionColumn)
      }, e.prototype.getEditOperations = function (e, t) {
        if (1 !== e.getLineCount() || 1 !== e.getLineMaxColumn(1)) {
          var i = this.startLineNumber, o = this.endLineNumber, r = 1,
              s = e.getLineMaxColumn(o);
          o < e.getLineCount() ? (o += 1, s = 1) : i > 1
              && (i -= 1, r = e.getLineMaxColumn(i)), t.addTrackedEditOperation(
              new n.Range(i, r, o, s), null)
        }
      }, e.prototype.computeCursorState = function (e, t) {
        var n = t.getInverseEditOperations()[0].range;
        return new i.Selection(n.endLineNumber, this.restoreCursorToColumn,
            n.endLineNumber, this.restoreCursorToColumn)
      }, e
    }();
    t.DeleteLinesCommand = o
  }),define(d[266], h([1, 0, 59, 2]), function (e, t, n, i) {
    "use strict";

    function o(e, t, n) {
      var i = t.startLineNumber, o = t.endLineNumber;
      if (1 === t.endColumn && o--, i >= o) {
        return null;
      }
      for (var r = [], s = i; s <= o; s++) {
        r.push(e.getLineContent(s));
      }
      var a = r.slice(0);
      return a.sort(function (e, t) {
        return e.toLowerCase().localeCompare(t.toLowerCase())
      }), !0 === n && (a = a.reverse()), {
        startLineNumber: i,
        endLineNumber: o,
        before: r,
        after: a
      }
    }

    function r(e, t, r) {
      var s = o(e, t, r);
      return s ? n.EditOperation.replace(
          new i.Range(s.startLineNumber, 1, s.endLineNumber,
              e.getLineMaxColumn(s.endLineNumber)), s.after.join("\n")) : null
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      function e(e, t) {
        this.selection = e, this.descending = t
      }

      return e.prototype.getEditOperations = function (e, t) {
        var n = r(e, this.selection, this.descending);
        n && t.addEditOperation(n.range,
            n.text), this.selectionId = t.trackSelection(this.selection)
      }, e.prototype.computeCursorState = function (e, t) {
        return t.getTrackedSelection(this.selectionId)
      }, e.canRun = function (e, t, n) {
        var i = o(e, t, n);
        if (!i) {
          return !1;
        }
        for (var r = 0, s = i.before.length; r < s; r++) {
          if (i.before[r]
              !== i.after[r]) {
            return !0;
          }
        }
        return !1
      }, e
    }();
    t.SortLinesCommand = s
  });
  var _ = this && this.__assign || Object.assign || function (e) {
    for (var t, n = 1, i = arguments.length; n < i; n++) {
      t = arguments[n];
      for (var o in t) {
        Object.prototype.hasOwnProperty.call(t, o)
        && (e[o] = t[o])
      }
    }
    return e
  };
  define(d[267], h([1, 0, 123, 11, 4, 20, 25, 391]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function () {
          function e(e) {
            var t = this;
            this._options = {
              stickiness: r.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
              glyphMarginClassName: "lightbulb-glyph",
              glyphMarginHoverMessage: void 0
            }, this._onClick = new i.Emitter, this._decorationIds = [], this._futureFixes = new n.CancellationTokenSource, this._editor = e, this._mouseDownSubscription = this._editor.onMouseDown(
                function (e) {
                  if (e.target.type === s.MouseTargetType.GUTTER_GLYPH_MARGIN
                      && void 0 !== t._currentLine && t._currentLine
                      === e.target.position.lineNumber) {
                    var n = o.getDomNodePagePosition(e.target.element),
                        i = n.top, r = n.height,
                        a = t._editor.getConfiguration().lineHeight;
                    t._onClick.fire(
                        {x: e.event.posx, y: i + r + Math.floor(a / 3)})
                  }
                })
          }

          return e.prototype.dispose = function () {
            this._mouseDownSubscription.dispose(), this.hide()
          }, Object.defineProperty(e.prototype, "onClick", {
            get: function () {
              return this._onClick.event
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "model", {
            get: function () {
              return this._model
            }, set: function (e) {
              var t = this;
              this._model = e, this.hide(), this._futureFixes = new n.CancellationTokenSource;
              var i = this._futureFixes.token;
              e.fixes.done(function (n) {
                !i.isCancellationRequested && n && n.length > 0 ? t.show(e)
                    : t.hide()
              }, function (e) {
                t.hide()
              })
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "title", {
            get: function () {
              return this._options.glyphMarginHoverMessage
            }, set: function (e) {
            }, enumerable: !0, configurable: !0
          }), e.prototype.show = function (e) {
            this._currentLine = e.range.startLineNumber, this._decorationIds = this._editor.deltaDecorations(
                this._decorationIds, [{
                  options: this._options,
                  range: _({}, e.range,
                      {endLineNumber: e.range.startLineNumber})
                }])
          }, e.prototype.hide = function () {
            this._decorationIds = this._editor.deltaDecorations(
                this._decorationIds,
                []), this._futureFixes.cancel(), this._currentLine = void 0
          }, e
        }();
        t.LightBulbWidget = a
      }), define(d[268], h([1, 0, 18, 4, 12, 53, 11]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function () {
          function e(e, t, n) {
            this._onDidExecuteCodeAction = new s.Emitter, this.onDidExecuteCodeAction = this._onDidExecuteCodeAction.event, this._editor = e, this._contextMenuService = t, this._commandService = n
          }

          return e.prototype.show = function (e, t) {
            var i = this, s = e.then(function (e) {
              return e.map(function (e) {
                return new r.Action(e.id, e.title, void 0, !0, function () {
                  return n.always(
                      (t = i._commandService).executeCommand.apply(t,
                          [e.id].concat(e.arguments)), function () {
                        return i._onDidExecuteCodeAction.fire(void 0)
                      });
                  var t
                })
              })
            });
            this._contextMenuService.showContextMenu({
              getAnchor: function () {
                return o.Position.isIPosition(t) && (t = i._toCoords(t)), t
              }, getActions: function () {
                return s
              }, onHide: function () {
                i._visible = !1
              }
            })
          }, Object.defineProperty(e.prototype, "isVisible", {
            get: function () {
              return this._visible
            }, enumerable: !0, configurable: !0
          }), e.prototype._toCoords = function (e) {
            this._editor.revealPosition(e), this._editor.render();
            var t = this._editor.getScrolledVisiblePosition(
                    this._editor.getPosition()),
                n = i.getDomNodePagePosition(this._editor.getDomNode());
            return {x: n.left + t.left, y: n.top + t.top + t.height}
          }, e
        }();
        t.QuickFixContextMenu = a
      }), define(d[269], h([1, 0, 2, 91, 98, 43]), function (e, t, n, i, o, r) {
    "use strict";

    function s(e) {
      var t = new u;
      return t.start = e.range.getStartPosition(), t.end = e.range.getEndPosition(), t
    }

    function a(e, t) {
      if (e instanceof l && e.isEmpty) {
        return null;
      }
      if (!n.Range.containsPosition(e.range, t)) {
        return null;
      }
      var i;
      if (e instanceof l) {
        if (e.hasChildren) {
          for (var o = 0, r = e.children.length; o < r && !i;
              o++) {
            i = a(e.children[o], t)
          }
        }
      } else {
        e instanceof c && (i = a(e.open, t) || a(e.elements, t) || a(
            e.close, t));
      }
      return i || e
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.None = 0] = "None", e[e.Open = 1] = "Open", e[e.Close = -1] = "Close"
    }(t.TokenTreeBracket || (t.TokenTreeBracket = {}));
    var u = function () {
      function e() {
      }

      return Object.defineProperty(e.prototype, "range", {
        get: function () {
          return new n.Range(this.start.lineNumber, this.start.column,
              this.end.lineNumber, this.end.column)
        }, enumerable: !0, configurable: !0
      }), e
    }();
    t.Node = u;
    var l = function (e) {
      function t() {
        return null !== e && e.apply(this, arguments) || this
      }

      return f(t, e), Object.defineProperty(t.prototype, "start", {
        get: function () {
          return this.hasChildren ? this.children[0].start : this.parent.start
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(t.prototype, "end", {
        get: function () {
          return this.hasChildren ? this.children[this.children.length - 1].end
              : this.parent.end
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(t.prototype, "hasChildren", {
        get: function () {
          return this.children && this.children.length > 0
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(t.prototype, "isEmpty", {
        get: function () {
          return !this.hasChildren && !this.parent
        }, enumerable: !0, configurable: !0
      }), t.prototype.append = function (e) {
        return !!e && (e.parent = this, this.children || (this.children = []), e
        instanceof t ? e.children && this.children.push.apply(this.children,
            e.children) : this.children.push(e), !0)
      }, t
    }(u);
    t.NodeList = l;
    var c = function (e) {
      function t() {
        var t = e.call(this) || this;
        return t.elements = new l, t.elements.parent = t, t
      }

      return f(t, e), Object.defineProperty(t.prototype, "start", {
        get: function () {
          return this.open.start
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(t.prototype, "end", {
        get: function () {
          return this.close.end
        }, enumerable: !0, configurable: !0
      }), t
    }(u);
    t.Block = c;
    var d = function () {
      return function (e, t, n) {
        this.range = e, this.bracket = t, this.bracketType = n
      }
    }(), h = function () {
      return function (e, t, n) {
        this.lineNumber = t, this.lineText = n, this.startOffset = e.startOffset, this.endOffset = e.endOffset, this.type = e.tokenType, this.languageId = e.languageId
      }
    }(), p = function () {
      function e(e) {
        this._model = e, this._lineCount = this._model.getLineCount(), this._versionId = this._model.getVersionId(), this._lineNumber = 0, this._lineText = null, this._advance()
      }

      return e.prototype._advance = function () {
        for (this._next = this._next ? this._next.next() : null;
            !this._next && this._lineNumber < this._lineCount;) {
          this._lineNumber++, this._lineText = this._model.getLineContent(
              this._lineNumber), this._model.forceTokenization(
              this._lineNumber);
          var e = this._model.getLineTokens(this._lineNumber);
          this._next = e.firstToken()
        }
      }, e.prototype.next = function () {
        if (!this._next) {
          return null;
        }
        if (this._model.getVersionId() !== this._versionId) {
          return null;
        }
        var e = new h(this._next, this._lineNumber, this._lineText);
        return this._advance(), e
      }, e
    }(), g = function () {
      function e(e) {
        this._rawTokenScanner = new p(
            e), this._nextBuff = [], this._cachedLanguageBrackets = null, this._cachedLanguageId = -1
      }

      return e.prototype.next = function () {
        if (this._nextBuff.length > 0) {
          return this._nextBuff.shift();
        }
        var e = this._rawTokenScanner.next();
        if (!e) {
          return null;
        }
        var t = e.lineNumber, s = e.lineText, a = e.type, u = e.startOffset,
            l = e.endOffset;
        this._cachedLanguageId !== e.languageId
        && (this._cachedLanguageId = e.languageId, this._cachedLanguageBrackets = r.LanguageConfigurationRegistry.getBracketsSupport(
            this._cachedLanguageId));
        var c = this._cachedLanguageBrackets;
        if (!c || i.ignoreBracketsInToken(a)) {
          return new d(
              new n.Range(t, u + 1, t, l + 1), 0, null);
        }
        var h;
        do {
          if (h = o.BracketsUtils.findNextBracketInToken(c.forwardRegex, t, s,
              u, l)) {
            var p = h.startColumn - 1, f = h.endColumn - 1;
            u < p && this._nextBuff.push(
                new d(new n.Range(t, u + 1, t, p + 1), 0, null));
            var g = s.substring(p, f);
            g = g.toLowerCase();
            var m = c.textIsBracket[g], v = c.textIsOpenBracket[g];
            this._nextBuff.push(
                new d(new n.Range(t, p + 1, t, f + 1), v ? 1 : -1,
                    m.languageIdentifier.language + ";" + m.open + ";"
                    + m.close)), u = f
          }
        } while (h);
        return u < l && this._nextBuff.push(
            new d(new n.Range(t, u + 1, t, l + 1), 0,
                null)), this._nextBuff.shift()
      }, e
    }(), m = function () {
      function e(e) {
        this._stack = [], this._scanner = new g(e)
      }

      return e.prototype.build = function () {
        for (var e = new l; e.append(this._line() || this._any());) {
          ;
        }
        return e
      }, e.prototype._accept = function (e) {
        var t = this._stack.pop() || this._scanner.next();
        if (!t) {
          return !1;
        }
        var n = e(t);
        return n ? this._currentToken = t : (this._stack.push(
            t), this._currentToken = null), n
      }, e.prototype._peek = function (e) {
        var t = !1;
        return this._accept(function (n) {
          return t = e(n), !1
        }), t
      }, e.prototype._line = function () {
        var e, t = new l;
        for (this._peek(function (t) {
          return e = t.range.startLineNumber, !1
        }); this._peek(function (t) {
          return t.range.startLineNumber === e
        }) && t.append(this._token() || this._block());) {
          ;
        }
        return t.children && 0 !== t.children.length ? 1 === t.children.length
            ? t.children[0] : t : null
      }, e.prototype._token = function () {
        return this._accept(function (e) {
          return 0 === e.bracket
        }) ? s(this._currentToken) : null
      }, e.prototype._block = function () {
        var e;
        if (!this._accept(function (t) {
          return e = t.bracketType, 1 === t.bracket
        })) {
          return null;
        }
        var t = new c;
        for (t.open = s(this._currentToken); t.elements.append(this._line());) {
          ;
        }
        if (!this._accept(function (t) {
          return -1 === t.bracket && t.bracketType === e
        })) {
          var n = new l;
          return n.append(t.open), n.append(t.elements), n
        }
        return t.close = s(this._currentToken), t
      }, e.prototype._any = function () {
        return this._accept(function (e) {
          return !0
        }) ? s(this._currentToken) : null
      }, e
    }();
    t.build = function (e) {
      return new m(e).build()
    }, t.find = a
  }), define(d[142], h([1, 0]), function (e, t) {
    "use strict";

    function n(e, t) {
      for (var n = e.slice(); n.length > 0;) {
        var i = n.shift();
        if (!t(i)) {
          break;
        }
        n.unshift.apply(n, i.children)
      }
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var i;
    !function (e) {
      e[e.Dollar = 0] = "Dollar", e[e.Colon = 1] = "Colon", e[e.Comma = 2] = "Comma", e[e.CurlyOpen = 3] = "CurlyOpen", e[e.CurlyClose = 4] = "CurlyClose", e[e.Backslash = 5] = "Backslash", e[e.Forwardslash = 6] = "Forwardslash", e[e.Pipe = 7] = "Pipe", e[e.Int = 8] = "Int", e[e.VariableName = 9] = "VariableName", e[e.Format = 10] = "Format", e[e.EOF = 11] = "EOF"
    }(i = t.TokenType || (t.TokenType = {}));
    var o = function () {
      function e() {
        this.text("")
      }

      return e.isDigitCharacter = function (e) {
        return e >= 48 && e <= 57
      }, e.isVariableCharacter = function (e) {
        return 95 === e || e >= 97 && e <= 122 || e >= 65 && e <= 90
      }, e.prototype.text = function (e) {
        this.value = e, this.pos = 0
      }, e.prototype.tokenText = function (e) {
        return this.value.substr(e.pos, e.len)
      }, e.prototype.next = function () {
        if (this.pos >= this.value.length) {
          return {
            type: i.EOF,
            pos: this.pos,
            len: 0
          };
        }
        var t, n = this.pos, o = 0, r = this.value.charCodeAt(n);
        if ("number" == typeof (t = e._table[r])) {
          return this.pos += 1, {
            type: t,
            pos: n,
            len: 1
          };
        }
        if (e.isDigitCharacter(r)) {
          t = i.Int;
          do {
            o += 1, r = this.value.charCodeAt(n + o)
          } while (e.isDigitCharacter(r));
          return this.pos += o, {type: t, pos: n, len: o}
        }
        if (e.isVariableCharacter(r)) {
          t = i.VariableName;
          do {
            r = this.value.charCodeAt(n + ++o)
          } while (e.isVariableCharacter(r) || e.isDigitCharacter(r));
          return this.pos += o, {type: t, pos: n, len: o}
        }
        t = i.Format;
        do {
          o += 1, r = this.value.charCodeAt(n + o)
        } while (!isNaN(r) && void 0 === e._table[r] && !e.isDigitCharacter(r)
        && !e.isVariableCharacter(r));
        return this.pos += o, {type: t, pos: n, len: o}
      }, e._table = (h = {}, h[36] = i.Dollar, h[58] = i.Colon, h[44] = i.Comma, h[123] = i.CurlyOpen, h[125] = i.CurlyClose, h[92] = i.Backslash, h[47] = i.Forwardslash, h[124] = i.Pipe, h), e
    }();
    t.Scanner = o;
    var r = function () {
      function e() {
        this._children = []
      }

      return e.prototype.appendChild = function (e) {
        return e instanceof s && this._children[this._children.length - 1]
        instanceof s ? this._children[this._children.length
        - 1].value += e.value : (e.parent = this, this._children.push(e)), this
      }, e.prototype.replace = function (e, t) {
        var n = e.parent, i = n.children.indexOf(e), o = n.children.slice(0);
        o.splice.apply(o, [i, 1].concat(t)), n._children = o, t.forEach(
            function (e) {
              return e.parent = n
            })
      }, Object.defineProperty(e.prototype, "children", {
        get: function () {
          return this._children
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "snippet", {
        get: function () {
          for (var e = this; ;) {
            if (!e) {
              return;
            }
            if (e instanceof c) {
              return e;
            }
            e = e.parent
          }
        }, enumerable: !0, configurable: !0
      }), e.prototype.toString = function () {
        return this.children.reduce(function (e, t) {
          return e + t.toString()
        }, "")
      }, e.prototype.len = function () {
        return 0
      }, e
    }();
    t.Marker = r;
    var s = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n.value = t, n
      }

      return f(t, e), t.prototype.toString = function () {
        return this.value
      }, t.prototype.toTextmateString = function () {
        return this.value.replace(/\$|}|\\/g, "\\$&")
      }, t.prototype.len = function () {
        return this.value.length
      }, t.prototype.clone = function () {
        return new t(this.value)
      }, t
    }(r);
    t.Text = s;
    var a = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n.index = t, n
      }

      return f(t, e), t.compareByIndex = function (e, t) {
        return e.index === t.index ? 0 : e.isFinalTabstop ? 1 : t.isFinalTabstop
            ? -1 : e.index < t.index ? -1 : e.index > t.index ? 1 : 0
      }, Object.defineProperty(t.prototype, "isFinalTabstop", {
        get: function () {
          return 0 === this.index
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(t.prototype, "choice", {
        get: function () {
          return 1 === this._children.length && this._children[0] instanceof u
              ? this._children[0] : void 0
        }, enumerable: !0, configurable: !0
      }), t.prototype.toTextmateString = function () {
        return 0 === this.children.length ? "$" + this.index : this.choice
            ? "${" + this.index + "|" + this.choice.toTextmateString() + "|}"
            : "${" + this.index + ":" + this.children.map(function (e) {
          return e.toTextmateString()
        }).join("") + "}"
      }, t.prototype.clone = function () {
        var e = new t(this.index);
        return e._children = this.children.map(function (e) {
          return e.clone()
        }), e
      }, t
    }(r);
    t.Placeholder = a;
    var u = function (e) {
      function t() {
        var t = null !== e && e.apply(this, arguments) || this;
        return t.options = [], t
      }

      return f(t, e), t.prototype.appendChild = function (e) {
        return e instanceof s && (e.parent = this, this.options.push(e)), this
      }, t.prototype.toString = function () {
        return this.options[0].value
      }, t.prototype.toTextmateString = function () {
        return this.options.map(function (e) {
          return e.value.replace(/\||,/g, "\\$&")
        }).join(",")
      }, t.prototype.len = function () {
        return this.options[0].len()
      }, t.prototype.clone = function () {
        var e = new t;
        return this.options.forEach(e.appendChild, e), e
      }, t
    }(r);
    t.Choice = u;
    var l = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n.name = t, n
      }

      return f(t, e), t.prototype.resolve = function (e) {
        var t = e.resolve(this);
        return void 0 !== t && (this._children = [new s(t)], !0)
      }, t.prototype.toTextmateString = function () {
        return 0 === this.children.length ? "${" + this.name + "}" : "${"
            + this.name + ":" + this.children.map(function (e) {
              return e.toTextmateString()
            }).join("") + "}"
      }, t.prototype.clone = function () {
        var e = new t(this.name);
        return e._children = this.children.map(function (e) {
          return e.clone()
        }), e
      }, t
    }(r);
    t.Variable = l;
    var c = function (e) {
      function t() {
        return null !== e && e.apply(this, arguments) || this
      }

      return f(t, e), Object.defineProperty(t.prototype, "placeholders", {
        get: function () {
          var e = this;
          return this._placeholders || (this._placeholders = [], this.walk(
              function (t) {
                return t instanceof a && e.placeholders.push(t), !0
              })), this._placeholders
        }, enumerable: !0, configurable: !0
      }), t.prototype.offset = function (e) {
        var t = 0, n = !1;
        return this.walk(function (i) {
          return i === e ? (n = !0, !1) : (t += i.len(), !0)
        }), n ? t : -1
      }, t.prototype.fullLen = function (e) {
        var t = 0;
        return n([e], function (e) {
          return t += e.len(), !0
        }), t
      }, t.prototype.enclosingPlaceholders = function (e) {
        for (var t = [], n = e.parent; n;) {
          n instanceof a && t.push(
              n), n = n.parent;
        }
        return t
      }, t.prototype.resolveVariables = function (e) {
        var t = this;
        return this.walk(function (n) {
          return n instanceof l && n.resolve(e)
          && (t._placeholders = void 0), !0
        }), this
      }, t.prototype.appendChild = function (t) {
        return this._placeholders = void 0, e.prototype.appendChild.call(this,
            t)
      }, t.prototype.replace = function (t, n) {
        return this._placeholders = void 0, e.prototype.replace.call(this, t, n)
      }, t.prototype.toTextmateString = function () {
        return this.children.reduce(function (e, t) {
          return e + t.toTextmateString()
        }, "")
      }, t.prototype.clone = function () {
        var e = new t;
        return this._children = this.children.map(function (e) {
          return e.clone()
        }), e
      }, t.prototype.walk = function (e) {
        n(this.children, e)
      }, t
    }(r);
    t.TextmateSnippet = c;
    var d = function () {
      function e() {
        this._scanner = new o
      }

      return e.escape = function (e) {
        return e.replace(/\$|}|\\/g, "\\$&")
      }, e.prototype.text = function (e) {
        return this.parse(e).toString()
      }, e.prototype.parse = function (e, t, n) {
        this._scanner.text(e), this._token = this._scanner.next();
        for (var i = new c; this._parse(i);) {
          ;
        }
        var o = new Map, r = [];
        i.walk(function (e) {
          return e instanceof a && (e.isFinalTabstop ? o.set(0) : !o.has(
              e.index) && e.children.length > 0 ? o.set(e.index, e.children)
              : r.push(e)), !0
        });
        for (var s = 0, u = r; s < u.length; s++) {
          var l = u[s];
          if (o.has(l.index)) {
            for (var d = new a(l.index), h = 0, p = o.get(l.index);
                h < p.length; h++) {
              var f = p[h];
              d.appendChild(f.clone())
            }
            i.replace(l, [d])
          }
        }
        return !o.has(0) && (t && o.size > 0 || n) && i.appendChild(new a(0)), i
      }, e.prototype._accept = function (e, t) {
        if (void 0 === e || this._token.type === e) {
          var n = !t || this._scanner.tokenText(this._token);
          return this._token = this._scanner.next(), n
        }
        return !1
      }, e.prototype._backTo = function (e) {
        return this._scanner.pos = e.pos + e.len, this._token = e, !1
      }, e.prototype._parse = function (e) {
        return this._parseEscaped(e) || this._parseTabstopOrVariableName(e)
            || this._parseComplexPlaceholder(e) || this._parseComplexVariable(e)
            || this._parseAnything(e)
      }, e.prototype._parseEscaped = function (e) {
        var t;
        return !!(t = this._accept(i.Backslash, !0)) && (t = this._accept(
            i.Dollar, !0) || this._accept(i.CurlyClose, !0) || this._accept(
            i.Backslash, !0) || t, e.appendChild(new s(t)), !0)
      }, e.prototype._parseTabstopOrVariableName = function (e) {
        var t, n = this._token;
        return this._accept(i.Dollar) && (t = this._accept(i.VariableName, !0)
            || this._accept(i.Int, !0)) ? (e.appendChild(
            /^\d+$/.test(t) ? new a(Number(t)) : new l(t)), !0) : this._backTo(
            n)
      }, e.prototype._parseComplexPlaceholder = function (e) {
        var t, n = this._token;
        if (!(this._accept(i.Dollar) && this._accept(i.CurlyOpen)
            && (t = this._accept(i.Int, !0)))) {
          return this._backTo(n);
        }
        var o = new a(Number(t));
        if (this._accept(i.Colon)) {
          for (; ;) {
            if (this._accept(i.CurlyClose)) {
              return e.appendChild(o), !0;
            }
            if (!this._parse(o)) {
              return e.appendChild(
                  new s("${" + t + ":")), o.children.forEach(e.appendChild,
                  e), !0
            }
          }
        } else {
          if (!this._accept(i.Pipe)) {
            return this._accept(i.CurlyClose)
                ? (e.appendChild(o), !0) : this._backTo(n);
          }
          for (var r = new u; ;) {
            if (this._parseChoiceElement(r)) {
              if (this._accept(i.Comma)) {
                continue;
              }
              if (this._accept(i.Pipe) && this._accept(
                  i.CurlyClose)) {
                return o.appendChild(r), e.appendChild(o), !0
              }
            }
            return this._backTo(n), !1
          }
        }
      }, e.prototype._parseChoiceElement = function (e) {
        for (var t = this._token, n = []; ;) {
          if (this._token.type === i.Comma || this._token.type
              === i.Pipe) {
            break;
          }
          var o = void 0;
          if (!(o = (o = this._accept(i.Backslash, !0)) ? this._accept(i.Comma,
              !0) || this._accept(i.Pipe, !0) || o : this._accept(void 0,
              !0))) {
            return this._backTo(t), !1;
          }
          n.push(o)
        }
        return 0 === n.length ? (this._backTo(t), !1) : (e.appendChild(
            new s(n.join(""))), !0)
      }, e.prototype._parseComplexVariable = function (e) {
        var t, n = this._token;
        if (!(this._accept(i.Dollar) && this._accept(i.CurlyOpen)
            && (t = this._accept(i.VariableName, !0)))) {
          return this._backTo(n);
        }
        var o = new l(t);
        if (!this._accept(i.Colon)) {
          return this._accept(i.CurlyClose)
              ? (e.appendChild(o), !0) : this._backTo(n);
        }
        for (; ;) {
          if (this._accept(i.CurlyClose)) {
            return e.appendChild(o), !0;
          }
          if (!this._parse(o)) {
            return e.appendChild(
                new s("${" + t + ":")), o.children.forEach(e.appendChild, e), !0
          }
        }
      }, e.prototype._parseAnything = function (e) {
        return this._token.type !== i.EOF && (e.appendChild(
            new s(this._scanner.tokenText(this._token))), this._accept(
            void 0), !0)
      }, e
    }();
    t.SnippetParser = d;
    var h
  }), define(d[271], h([1, 0, 45, 142, 9]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e(e, t) {
        this._model = e, this._selection = t
      }

      return e.prototype.resolve = function (e) {
        var t = e.name;
        if ("SELECTION" === t || "TM_SELECTED_TEXT" === t) {
          var r = this._model.getValueInRange(this._selection) || void 0;
          if (r && this._selection.startLineNumber
              !== this._selection.endLineNumber) {
            var s = this._model.getLineContent(this._selection.startLineNumber),
                a = o.getLeadingWhitespace(s, 0,
                    this._selection.startColumn - 1), u = a;
            e.snippet.walk(function (t) {
              return t !== e && (t instanceof i.Text
              && (u = o.getLeadingWhitespace(
                  t.value.split(/\r\n|\r|\n/).pop())), !0)
            });
            var l = o.commonPrefixLength(u, a);
            r = r.replace(/(\r\n|\r|\n)(.*)/g, function (e, t, n) {
              return "" + t + u.substr(l) + n
            })
          }
          return r
        }
        if ("TM_CURRENT_LINE" === t) {
          return this._model.getLineContent(
              this._selection.positionLineNumber);
        }
        if ("TM_CURRENT_WORD" === t) {
          var c = this._model.getWordAtPosition({
            lineNumber: this._selection.positionLineNumber,
            column: this._selection.positionColumn
          });
          return c && c.word || void 0
        }
        if ("TM_LINE_INDEX" === t) {
          return String(
              this._selection.positionLineNumber - 1);
        }
        if ("TM_LINE_NUMBER" === t) {
          return String(
              this._selection.positionLineNumber);
        }
        if ("TM_FILENAME" === t) {
          return n.basename(this._model.uri.fsPath);
        }
        if ("TM_DIRECTORY" === t) {
          var d = n.dirname(this._model.uri.fsPath);
          return "." !== d ? d : ""
        }
        return "TM_FILEPATH" === t ? this._model.uri.fsPath : void 0
      }, e.VariableNames = Object.freeze({
        SELECTION: !0,
        TM_SELECTED_TEXT: !0,
        TM_CURRENT_LINE: !0,
        TM_CURRENT_WORD: !0,
        TM_LINE_INDEX: !0,
        TM_LINE_NUMBER: !0,
        TM_FILENAME: !0,
        TM_DIRECTORY: !0,
        TM_FILEPATH: !0
      }), e
    }();
    t.EditorSnippetVariableResolver = r
  }), define(d[272], h([1, 0, 81]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      return function () {
      }
    }();
    t.LineContext = i;
    var o = function () {
      function e(t, n, i, o) {
        this._snippetCompareFn = e._compareCompletionItems, this._items = t, this._column = n, this._lineContext = i, "top"
        === o ? this._snippetCompareFn = e._compareCompletionItemsSnippetsUp
            : "bottom" === o
            && (this._snippetCompareFn = e._compareCompletionItemsSnippetsDown)
      }

      return Object.defineProperty(e.prototype, "lineContext", {
        get: function () {
          return this._lineContext
        }, set: function (e) {
          this._lineContext.leadingLineContent === e.leadingLineContent
          && this._lineContext.characterCountDelta === e.characterCountDelta
          || (this._lineContext = e, this._filteredItems = void 0)
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "items", {
        get: function () {
          return this._ensureCachedState(), this._filteredItems
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "incomplete", {
        get: function () {
          return this._ensureCachedState(), this._isIncomplete
        }, enumerable: !0, configurable: !0
      }), e.prototype.resolveIncompleteInfo = function () {
        for (var e = [], t = [], n = 0, i = this._items; n < i.length; n++) {
          var o = i[n];
          o.container.incomplete ? e.indexOf(o.support) < 0 && e.push(o.support)
              : t.push(o)
        }
        return {incomplete: e, complete: t}
      }, Object.defineProperty(e.prototype, "stats", {
        get: function () {
          return this._ensureCachedState(), this._stats
        }, enumerable: !0, configurable: !0
      }), e.prototype._ensureCachedState = function () {
        this._filteredItems || this._createCachedState()
      }, e.prototype._createCachedState = function () {
        this._filteredItems = [], this._isIncomplete = !1, this._stats = {
          suggestionCount: 0,
          snippetCount: 0,
          textCount: 0
        };
        for (var e = this._lineContext, t = e.leadingLineContent,
            i = e.characterCountDelta, o = "", r = 0; r < this._items.length;
            r++) {
          var s = this._items[r], a = s.suggestion, u = s.container;
          this._isIncomplete = this._isIncomplete || u.incomplete;
          var l = a.overwriteBefore + i - (s.position.column - this._column);
          if (o.length !== l && (o = 0 === l ? "" : t.slice(-l)), 0
          === l) {
            s.score = -100;
          } else if ("string" == typeof a.filterText) {
            if (!(c = n.fuzzyScore(o, a.filterText,
                a.overwriteBefore))) {
              continue;
            }
            s.score = c[0], s.matches = [], (c = n.fuzzyScore(o, a.label,
                a.overwriteBefore)) && (s.matches = c[1])
          } else {
            var c = n.fuzzyScore(o, a.label, a.overwriteBefore);
            if (!c) {
              continue;
            }
            s.score = c[0], s.matches = c[1]
          }
          switch (s.idx = r, this._filteredItems.push(
              s), this._stats.suggestionCount++, a.type) {
            case"snippet":
              this._stats.snippetCount++;
              break;
            case"text":
              this._stats.textCount++
          }
        }
        this._filteredItems.sort(this._snippetCompareFn)
      }, e._compareCompletionItems = function (e, t) {
        return e.score > t.score ? -1 : e.score < t.score ? 1 : e.idx < t.idx
            ? -1 : e.idx > t.idx ? 1 : 0
      }, e._compareCompletionItemsSnippetsDown = function (t, n) {
        if (t.suggestion.type !== n.suggestion.type) {
          if ("snippet" === t.suggestion.type) {
            return 1;
          }
          if ("snippet" === n.suggestion.type) {
            return -1
          }
        }
        return e._compareCompletionItems(t, n)
      }, e._compareCompletionItemsSnippetsUp = function (t, n) {
        if (t.suggestion.type !== n.suggestion.type) {
          if ("snippet" === t.suggestion.type) {
            return -1;
          }
          if ("snippet" === n.suggestion.type) {
            return 1
          }
        }
        return e._compareCompletionItems(t, n)
      }, e
    }();
    t.CompletionModel = o
  }), define(d[273], h([1, 0, 7, 17, 106, 90, 130, 9]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";

        function u(e, t, n) {
          return c(e, t, n)
        }

        function l(e, t) {
          for (var n = [], i = 0, s = e.length; i < s; i++) {
            var a = e[i], u = o.renderViewLine(
                new o.RenderLineInput(!1, a, !1, 0,
                    [new r.ViewLineToken(a.length, 16793600)], [], t, 0, -1,
                    "none", !1, !1));
            (n = n.concat(u.html)).push("<br/>")
          }
          return n.join("")
        }

        function c(e, t, n) {
          for (var i = [], r = n.getInitialState(), a = 0, u = e.length; a < u;
              a++) {
            var l = e[a], c = n.tokenize2(l, r, 0),
                d = new s.LineTokens(c.tokens, l), h = o.renderViewLine(
                    new o.RenderLineInput(!1, l, !0, 0, d.inflate(), [], t, 0, -1,
                        "none", !1, !1));
            (i = i.concat(h.html)).push("<br/>"), r = c.endState
          }
          return i.join("")
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function () {
          function e() {
          }

          return e.colorizeElement = function (e, t, n, i) {
            var o = (i = i || {}).theme || "vs",
                r = i.mimeType || n.getAttribute("lang") || n.getAttribute(
                    "data-lang");
            if (r) {
              e.setTheme(o);
              var s = n.firstChild.nodeValue;
              n.className += "monaco-editor " + o;
              var a = function (e) {
                n.innerHTML = e
              };
              return this.colorize(t, s, r, i).then(a, function (e) {
                return console.error(e)
              }, a)
            }
            console.error("Mode not detected")
          }, e._tokenizationSupportChangedPromise = function (e) {
            var t = null, o = function () {
              t && (t.dispose(), t = null)
            };
            return new n.TPromise(function (n, r, s) {
              t = i.TokenizationRegistry.onDidChange(function (t) {
                t.changedLanguages.indexOf(e) >= 0 && (o(), n(void 0))
              })
            }, o)
          }, e.colorize = function (e, t, o, r) {
            a.startsWithUTF8BOM(t) && (t = t.substr(1));
            var s = t.split(/\r\n|\r|\n/), c = e.getModeId(o);
            void 0 === (r = r || {}).tabSize
            && (r.tabSize = 4), e.getOrCreateMode(c);
            var d = i.TokenizationRegistry.get(c);
            return d ? n.TPromise.as(u(s, r.tabSize, d)) : n.TPromise.any(
                [this._tokenizationSupportChangedPromise(c),
                  n.TPromise.timeout(500)]).then(function (e) {
              var t = i.TokenizationRegistry.get(c);
              return t ? u(s, r.tabSize, t) : l(s, r.tabSize)
            })
          }, e.colorizeLine = function (e, t, n, i) {
            return void 0 === i && (i = 4), o.renderViewLine(
                new o.RenderLineInput(!1, e, t, 0, n, [], i, 0, -1, "none", !1,
                    !1)).html
          }, e.colorizeModelLine = function (e, t, n) {
            void 0 === n && (n = 4);
            var i = e.getLineContent(t);
            e.forceTokenization(t);
            var o = e.getLineTokens(t).inflate();
            return this.colorizeLine(i, e.mightContainRTL(), o, n)
          }, e
        }();
        t.Colorizer = d
      }), define(d[145], h([1, 0]), function (e, t) {
    "use strict";

    function n(e) {
      return Array.isArray(e)
    }

    function i(e) {
      return "string" == typeof e
    }

    function o(e) {
      return !e
    }

    function r(e, t) {
      return e.ignoreCase && t ? t.toLowerCase() : t
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.None = 0] = "None", e[e.Open = 1] = "Open", e[e.Close = -1] = "Close"
    }(t.MonarchBracket
        || (t.MonarchBracket = {})), t.isFuzzyActionArr = n, t.isFuzzyAction = function (e) {
      return !n(e)
    }, t.isString = i, t.isIAction = function (e) {
      return !i(e)
    }, t.empty = o, t.fixCase = r, t.sanitize = function (e) {
      return e.replace(/[&<>'"_]/g, "-")
    }, t.log = function (e, t) {
      console.log(e.languageId + ": " + t)
    }, t.throwError = function (e, t) {
      throw new Error(e.languageId + ": " + t)
    }, t.substituteMatches = function (e, t, n, i, s) {
      var a = /\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g, u = null;
      return t.replace(a, function (t, a, l, c, d, h, p, f, g) {
        return o(l) ? o(c) ? !o(d) && d < i.length ? r(e, i[d]) : !o(p) && e
            && "string" == typeof e[p] ? e[p] : (null === u && (u = s.split(
                ".")).unshift(s), !o(h) && h < u.length ? r(e, u[h]) : "") : r(e, n)
            : "$"
      })
    }, t.findRules = function (e, t) {
      for (; t && t.length > 0;) {
        var n = e.tokenizer[t];
        if (n) {
          return n;
        }
        var i = t.lastIndexOf(".");
        t = i < 0 ? null : t.substr(0, i)
      }
      return null
    }, t.stateExists = function (e, t) {
      for (; t && t.length > 0;) {
        if (e.stateNames[t]) {
          return !0;
        }
        var n = t.lastIndexOf(".");
        t = n < 0 ? null : t.substr(0, n)
      }
      return !1
    }
  }), define(d[275], h([1, 0, 26, 145]), function (e, t, n, i) {
    "use strict";

    function o(e, t) {
      if (!t) {
        return !1;
      }
      if (!Array.isArray(t)) {
        return !1;
      }
      var n;
      for (n in t) {
        if (t.hasOwnProperty(n) && !e(t[n])) {
          return !1;
        }
      }
      return !0
    }

    function r(e, t, n) {
      return "boolean" == typeof e ? e : (n && (e || void 0 === t)
      && n(), void 0 === t ? null : t)
    }

    function s(e, t, n) {
      return "string" == typeof e ? e : (n && (e || void 0 === t) && n(), void 0
      === t ? null : t)
    }

    function a(e, t) {
      if ("string" != typeof t) {
        return null;
      }
      for (var n = 0; t.indexOf("@") >= 0 && n < 5;) {
        n++, t = t.replace(
            /@(\w+)/g, function (n, o) {
              var r = "";
              return "string" == typeof e[o] ? r = e[o] : e[o] && e[o]
              instanceof RegExp ? r = e[o].source : void 0 === e[o]
                  ? i.throwError(e,
                      "language definition does not contain attribute '" + o
                      + "', used at: " + t) : i.throwError(e,
                      "attribute reference '" + o
                      + "' must be a string, used at: " + t), i.empty(r) ? ""
                  : "(?:" + r + ")"
            });
      }
      return new RegExp(t, e.ignoreCase ? "i" : "")
    }

    function u(e, t, n, i) {
      if (i < 0) {
        return e;
      }
      if (i < t.length) {
        return t[i];
      }
      if (i >= 100) {
        i -= 100;
        var o = n.split(".");
        if (o.unshift(n), i < o.length) {
          return o[i]
        }
      }
      return null
    }

    function l(e, t, r, s) {
      var l = -1, c = r, d = r.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);
      d && (d[3] && (l = parseInt(d[3]), d[2] && (l += 100)), c = d[4]);
      var h = "~", p = c;
      c && 0 !== c.length ? /^\w*$/.test(p) ? h = "==" : (d = c.match(
              /^(@|!@|~|!~|==|!=)(.*)$/)) && (h = d[1], p = d[2])
          : (h = "!=", p = "");
      var f;
      if ("~" !== h && "!~" !== h || !/^(\w|\|)*$/.test(p)) {
        if ("@" === h
            || "!@" === h) {
          var g = e[p];
          g || i.throwError(e,
              "the @ match target '" + p + "' is not defined, in rule: "
              + t), o(
              function (e) {
                return "string" == typeof e
              }, g) || i.throwError(e, "the @ match target '" + p
              + "' must be an array of strings, in rule: " + t);
          _ = n.createKeywordMatcher(g, e.ignoreCase);
          f = function (e) {
            return "@" === h ? _(e) : !_(e)
          }
        } else if ("~" === h || "!~" === h) {
          if (p.indexOf("$") < 0) {
            var m = a(e, "^" + p + "$");
            f = function (e) {
              return "~" === h ? m.test(e) : !m.test(e)
            }
          } else {
            f = function (t, n, o, r) {
              return a(e, "^" + i.substituteMatches(e, p, n, o, r) + "$").test(
                  t)
            };
          }
        } else if (p.indexOf("$") < 0) {
          v = i.fixCase(e, p);
          f = function (e) {
            return "==" === h ? e === v : e !== v
          }
        } else {
          var v = i.fixCase(e, p);
          f = function (t, n, o, r, s) {
            var a = i.substituteMatches(e, v, n, o, r);
            return "==" === h ? t === a : t !== a
          }
        }
      } else {
        var _ = n.createKeywordMatcher(p.split("|"), e.ignoreCase);
        f = function (e) {
          return "~" === h ? _(e) : !_(e)
        }
      }
      return -1 === l ? {
        name: r, value: s, test: function (e, t, n, i) {
          return f(e, e, t, n, i)
        }
      } : {
        name: r, value: s, test: function (e, t, n, i) {
          var o = u(e, t, n, l);
          return f(o || "", e, t, n, i)
        }
      }
    }

    function c(e, t, n) {
      if (n) {
        if ("string" == typeof n) {
          return n;
        }
        if (n.token || "" === n.token) {
          if ("string" != typeof n.token) {
            return i.throwError(e,
                "a 'token' attribute must be of type string, in rule: "
                + t), {token: ""};
          }
          var o = {token: n.token};
          if (n.token.indexOf("$") >= 0 && (o.tokenSubst = !0), "string"
          == typeof n.bracket && ("@open" === n.bracket ? o.bracket = 1
              : "@close" === n.bracket ? o.bracket = -1 : i.throwError(e,
                  "a 'bracket' attribute must be either '@open' or '@close', in rule: "
                  + t)), n.next) {
            if ("string" != typeof n.next) {
              i.throwError(e,
                  "the next state must be a string value in rule: " + t);
            } else {
              var r = n.next;
              /^(@pop|@push|@popall)$/.test(r) || ("@" === r[0]
              && (r = r.substr(
                  1)), r.indexOf("$") < 0 && (i.stateExists(e,
                  i.substituteMatches(e, r, "", [], "")) || i.throwError(e,
                  "the next state '" + n.next + "' is not defined in rule: "
                  + t))), o.next = r
            }
          }
          return "number" == typeof n.goBack && (o.goBack = n.goBack), "string"
          == typeof n.switchTo && (o.switchTo = n.switchTo), "string"
          == typeof n.log && (o.log = n.log), "string" == typeof n.nextEmbedded
          && (o.nextEmbedded = n.nextEmbedded, e.usesEmbedded = !0), o
        }
        if (Array.isArray(n)) {
          var s, a = [];
          for (s in n) {
            n.hasOwnProperty(s) && (a[s] = c(e, t, n[s]));
          }
          return {group: a}
        }
        if (n.cases) {
          var u, d = [];
          for (u in n.cases) {
            if (n.cases.hasOwnProperty(u)) {
              var h = c(e, t, n.cases[u]);
              "@default" === u || "@" === u || "" === u ? d.push(
                  {test: null, value: h, name: u}) : "@eos" === u ? d.push({
                test: function (e, t, n, i) {
                  return i
                }, value: h, name: u
              }) : d.push(l(e, t, u, h))
            }
          }
          var p = e.defaultToken;
          return {
            test: function (e, t, n, i) {
              var o;
              for (o in d) {
                if (d.hasOwnProperty(o) && (!d[o].test || d[o].test(
                    e, t, n, i))) {
                  return d[o].value;
                }
              }
              return p
            }
          }
        }
        return i.throwError(e,
            "an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "
            + t), ""
      }
      return {token: ""}
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var d = function () {
      function e(e) {
        this.regex = new RegExp(
            ""), this.action = {token: ""}, this.matchOnlyAtLineStart = !1, this.name = "", this.name = e
      }

      return e.prototype.setRegex = function (e, t) {
        var n;
        "string" == typeof t ? n = t : t instanceof RegExp ? n = t.source
            : i.throwError(e,
                "rules must start with a match string or regular expression: "
                + this.name), this.matchOnlyAtLineStart = n.length > 0 && "^"
            === n[0], this.name = this.name + ": " + n, this.regex = a(e,
            "^(?:" + (this.matchOnlyAtLineStart ? n.substr(1) : n) + ")")
      }, e.prototype.setAction = function (e, t) {
        this.action = c(e, this.name, t)
      }, e
    }();
    t.compile = function (e, t) {
      function n(e, u, l) {
        var c;
        for (c in l) {
          if (l.hasOwnProperty(c)) {
            var h = l[c], p = h.include;
            if (p) {
              "string" != typeof p && i.throwError(o,
                  "an 'include' attribute must be a string at: " + e), "@"
              === p[0]
              && (p = p.substr(1)), t.tokenizer[p] || i.throwError(o,
                  "include target '" + p + "' is not defined at: " + e), n(
                  e + "." + p, u, t.tokenizer[p]);
            } else {
              var f = new d(e);
              if (Array.isArray(h) && h.length >= 1 && h.length
                  <= 3) {
                if (f.setRegex(a, h[0]), h.length >= 3) {
                  if ("string"
                      == typeof h[1]) {
                    f.setAction(a,
                        {token: h[1], next: h[2]});
                  } else if ("object" == typeof h[1]) {
                    var g = h[1];
                    g.next = h[2], f.setAction(a, g)
                  } else {
                    i.throwError(o,
                        "a next state as the last element of a rule can only be given if the action is either an object or a string, at: "
                        + e);
                  }
                } else {
                  f.setAction(a, h[1]);
                }
              } else {
                h.regex || i.throwError(o,
                    "a rule must either be an array, or an object with a 'regex' or 'include' field at: "
                    + e), h.name && (f.name = s(h.name)), h.matchOnlyAtStart
                && (f.matchOnlyAtLineStart = r(
                    h.matchOnlyAtLineStart)), f.setRegex(
                    a, h.regex), f.setAction(a, h.action);
              }
              u.push(f)
            }
          }
        }
      }

      if (!t || "object" != typeof t) {
        throw new Error(
            "Monarch: expecting a language definition object");
      }
      var o = {};
      o.languageId = e, o.noThrow = !1, o.maxStack = 100, o.start = s(
          t.start), o.ignoreCase = r(t.ignoreCase, !1), o.tokenPostfix = s(
          t.tokenPostfix, "." + o.languageId), o.defaultToken = s(
          t.defaultToken, "source", function () {
            i.throwError(o, "the 'defaultToken' must be a string")
          }), o.usesEmbedded = !1;
      var a = t;
      a.languageId = e, a.ignoreCase = o.ignoreCase, a.noThrow = o.noThrow, a.usesEmbedded = o.usesEmbedded, a.stateNames = t.tokenizer, a.defaultToken = o.defaultToken, t.tokenizer
      && "object" == typeof t.tokenizer || i.throwError(o,
          "a language definition must define the 'tokenizer' attribute as an object"), o.tokenizer = [];
      var u;
      for (u in t.tokenizer) {
        if (t.tokenizer.hasOwnProperty(u)) {
          o.start || (o.start = u);
          var l = t.tokenizer[u];
          o.tokenizer[u] = new Array, n("tokenizer." + u, o.tokenizer[u], l)
        }
      }
      o.usesEmbedded = a.usesEmbedded, t.brackets ? Array.isArray(t.brackets)
          || i.throwError(o,
              "the 'brackets' attribute must be defined as an array")
          : t.brackets = [{open: "{", close: "}", token: "delimiter.curly"},
            {open: "[", close: "]", token: "delimiter.square"},
            {open: "(", close: ")", token: "delimiter.parenthesis"},
            {open: "<", close: ">", token: "delimiter.angle"}];
      var c = [];
      for (var h in t.brackets) {
        if (t.brackets.hasOwnProperty(h)) {
          var p = t.brackets[h];
          p && Array.isArray(p) && 3 === p.length && (p = {
            token: p[2],
            open: p[0],
            close: p[1]
          }), p.open === p.close && i.throwError(o,
              "open and close brackets in a 'brackets' attribute must be different: "
              + p.open
              + "\n hint: use the 'bracket' attribute if matching on equal brackets is required."), "string"
          == typeof p.open && "string" == typeof p.token ? c.push({
            token: s(p.token) + o.tokenPostfix,
            open: i.fixCase(o, s(p.open)),
            close: i.fixCase(o, s(p.close))
          }) : i.throwError(o,
              "every element in the 'brackets' array must be a '{open,close,token}' object or array")
        }
      }
      return o.brackets = c, o.noThrow = !0, o
    }
  }), define(d[276], h([1, 0, 17, 145, 97, 68]), function (e, t, n, i, o, r) {
    "use strict";

    function s(e, t) {
      if (!t) {
        return null;
      }
      t = i.fixCase(e, t);
      for (var n = e.brackets, o = 0; o < n.length; o++) {
        var r = n[o];
        if (r.open === t) {
          return {token: r.token, bracketType: 1};
        }
        if (r.close === t) {
          return {token: r.token, bracketType: -1}
        }
      }
      return null
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var a = function () {
      function e(e) {
        this._maxCacheDepth = e, this._entries = Object.create(null)
      }

      return e.create = function (e, t) {
        return this._INSTANCE.create(e, t)
      }, e.prototype.create = function (e, t) {
        if (null !== e && e.depth >= this._maxCacheDepth) {
          return new u(e, t);
        }
        var n = u.getStackElementId(e);
        n.length > 0 && (n += "|"), n += t;
        var i = this._entries[n];
        return i || (i = new u(e, t), this._entries[n] = i, i)
      }, e._INSTANCE = new e(5), e
    }(), u = function () {
      function e(e, t) {
        this.parent = e, this.state = t, this.depth = (this.parent
            ? this.parent.depth : 0) + 1
      }

      return e.getStackElementId = function (e) {
        for (var t = ""; null !== e;) {
          t.length > 0
          && (t += "|"), t += e.state, e = e.parent;
        }
        return t
      }, e._equals = function (e, t) {
        for (; null !== e && null !== t;) {
          if (e === t) {
            return !0;
          }
          if (e.state !== t.state) {
            return !1;
          }
          e = e.parent, t = t.parent
        }
        return null === e && null === t
      }, e.prototype.equals = function (t) {
        return e._equals(this, t)
      }, e.prototype.push = function (e) {
        return a.create(this, e)
      }, e.prototype.pop = function () {
        return this.parent
      }, e.prototype.popall = function () {
        for (var e = this; e.parent;) {
          e = e.parent;
        }
        return e
      }, e.prototype.switchTo = function (e) {
        return a.create(this.parent, e)
      }, e
    }(), l = function () {
      function e(e, t) {
        this.modeId = e, this.state = t
      }

      return e.prototype.equals = function (e) {
        return this.modeId === e.modeId && this.state.equals(e.state)
      }, e.prototype.clone = function () {
        return this.state.clone() === this.state ? this : new e(this.modeId,
            this.state)
      }, e
    }(), c = function () {
      function e(e) {
        this._maxCacheDepth = e, this._entries = Object.create(null)
      }

      return e.create = function (e, t) {
        return this._INSTANCE.create(e, t)
      }, e.prototype.create = function (e, t) {
        if (null !== t) {
          return new d(e, t);
        }
        if (null !== e && e.depth >= this._maxCacheDepth) {
          return new d(e, t);
        }
        var n = u.getStackElementId(e), i = this._entries[n];
        return i || (i = new d(e, null), this._entries[n] = i, i)
      }, e._INSTANCE = new e(5), e
    }(), d = function () {
      function e(e, t) {
        this.stack = e, this.embeddedModeData = t
      }

      return e.prototype.clone = function () {
        return (this.embeddedModeData ? this.embeddedModeData.clone() : null)
        === this.embeddedModeData ? this : c.create(this.stack,
            this.embeddedModeData)
      }, e.prototype.equals = function (t) {
        return t instanceof e && (!!this.stack.equals(t.stack) && (null
            === this.embeddedModeData && null === t.embeddedModeData || null
            !== this.embeddedModeData && null !== t.embeddedModeData
            && this.embeddedModeData.equals(t.embeddedModeData)))
      }, e
    }(), h = Object.hasOwnProperty, p = function () {
      function e() {
        this._tokens = [], this._language = null, this._lastTokenType = null, this._lastTokenLanguage = null
      }

      return e.prototype.enterMode = function (e, t) {
        this._language = t
      }, e.prototype.emit = function (e, t) {
        this._lastTokenType === t && this._lastTokenLanguage === this._language
        || (this._lastTokenType = t, this._lastTokenLanguage = this._language, this._tokens.push(
            new o.Token(e, t, this._language)))
      }, e.prototype.nestedModeTokenize = function (e, t, i) {
        var o = t.modeId, r = t.state, s = n.TokenizationRegistry.get(o);
        if (!s) {
          return this.enterMode(i, o), this.emit(i, ""), r;
        }
        var a = s.tokenize(e, r, i);
        return this._tokens = this._tokens.concat(
            a.tokens), this._lastTokenType = null, this._lastTokenLanguage = null, this._language = null, a.endState
      }, e.prototype.finalize = function (e) {
        return new o.TokenizationResult(this._tokens, e)
      }, e
    }(), f = function () {
      function e(e, t) {
        this._modeService = e, this._theme = t, this._prependTokens = null, this._tokens = [], this._currentLanguageId = 0, this._lastTokenMetadata = 0
      }

      return e.prototype.enterMode = function (e, t) {
        this._currentLanguageId = this._modeService.getLanguageIdentifier(t).id
      }, e.prototype.emit = function (e, t) {
        var n = this._theme.match(this._currentLanguageId, t);
        this._lastTokenMetadata !== n
        && (this._lastTokenMetadata = n, this._tokens.push(
            e), this._tokens.push(n))
      }, e._merge = function (e, t, n) {
        var i = null !== e ? e.length : 0, o = t.length,
            r = null !== n ? n.length : 0;
        if (0 === i && 0 === o && 0 === r) {
          return new Uint32Array(0);
        }
        if (0 === i && 0 === o) {
          return n;
        }
        if (0 === o && 0 === r) {
          return e;
        }
        var s = new Uint32Array(i + o + r);
        null !== e && s.set(e);
        for (var a = 0; a < o; a++) {
          s[i + a] = t[a];
        }
        return null !== n && s.set(n, i + o), s
      }, e.prototype.nestedModeTokenize = function (t, i, o) {
        var r = i.modeId, s = i.state, a = n.TokenizationRegistry.get(r);
        if (!a) {
          return this.enterMode(o, r), this.emit(o, ""), s;
        }
        var u = a.tokenize2(t, s, o);
        return this._prependTokens = e._merge(this._prependTokens, this._tokens,
            u.tokens), this._tokens = [], this._currentLanguageId = 0, this._lastTokenMetadata = 0, u.endState
      }, e.prototype.finalize = function (t) {
        return new o.TokenizationResult2(
            e._merge(this._prependTokens, this._tokens, null), t)
      }, e
    }(), g = function () {
      function e(e, t, i, o) {
        var r = this;
        this._modeService = e, this._standaloneThemeService = t, this._modeId = i, this._lexer = o, this._embeddedModes = Object.create(
            null);
        var s = !1;
        this._tokenizationRegistryListener = n.TokenizationRegistry.onDidChange(
            function (e) {
              if (!s) {
                for (var t = !1, i = 0, o = e.changedLanguages.length; i < o;
                    i++) {
                  var a = e.changedLanguages[i];
                  if (r._embeddedModes[a]) {
                    t = !0;
                    break
                  }
                }
                t && (s = !0, n.TokenizationRegistry.fire([r._modeId]), s = !1)
              }
            })
      }

      return e.prototype.dispose = function () {
        this._tokenizationRegistryListener.dispose()
      }, e.prototype.getInitialState = function () {
        var e = a.create(null, this._lexer.start);
        return c.create(e, null)
      }, e.prototype.tokenize = function (e, t, n) {
        var i = new p, o = this._tokenize(e, t, n, i);
        return i.finalize(o)
      }, e.prototype.tokenize2 = function (e, t, n) {
        var i = new f(this._modeService,
                this._standaloneThemeService.getTheme().tokenTheme),
            o = this._tokenize(e, t, n, i);
        return i.finalize(o)
      }, e.prototype._tokenize = function (e, t, n, i) {
        return t.embeddedModeData ? this._nestedTokenize(e, t, n, i)
            : this._myTokenize(e, t, n, i)
      }, e.prototype._findLeavingNestedModeOffset = function (e, t) {
        var n = this._lexer.tokenizer[t.stack.state];
        n || (n = i.findRules(this._lexer, t.stack.state)) || i.throwError(
            this._lexer, "tokenizer state is not defined: " + t.stack.state);
        var o = -1, r = !1;
        for (var s in n) {
          if (h.call(n, s)) {
            var a = n[s];
            if (!i.isIAction(a.action) || "@pop" === a.action.nextEmbedded) {
              r = !0;
              var u = a.regex, l = a.regex.source;
              "^(?:" === l.substr(0, 4) && ")" === l.substr(l.length - 1, 1)
              && (u = new RegExp(l.substr(4, l.length - 5),
                  u.ignoreCase ? "i" : ""));
              var c = e.search(u);
              -1 !== c && (-1 === o || c < o) && (o = c)
            }
          }
        }
        return r || i.throwError(this._lexer,
            'no rule containing nextEmbedded: "@pop" in tokenizer embedded state: '
            + t.stack.state), o
      }, e.prototype._nestedTokenize = function (e, t, n, i) {
        var o = this._findLeavingNestedModeOffset(e, t);
        if (-1 === o) {
          var r = i.nestedModeTokenize(e, t.embeddedModeData, n);
          return c.create(t.stack, new l(t.embeddedModeData.modeId, r))
        }
        var s = e.substring(0, o);
        s.length > 0 && i.nestedModeTokenize(s, t.embeddedModeData, n);
        var a = e.substring(o);
        return this._myTokenize(a, t, n + o, i)
      }, e.prototype._myTokenize = function (e, t, n, o) {
        o.enterMode(n, this._modeId);
        for (var r = e.length, a = t.embeddedModeData, u = t.stack, l = 0,
            d = null, p = null, f = null, g = null; l < r;) {
          var m = l, v = u.depth, _ = d ? d.length : 0, y = u.state, C = null,
              b = null, w = null, S = null, E = null;
          if (d) {
            C = p, b = f.shift(), w = d.shift(), S = g, 0 === d.length
            && (d = null, p = null, f = null, g = null);
          } else {
            if (l >= r) {
              break;
            }
            var L = this._lexer.tokenizer[y];
            L || (L = i.findRules(this._lexer, y)) || i.throwError(this._lexer,
                "tokenizer state is not defined: " + y);
            W = e.substr(l);
            for (var x in L) {
              if (h.call(L, x)) {
                var N = L[x];
                if ((0 === l || !N.matchOnlyAtLineStart) && (C = W.match(
                    N.regex))) {
                  b = C[0], w = N.action;
                  break
                }
              }
            }
          }
          for (C || (C = [""], b = ""), w || (l < r && (b = (C = [e.charAt(
              l)])[0]), w = this._lexer.defaultToken), l += b.length;
              i.isFuzzyAction(w) && i.isIAction(w) && w.test;) {
            w = w.test(b, C,
                y, l === r);
          }
          var M = null;
          if ("string" == typeof w || Array.isArray(
              w)) {
            M = w;
          } else if (w.group) {
            M = w.group;
          } else if (null
              !== w.token && void 0 !== w.token) {
            if (M = w.tokenSubst ? i.substituteMatches(this._lexer, w.token, b,
                C, y) : w.token, w.nextEmbedded && ("@pop" === w.nextEmbedded
                ? (a || i.throwError(this._lexer,
                    "cannot pop embedded mode if not inside one"), a = null) : a
                    ? i.throwError(this._lexer,
                        "cannot enter embedded mode from within an embedded mode")
                    : E = i.substituteMatches(this._lexer, w.nextEmbedded, b, C,
                        y)), w.goBack && (l = Math.max(0,
                l - w.goBack)), w.switchTo && "string" == typeof w.switchTo) {
              "@"
              === (T = i.substituteMatches(this._lexer, w.switchTo, b, C, y))[0]
              && (T = T.substr(1)), i.findRules(this._lexer, T)
                  ? u = u.switchTo(
                      T) : i.throwError(this._lexer,
                      "trying to switch to a state '" + T
                      + "' that is undefined in rule: "
                      + S.name);
            } else if (w.transform && "function"
                == typeof w.transform) {
              i.throwError(this._lexer,
                  "action.transform not supported");
            } else if (w.next) {
              if ("@push"
                  === w.next) {
                u.depth >= this._lexer.maxStack ? i.throwError(
                    this._lexer,
                    "maximum tokenizer stack size reached: [" + u.state + ","
                    + u.parent.state + ",...]") : u = u.push(y);
              } else if ("@pop"
                  === w.next) {
                u.depth <= 1 ? i.throwError(this._lexer,
                        "trying to pop an empty stack in rule: " + S.name)
                    : u = u.pop();
              } else if ("@popall"
                  === w.next) {
                u = u.popall();
              } else {
                var T = i.substituteMatches(this._lexer, w.next, b, C, y);
                "@" === T[0] && (T = T.substr(1)), i.findRules(this._lexer, T)
                    ? u = u.push(T) : i.throwError(this._lexer,
                        "trying to set a next state '" + T
                        + "' that is undefined in rule: " + S.name)
              }
            }
            w.log && "string" == typeof w.log && i.log(this._lexer,
                this._lexer.languageId + ": " + i.substituteMatches(this._lexer,
                    w.log, b, C, y))
          }
          if (null === M && i.throwError(this._lexer,
              "lexer rule has no well-defined action in rule: "
              + S.name), Array.isArray(M)) {
            d && d.length > 0 && i.throwError(this._lexer,
                "groups cannot be nested: " + S.name), C.length !== M.length + 1
            && i.throwError(this._lexer,
                "matched number of groups does not match the number of actions in rule: "
                + S.name);
            for (var k = 0, I = 1; I < C.length; I++) {
              k += C[I].length;
            }
            k !== b.length && i.throwError(this._lexer,
                "with groups, all characters should be matched in consecutive groups in rule: "
                + S.name), p = C, f = C.slice(1), d = M.slice(
                0), g = S, l -= b.length
          } else {
            if ("@rematch" === M && (l -= b.length, b = "", C = null, M = ""), 0
            === b.length) {
              if (v !== u.depth || y !== u.state || (d ? d.length : 0)
                  !== _) {
                continue;
              }
              i.throwError(this._lexer,
                  "no progress in tokenizer in rule: " + S.name), l = r
            }
            var D = null;
            if (i.isString(M) && 0 === M.indexOf("@brackets")) {
              var O = M.substr("@brackets".length), R = s(this._lexer, b);
              R || (i.throwError(this._lexer,
                  "@brackets token returned but no bracket defined as: "
                  + b), R = {token: "", bracketType: 0}), D = i.sanitize(
                  R.token + O)
            } else {
              var P = "" === M ? "" : M + this._lexer.tokenPostfix;
              D = i.sanitize(P)
            }
            if (o.emit(m + n, D), null !== E) {
              var A = this._modeService.getModeIdForLanguageName(E);
              A && (E = A);
              var F = this._getNestedEmbeddedModeData(E);
              if (l < r) {
                var W = e.substr(l);
                return this._nestedTokenize(W, c.create(u, F), n + l, o)
              }
              return c.create(u, F)
            }
          }
        }
        return c.create(u, a)
      }, e.prototype._getNestedEmbeddedModeData = function (e) {
        var t = this._locateMode(e);
        if (t) {
          var i = n.TokenizationRegistry.get(t.getId());
          if (i) {
            return new l(t.getId(), i.getInitialState())
          }
        }
        var o = t ? t.getId() : r.NULL_MODE_ID;
        return new l(o, r.NULL_STATE)
      }, e.prototype._locateMode = function (e) {
        if (!e || !this._modeService.isRegisteredMode(e)) {
          return null;
        }
        var t = this._modeService.getModeId(e);
        this._modeService.getOrCreateMode(t);
        var n = this._modeService.getMode(t);
        return n ? (this._embeddedModes[t] = !0, n)
            : (this._embeddedModes[t] = !0, null)
      }, e
    }();
    t.createTokenizationSupport = function (e, t, n, i) {
      return new g(e, t, n, i)
    }
  }), define(d[427], h([6, 8]), function (e, t) {
    return e.create("vs/base/browser/ui/actionbar/actionbar", t)
  }), define(d[75], h([1, 0, 427, 3, 52, 259, 53, 4, 79, 29, 38, 74, 65, 496]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var p = function (e) {
          function t(t, n, i) {
            var o = e.call(this) || this;
            return o.options = i, o._callOnDispose = [], o._context = t
                || o, o._action = n, n instanceof s.Action
            && o._callOnDispose.push(n.onDidChange(function (e) {
              o.builder && o._handleActionChangeEvent(e)
            })), o
          }

          return f(t, e), t.prototype._handleActionChangeEvent = function (e) {
            void 0 !== e.enabled && this._updateEnabled(), void 0 !== e.checked
            && this._updateChecked(), void 0 !== e.class
            && this._updateClass(), void 0 !== e.label
            && (this._updateLabel(), this._updateTooltip()), void 0
            !== e.tooltip && this._updateTooltip()
          }, Object.defineProperty(t.prototype, "callOnDispose", {
            get: function () {
              return this._callOnDispose
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "actionRunner", {
            get: function () {
              return this._actionRunner
            }, set: function (e) {
              this._actionRunner = e
            }, enumerable: !0, configurable: !0
          }), t.prototype.getAction = function () {
            return this._action
          }, t.prototype.isEnabled = function () {
            return this._action.enabled
          }, t.prototype.setActionContext = function (e) {
            this._context = e
          }, t.prototype.render = function (e) {
            var t = this;
            this.builder = o.$(e), this.gesture = new d.Gesture(e);
            var n = this.options && this.options.draggable;
            n && (e.draggable = !0), this.builder.on(d.EventType.Tap,
                function (e) {
                  return t.onClick(e)
                }), this.builder.on(a.EventType.MOUSE_DOWN, function (e) {
              n || a.EventHelper.stop(e), t._action.enabled && 0 === e.button
              && t.builder.addClass("active")
            }), this.builder.on(a.EventType.CLICK, function (e) {
              a.EventHelper.stop(e, !0), t.options && t.options.isMenu
                  ? t.onClick(e) : setTimeout(function () {
                    return t.onClick(e)
                  }, 50)
            }), this.builder.on([a.EventType.MOUSE_UP, a.EventType.MOUSE_OUT],
                function (e) {
                  a.EventHelper.stop(e), t.builder.removeClass("active")
                })
          }, t.prototype.onClick = function (e) {
            a.EventHelper.stop(e, !0);
            var t;
            l.isUndefinedOrNull(this._context) ? t = e
                : (t = this._context).event = e, this._actionRunner.run(
                this._action, t)
          }, t.prototype.focus = function () {
            this.builder && this.builder.domFocus()
          }, t.prototype.blur = function () {
            this.builder && this.builder.domBlur()
          }, t.prototype._updateEnabled = function () {
          }, t.prototype._updateLabel = function () {
          }, t.prototype._updateTooltip = function () {
          }, t.prototype._updateClass = function () {
          }, t.prototype._updateChecked = function () {
          }, t.prototype.dispose = function () {
            e.prototype.dispose.call(this), this.builder
            && (this.builder.destroy(), this.builder = null), this.gesture
            && (this.gesture.dispose(), this.gesture = null), this._callOnDispose = i.dispose(
                this._callOnDispose)
          }, t
        }(c.EventEmitter);
        t.BaseActionItem = p;
        var g = function (e) {
          function t(n, i) {
            var o = e.call(this, t.ID, n, n ? "separator text" : "separator")
                || this;
            return o.checked = !1, o.radio = !1, o.enabled = !1, o.order = i, o
          }

          return f(t, e), t.ID = "vs.actions.separator", t
        }(s.Action);
        t.Separator = g;
        var m = function (e) {
          function t(t, n, i) {
            void 0 === i && (i = {});
            var o = e.call(this, t, n, i) || this;
            return o.options = i, o.options.icon = void 0 !== i.icon
                && i.icon, o.options.label = void 0 === i.label
                || i.label, o.cssClass = "", o
          }

          return f(t, e), t.prototype.render = function (t) {
            e.prototype.render.call(this, t), this.$e = o.$(
                "a.action-label").appendTo(this.builder), this._action.id
            === g.ID ? this.$e.attr({role: "presentation"})
                : this.options.isMenu ? this.$e.attr({role: "menuitem"})
                    : this.$e.attr({role: "button"}), this.options.label
            && this.options.keybinding && o.$("span.keybinding").text(
                this.options.keybinding).appendTo(
                this.builder), this._updateClass(), this._updateLabel(), this._updateTooltip(), this._updateEnabled(), this._updateChecked()
          }, t.prototype.focus = function () {
            e.prototype.focus.call(this), this.$e.domFocus()
          }, t.prototype._updateLabel = function () {
            this.options.label && this.$e.text(this.getAction().label)
          }, t.prototype._updateTooltip = function () {
            var e = null;
            this.getAction().tooltip ? e = this.getAction().tooltip
                : !this.options.label && this.getAction().label
                && this.options.icon
                && (e = this.getAction().label, this.options.keybinding
                && (e = n.localize(0, null, e, this.options.keybinding))), e
            && this.$e.attr({title: e})
          }, t.prototype._updateClass = function () {
            this.cssClass && this.$e.removeClass(
                this.cssClass), this.options.icon
                ? (this.cssClass = this.getAction().class, this.$e.addClass(
                    "icon"), this.cssClass && this.$e.addClass(
                    this.cssClass), this._updateEnabled())
                : this.$e.removeClass("icon")
          }, t.prototype._updateEnabled = function () {
            this.getAction().enabled ? (this.builder.removeClass(
                "disabled"), this.$e.removeClass("disabled"), this.$e.attr(
                {tabindex: 0})) : (this.builder.addClass(
                "disabled"), this.$e.addClass(
                "disabled"), a.removeTabIndexAndUpdateFocus(
                this.$e.getHTMLElement()))
          }, t.prototype._updateChecked = function () {
            this.getAction().checked ? this.$e.addClass("checked")
                : this.$e.removeClass("checked")
          }, t.prototype._updateRadio = function () {
            this.getAction().radio ? this.$e.addClass("radio")
                : this.$e.removeClass("radio")
          }, t
        }(p);
        t.ActionItem = m;
        var v;
        !function (e) {
          e[e.HORIZONTAL = 1] = "HORIZONTAL", e[e.VERTICAL = 2] = "VERTICAL"
        }(v = t.ActionsOrientation || (t.ActionsOrientation = {}));
        var _ = {orientation: v.HORIZONTAL, context: null}, y = function (e) {
          function t(t, n) {
            void 0 === n && (n = _);
            var i = e.call(this) || this;
            i.options = n, i._context = n.context, i.toDispose = [], i._actionRunner = i.options.actionRunner, i._actionRunner
            || (i._actionRunner = new s.ActionRunner, i.toDispose.push(
                i._actionRunner)), i.toDispose.push(i.addEmitter(
                i._actionRunner)), i.items = [], i.focusedItem = void 0, i.domNode = document.createElement(
                "div"), i.domNode.className = "monaco-action-bar", !1
            !== n.animated && a.addClass(i.domNode, "animated");
            var r = i.options.orientation === v.VERTICAL;
            return r && (i.domNode.className += " vertical"), o.$(i.domNode).on(
                a.EventType.KEY_DOWN, function (e) {
                  var t = new h.StandardKeyboardEvent(e), n = !0;
                  t.equals(r ? 16 : 15) ? i.focusPrevious() : t.equals(
                      r ? 18 : 17) ? i.focusNext() : t.equals(9) ? i.cancel()
                      : t.equals(3) || t.equals(10) || (n = !1), n
                  && (t.preventDefault(), t.stopPropagation())
                }), o.$(i.domNode).on(a.EventType.KEY_UP, function (e) {
              var t = new h.StandardKeyboardEvent(e);
              t.equals(3) || t.equals(10) ? (i.doTrigger(
                  t), t.preventDefault(), t.stopPropagation()) : (t.equals(2)
                  || t.equals(1026)) && i.updateFocusedItem()
            }), i.focusTracker = a.trackFocus(
                i.domNode), i.focusTracker.addBlurListener(function () {
              document.activeElement !== i.domNode && a.isAncestor(
                  document.activeElement, i.domNode) || (i.emit(
                  a.EventType.BLUR, {}), i.focusedItem = void 0)
            }), i.focusTracker.addFocusListener(function () {
              return i.updateFocusedItem()
            }), i.actionsList = document.createElement(
                "ul"), i.actionsList.className = "actions-container", i.options.isMenu
                ? i.actionsList.setAttribute("role", "menubar")
                : i.actionsList.setAttribute("role",
                    "toolbar"), i.options.ariaLabel
            && i.actionsList.setAttribute("aria-label",
                i.options.ariaLabel), i.domNode.appendChild(i.actionsList), (t
            instanceof o.Builder ? t.getHTMLElement() : t).appendChild(
                i.domNode), i
          }

          return f(t, e), t.prototype.setAriaLabel = function (e) {
            e ? this.actionsList.setAttribute("aria-label", e)
                : this.actionsList.removeAttribute("aria-label")
          }, t.prototype.updateFocusedItem = function () {
            for (var e = 0; e < this.actionsList.children.length; e++) {
              var t = this.actionsList.children[e];
              if (a.isAncestor(document.activeElement, t)) {
                this.focusedItem = e;
                break
              }
            }
          }, Object.defineProperty(t.prototype, "context", {
            get: function () {
              return this._context
            }, set: function (e) {
              this._context = e, this.items.forEach(function (t) {
                return t.setActionContext(e)
              })
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "actionRunner", {
            get: function () {
              return this._actionRunner
            }, set: function (e) {
              e && (this._actionRunner = e, this.items.forEach(function (t) {
                return t.actionRunner = e
              }))
            }, enumerable: !0, configurable: !0
          }), t.prototype.getContainer = function () {
            return o.$(this.domNode)
          }, t.prototype.push = function (e, t) {
            var n = this;
            void 0 === t && (t = {});
            var i = Array.isArray(e) ? e : [e],
                r = l.isNumber(t.index) ? t.index : null;
            i.forEach(function (e) {
              var i = document.createElement("li");
              i.className = "action-item", i.setAttribute("role",
                  "presentation"), o.$(i).on(a.EventType.CONTEXT_MENU,
                  function (e) {
                    e.preventDefault(), e.stopPropagation()
                  });
              var s = null;
              n.options.actionItemProvider && (s = n.options.actionItemProvider(
                  e)), s || (s = new m(n.context, e,
                  t)), s.actionRunner = n._actionRunner, s.setActionContext(
                  n.context), n.addEmitter(s), s.render(i), null === r || r < 0
              || r >= n.actionsList.children.length ? n.actionsList.appendChild(
                  i) : n.actionsList.insertBefore(i,
                  n.actionsList.children[r++]), n.items.push(s)
            })
          }, t.prototype.pull = function (e) {
            e >= 0 && e < this.items.length && (this.items.splice(e,
                1), this.actionsList.removeChild(
                this.actionsList.childNodes[e]))
          }, t.prototype.clear = function () {
            this.items = i.dispose(this.items), o.$(this.actionsList).empty()
          }, t.prototype.length = function () {
            return this.items.length
          }, t.prototype.isEmpty = function () {
            return 0 === this.items.length
          }, t.prototype.focus = function (e) {
            e && void 0 === this.focusedItem
            && (this.focusedItem = 0), this.updateFocus()
          }, t.prototype.focusNext = function () {
            void 0 === this.focusedItem && (this.focusedItem = this.items.length
                - 1);
            var e, t = this.focusedItem;
            do {
              this.focusedItem = (this.focusedItem + 1)
                  % this.items.length, e = this.items[this.focusedItem]
            } while (this.focusedItem !== t && !e.isEnabled());
            this.focusedItem !== t || e.isEnabled()
            || (this.focusedItem = void 0), this.updateFocus()
          }, t.prototype.focusPrevious = function () {
            void 0 === this.focusedItem && (this.focusedItem = 0);
            var e, t = this.focusedItem;
            do {
              this.focusedItem = this.focusedItem - 1, this.focusedItem < 0
              && (this.focusedItem = this.items.length
                  - 1), e = this.items[this.focusedItem]
            } while (this.focusedItem !== t && !e.isEnabled());
            this.focusedItem !== t || e.isEnabled()
            || (this.focusedItem = void 0), this.updateFocus(!0)
          }, t.prototype.updateFocus = function (e) {
            if (void 0 !== this.focusedItem) {
              for (var t = 0;
                  t < this.items.length; t++) {
                var n = this.items[t];
                t === this.focusedItem ? l.isFunction(n.focus) && n.focus(e)
                    : l.isFunction(n.blur) && n.blur()
              }
            } else {
              this.domNode.focus()
            }
          }, t.prototype.doTrigger = function (e) {
            if (void 0 !== this.focusedItem) {
              var t = this.items[this.focusedItem];
              if (t instanceof p) {
                var n = null === t._context || void 0 === t._context ? e
                    : t._context;
                this.run(t._action, n).done()
              }
            }
          }, t.prototype.cancel = function () {
            document.activeElement instanceof HTMLElement
            && document.activeElement.blur(), this.emit(u.EventType.CANCEL)
          }, t.prototype.run = function (e, t) {
            return this._actionRunner.run(e, t)
          }, t.prototype.dispose = function () {
            null !== this.items && i.dispose(
                this.items), this.items = null, this.focusTracker
            && (this.focusTracker.dispose(), this.focusTracker = null), this.toDispose = i.dispose(
                this.toDispose), this.getContainer().destroy(), e.prototype.dispose.call(
                this)
          }, t
        }(c.EventEmitter);
        t.ActionBar = y;
        var C = function (e) {
          function t(t, n, i, o) {
            var s = e.call(this, t, n) || this;
            return s.selectBox = new r.SelectBox(i,
                o), s.toDispose = [], s.toDispose.push(
                s.selectBox), s.registerListeners(), s
          }

          return f(t, e), t.prototype.setOptions = function (e, t) {
            this.selectBox.setOptions(e, t)
          }, t.prototype.select = function (e) {
            this.selectBox.select(e)
          }, t.prototype.registerListeners = function () {
            var e = this;
            this.toDispose.push(this.selectBox.onDidSelect(function (t) {
              e.actionRunner.run(e._action,
                  e.getActionContext(t.selected)).done()
            }))
          }, t.prototype.getActionContext = function (e) {
            return e
          }, t.prototype.focus = function () {
            this.selectBox && this.selectBox.focus()
          }, t.prototype.blur = function () {
            this.selectBox && this.selectBox.blur()
          }, t.prototype.render = function (e) {
            this.selectBox.render(e)
          }, t.prototype.dispose = function () {
            this.toDispose = i.dispose(
                this.toDispose), e.prototype.dispose.call(this)
          }, t
        }(p);
        t.SelectActionItem = C
      }), define(d[281], h([1, 0, 52, 75, 38, 218]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function (e) {
      function t(t, o, r) {
        void 0 === r && (r = {});
        var s = e.call(this) || this;
        n.$(t).addClass("monaco-menu-container");
        var a = n.$(".monaco-menu").appendTo(t);
        return s.actionBar = new i.ActionBar(a, {
          orientation: i.ActionsOrientation.VERTICAL,
          actionItemProvider: r.actionItemProvider,
          context: r.context,
          actionRunner: r.actionRunner,
          isMenu: !0
        }), s.listener = s.addEmitter(s.actionBar), s.actionBar.push(o,
            {icon: !0, label: !0}), s
      }

      return f(t, e), t.prototype.focus = function () {
        this.actionBar.focus(!0)
      }, t.prototype.dispose = function () {
        e.prototype.dispose.call(this), this.actionBar
        && (this.actionBar.dispose(), this.actionBar = null), this.listener
        && (this.listener.dispose(), this.listener = null)
      }, t
    }(o.EventEmitter);
    t.Menu = r
  }), define(d[282], h([6, 8]), function (e, t) {
    return e.create("vs/base/browser/ui/aria/aria", t)
  }), define(d[51], h([1, 0, 282, 15, 4, 500]), function (e, t, n, i, o) {
    "use strict";

    function r(e) {
      s(u, e)
    }

    function s(e, t) {
      a && (e.textContent === t && (t = n.localize(0, null, t)), o.clearNode(
          e), e.textContent = t, e.style.visibility = "hidden", e.style.visibility = "visible")
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var a, u, l;
    t.setARIAContainer = function (e) {
      (a = document.createElement(
          "div")).className = "monaco-aria-container", (u = document.createElement(
          "div")).className = "monaco-alert", u.setAttribute("role",
          "alert"), u.setAttribute("aria-atomic", "true"), a.appendChild(
          u), (l = document.createElement(
          "div")).className = "monaco-status", l.setAttribute("role",
          "status"), l.setAttribute("aria-atomic", "true"), a.appendChild(
          l), e.appendChild(a)
    }, t.alert = r, t.status = function (e) {
      i.isMacintosh ? r(e) : s(l, e)
    }
  }), define(d[284], h([6, 8]), function (e, t) {
    return e.create("vs/base/browser/ui/findinput/findInput", t)
  }), define(d[285], h([6, 8]), function (e, t) {
    return e.create("vs/base/browser/ui/findinput/findInputCheckboxes", t)
  }), define(d[153], h([1, 0, 285, 506, 206]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = n.localize(0, null), r = n.localize(1, null),
        s = n.localize(2, null), a = function (e) {
          function t(t) {
            return e.call(this, {
              actionClassName: "monaco-case-sensitive",
              title: o + t.appendTitle,
              isChecked: t.isChecked,
              onChange: t.onChange,
              onKeyDown: t.onKeyDown,
              inputActiveOptionBorder: t.inputActiveOptionBorder
            }) || this
          }

          return f(t, e), t
        }(i.Checkbox);
    t.CaseSensitiveCheckbox = a;
    var u = function (e) {
      function t(t) {
        return e.call(this, {
          actionClassName: "monaco-whole-word",
          title: r + t.appendTitle,
          isChecked: t.isChecked,
          onChange: t.onChange,
          onKeyDown: t.onKeyDown,
          inputActiveOptionBorder: t.inputActiveOptionBorder
        }) || this
      }

      return f(t, e), t
    }(i.Checkbox);
    t.WholeWordsCheckbox = u;
    var l = function (e) {
      function t(t) {
        return e.call(this, {
          actionClassName: "monaco-regex",
          title: s + t.appendTitle,
          isChecked: t.isChecked,
          onChange: t.onChange,
          onKeyDown: t.onKeyDown,
          inputActiveOptionBorder: t.inputActiveOptionBorder
        }) || this
      }

      return f(t, e), t
    }(i.Checkbox);
    t.RegexCheckbox = l
  }), define(d[287], h([6, 8]), function (e, t) {
    return e.create("vs/base/browser/ui/inputbox/inputBox", t)
  }), define(d[115],
      h([1, 0, 287, 28, 4, 102, 51, 75, 160, 11, 41, 32, 26, 211]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var p, g = o.$;
        !function (e) {
          e[e.INFO = 1] = "INFO", e[e.WARNING = 2] = "WARNING", e[e.ERROR = 3] = "ERROR"
        }(p = t.MessageType || (t.MessageType = {}));
        var m = {
          inputBackground: d.Color.fromHex("#3C3C3C"),
          inputForeground: d.Color.fromHex("#CCCCCC"),
          inputValidationInfoBorder: d.Color.fromHex("#55AAFF"),
          inputValidationInfoBackground: d.Color.fromHex("#063B49"),
          inputValidationWarningBorder: d.Color.fromHex("#B89500"),
          inputValidationWarningBackground: d.Color.fromHex("#352A05"),
          inputValidationErrorBorder: d.Color.fromHex("#BE1100"),
          inputValidationErrorBackground: d.Color.fromHex("#5A1D1D")
        }, v = function (e) {
          function t(t, n, r) {
            var s = e.call(this) || this;
            s.state = "idle", s._onDidChange = s._register(
                new l.Emitter), s.onDidChange = s._onDidChange.event, s._onDidHeightChange = s._register(
                new l.Emitter), s.onDidHeightChange = s._onDidHeightChange.event, s.contextViewProvider = n, s.options = r
                || Object.create(null), h.mixin(s.options, m,
                !1), s.message = null, s.cachedHeight = null, s.placeholder = s.options.placeholder
                || "", s.ariaLabel = s.options.ariaLabel
                || "", s.inputBackground = s.options.inputBackground, s.inputForeground = s.options.inputForeground, s.inputBorder = s.options.inputBorder, s.inputValidationInfoBorder = s.options.inputValidationInfoBorder, s.inputValidationInfoBackground = s.options.inputValidationInfoBackground, s.inputValidationWarningBorder = s.options.inputValidationWarningBorder, s.inputValidationWarningBackground = s.options.inputValidationWarningBackground, s.inputValidationErrorBorder = s.options.inputValidationErrorBorder, s.inputValidationErrorBackground = s.options.inputValidationErrorBackground, s.options.validationOptions
            && (s.validation = s.options.validationOptions.validation, s.showValidationMessage = s.options.validationOptions.showMessage
                || !1), s.element = o.append(t, g(".monaco-inputbox.idle"));
            var u = s.options.flexibleHeight ? "textarea" : "input",
                c = o.append(s.element, g(".wrapper"));
            return s.input = o.append(c, g(u + ".input")), s.input.setAttribute(
                "autocorrect", "off"), s.input.setAttribute("autocapitalize",
                "off"), s.input.setAttribute("spellcheck", "false"), s.onfocus(
                s.input, function () {
                  return o.addClass(s.element, "synthetic-focus")
                }), s.onblur(s.input, function () {
              return o.removeClass(s.element, "synthetic-focus")
            }), s.options.flexibleHeight ? s.mirror = o.append(c,
                g("div.mirror")) : (s.input.type = s.options.type
                || "text", s.input.setAttribute("wrap", "off")), s.ariaLabel
            && s.input.setAttribute("aria-label", s.ariaLabel), s.placeholder
            && (s.input.setAttribute("placeholder",
                s.placeholder), s.input.title = s.placeholder), s.oninput(
                s.input, function () {
                  return s.onValueChange()
                }), s.onblur(s.input, function () {
              return s.onBlur()
            }), s.onfocus(s.input, function () {
              return s.onFocus()
            }), s.placeholder && i.isIE && s.onclick(s.input, function (e) {
              o.EventHelper.stop(e, !0), s.input.focus()
            }), setTimeout(function () {
              return s.updateMirror()
            }, 0), s.options.actions && (s.actionbar = s._register(
                new a.ActionBar(s.element)), s.actionbar.push(s.options.actions,
                {icon: !0, label: !1})), s.applyStyles(), s
          }

          return f(t, e), t.prototype.onBlur = function () {
            this._hideMessage()
          }, t.prototype.onFocus = function () {
            this._showMessage()
          }, t.prototype.setPlaceHolder = function (e) {
            this.input && this.input.setAttribute("placeholder", e)
          }, t.prototype.setAriaLabel = function (e) {
            this.ariaLabel = e, this.input && (e ? this.input.setAttribute(
                "aria-label", this.ariaLabel) : this.input.removeAttribute(
                "aria-label"))
          }, t.prototype.setContextViewProvider = function (e) {
            this.contextViewProvider = e
          }, Object.defineProperty(t.prototype, "inputElement", {
            get: function () {
              return this.input
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "value", {
            get: function () {
              return this.input.value
            }, set: function (e) {
              this.input.value !== e
              && (this.input.value = e, this.onValueChange())
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "height", {
            get: function () {
              return null === this.cachedHeight ? o.getTotalHeight(this.element)
                  : this.cachedHeight
            }, enumerable: !0, configurable: !0
          }), t.prototype.focus = function () {
            this.input.focus()
          }, t.prototype.blur = function () {
            this.input.blur()
          }, t.prototype.hasFocus = function () {
            return document.activeElement === this.input
          }, t.prototype.select = function (e) {
            void 0 === e && (e = null), this.input.select(), e
            && this.input.setSelectionRange(e.start, e.end)
          }, t.prototype.enable = function () {
            this.input.removeAttribute("disabled")
          }, t.prototype.disable = function () {
            this.input.disabled = !0, this._hideMessage()
          }, t.prototype.setEnabled = function (e) {
            e ? this.enable() : this.disable()
          }, Object.defineProperty(t.prototype, "width", {
            get: function () {
              return o.getTotalWidth(this.input)
            }, set: function (e) {
              this.input.style.width = e + "px"
            }, enumerable: !0, configurable: !0
          }), t.prototype.showMessage = function (e, t) {
            this.message = e, o.removeClass(this.element,
                "idle"), o.removeClass(this.element, "info"), o.removeClass(
                this.element, "warning"), o.removeClass(this.element,
                "error"), o.addClass(this.element, this.classForType(e.type));
            var i = this.stylesForType(this.message.type);
            this.element.style.border = i.border ? "1px solid " + i.border
                : null;
            var r;
            r = e.type === p.ERROR ? n.localize(0, null, e.content) : e.type
            === p.WARNING ? n.localize(1, null, e.content) : n.localize(2, null,
                e.content), s.alert(r), (this.hasFocus() || t)
            && this._showMessage()
          }, t.prototype.hideMessage = function () {
            this.message = null, o.removeClass(this.element,
                "info"), o.removeClass(this.element, "warning"), o.removeClass(
                this.element, "error"), o.addClass(this.element,
                "idle"), this._hideMessage(), this.applyStyles()
          }, t.prototype.isInputValid = function () {
            return !!this.validation && !this.validation(this.value)
          }, t.prototype.validate = function () {
            var e = null;
            return this.validation && ((e = this.validation(this.value))
                ? (this.inputElement.setAttribute("aria-invalid",
                    "true"), this.showMessage(e))
                : (this.inputElement.removeAttribute(
                    "aria-invalid"), this.hideMessage())), !e
          }, t.prototype.stylesForType = function (e) {
            switch (e) {
              case p.INFO:
                return {
                  border: this.inputValidationInfoBorder,
                  background: this.inputValidationInfoBackground
                };
              case p.WARNING:
                return {
                  border: this.inputValidationWarningBorder,
                  background: this.inputValidationWarningBackground
                };
              default:
                return {
                  border: this.inputValidationErrorBorder,
                  background: this.inputValidationErrorBackground
                }
            }
          }, t.prototype.classForType = function (e) {
            switch (e) {
              case p.INFO:
                return "info";
              case p.WARNING:
                return "warning";
              default:
                return "error"
            }
          }, t.prototype._showMessage = function () {
            var e = this;
            if (this.contextViewProvider && this.message) {
              var t, n = function () {
                return t.style.width = o.getTotalWidth(e.element) + "px"
              };
              this.state = "open", this.contextViewProvider.showContextView({
                getAnchor: function () {
                  return e.element
                },
                anchorAlignment: u.AnchorAlignment.RIGHT,
                render: function (i) {
                  t = o.append(i, g(".monaco-inputbox-container")), n();
                  var s = {
                    inline: !0,
                    className: "monaco-inputbox-message"
                  }, a = e.message.formatContent ? r.renderFormattedText(
                      e.message.content, s) : r.renderText(e.message.content,
                      s);
                  o.addClass(a, e.classForType(e.message.type));
                  var u = e.stylesForType(e.message.type);
                  return a.style.backgroundColor = u.background
                      ? u.background.toString()
                      : null, a.style.border = u.border ? "1px solid "
                      + u.border : null, o.append(t, a), null
                },
                layout: n
              })
            }
          }, t.prototype._hideMessage = function () {
            this.contextViewProvider && "open" === this.state
            && (this.state = "idle", this.contextViewProvider.hideContextView())
          }, t.prototype.onValueChange = function () {
            this._onDidChange.fire(
                this.value), this.validate(), this.updateMirror(), "open"
            === this.state && this.contextViewProvider.layout()
          }, t.prototype.updateMirror = function () {
            if (this.mirror) {
              var e = this.value || this.placeholder,
                  t = 10 === e.charCodeAt(e.length - 1) ? " " : "";
              this.mirror.textContent = e + t, this.layout()
            }
          }, t.prototype.style = function (e) {
            this.inputBackground = e.inputBackground, this.inputForeground = e.inputForeground, this.inputBorder = e.inputBorder, this.inputValidationInfoBackground = e.inputValidationInfoBackground, this.inputValidationInfoBorder = e.inputValidationInfoBorder, this.inputValidationWarningBackground = e.inputValidationWarningBackground, this.inputValidationWarningBorder = e.inputValidationWarningBorder, this.inputValidationErrorBackground = e.inputValidationErrorBackground, this.inputValidationErrorBorder = e.inputValidationErrorBorder, this.applyStyles()
          }, t.prototype.applyStyles = function () {
            if (this.element) {
              var e = this.inputBackground ? this.inputBackground.toString()
                      : null,
                  t = this.inputForeground ? this.inputForeground.toString()
                      : null,
                  n = this.inputBorder ? this.inputBorder.toString() : null;
              this.element.style.backgroundColor = e, this.element.style.color = t, this.input.style.backgroundColor = e, this.input.style.color = t, this.element.style.borderWidth = n
                  ? "1px" : null, this.element.style.borderStyle = n ? "solid"
                  : null, this.element.style.borderColor = n
            }
          }, t.prototype.layout = function () {
            if (this.mirror) {
              var e = this.cachedHeight;
              this.cachedHeight = o.getTotalHeight(this.mirror), e
              !== this.cachedHeight
              && (this.input.style.height = this.cachedHeight
                  + "px", this._onDidHeightChange.fire(this.cachedHeight))
            }
          }, t.prototype.dispose = function () {
            this._hideMessage(), this.element = null, this.input = null, this.contextViewProvider = null, this.message = null, this.placeholder = null, this.ariaLabel = null, this.validation = null, this.showValidationMessage = null, this.state = null, this.actionbar = null, e.prototype.dispose.call(
                this)
          }, t
        }(c.Widget);
        t.InputBox = v
      }), define(d[289], h([1, 0, 284, 4, 115, 41, 11, 153, 205]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var u = n.localize(0, null), l = function (e) {
          function t(t, n, i) {
            var o = e.call(this) || this;
            return o._onDidOptionChange = o._register(
                new s.Emitter), o.onDidOptionChange = o._onDidOptionChange.event, o._onKeyDown = o._register(
                new s.Emitter), o.onKeyDown = o._onKeyDown.event, o._onMouseDown = o._register(
                new s.Emitter), o.onMouseDown = o._onMouseDown.event, o._onInput = o._register(
                new s.Emitter), o.onInput = o._onInput.event, o._onKeyUp = o._register(
                new s.Emitter), o.onKeyUp = o._onKeyUp.event, o._onCaseSensitiveKeyDown = o._register(
                new s.Emitter), o.onCaseSensitiveKeyDown = o._onCaseSensitiveKeyDown.event, o._lastHighlightFindOptions = 0, o.contextViewProvider = n, o.width = i.width
                || 100, o.placeholder = i.placeholder
                || "", o.validation = i.validation, o.label = i.label
                || u, o.inputActiveOptionBorder = i.inputActiveOptionBorder, o.inputBackground = i.inputBackground, o.inputForeground = i.inputForeground, o.inputBorder = i.inputBorder, o.inputValidationInfoBorder = i.inputValidationInfoBorder, o.inputValidationInfoBackground = i.inputValidationInfoBackground, o.inputValidationWarningBorder = i.inputValidationWarningBorder, o.inputValidationWarningBackground = i.inputValidationWarningBackground, o.inputValidationErrorBorder = i.inputValidationErrorBorder, o.inputValidationErrorBackground = i.inputValidationErrorBackground, o.regex = null, o.wholeWords = null, o.caseSensitive = null, o.domNode = null, o.inputBox = null, o.buildDomNode(
                i.appendCaseSensitiveLabel || "", i.appendWholeWordsLabel || "",
                i.appendRegexLabel || ""), Boolean(t) && t.appendChild(
                o.domNode), o.onkeydown(o.inputBox.inputElement, function (e) {
              return o._onKeyDown.fire(e)
            }), o.onkeyup(o.inputBox.inputElement, function (e) {
              return o._onKeyUp.fire(e)
            }), o.oninput(o.inputBox.inputElement, function (e) {
              return o._onInput.fire()
            }), o.onmousedown(o.inputBox.inputElement, function (e) {
              return o._onMouseDown.fire(e)
            }), o
          }

          return f(t, e), t.prototype.enable = function () {
            i.removeClass(this.domNode,
                "disabled"), this.inputBox.enable(), this.regex.enable(), this.wholeWords.enable(), this.caseSensitive.enable()
          }, t.prototype.disable = function () {
            i.addClass(this.domNode,
                "disabled"), this.inputBox.disable(), this.regex.disable(), this.wholeWords.disable(), this.caseSensitive.disable()
          }, t.prototype.setEnabled = function (e) {
            e ? this.enable() : this.disable()
          }, t.prototype.clear = function () {
            this.clearValidation(), this.setValue(""), this.focus()
          }, t.prototype.setWidth = function (e) {
            this.width = e, this.domNode.style.width = this.width
                + "px", this.contextViewProvider.layout(), this.setInputWidth()
          }, t.prototype.getValue = function () {
            return this.inputBox.value
          }, t.prototype.setValue = function (e) {
            this.inputBox.value !== e && (this.inputBox.value = e)
          }, t.prototype.style = function (e) {
            this.inputActiveOptionBorder = e.inputActiveOptionBorder, this.inputBackground = e.inputBackground, this.inputForeground = e.inputForeground, this.inputBorder = e.inputBorder, this.inputValidationInfoBackground = e.inputValidationInfoBackground, this.inputValidationInfoBorder = e.inputValidationInfoBorder, this.inputValidationWarningBackground = e.inputValidationWarningBackground, this.inputValidationWarningBorder = e.inputValidationWarningBorder, this.inputValidationErrorBackground = e.inputValidationErrorBackground, this.inputValidationErrorBorder = e.inputValidationErrorBorder, this.applyStyles()
          }, t.prototype.applyStyles = function () {
            if (this.domNode) {
              var e = {inputActiveOptionBorder: this.inputActiveOptionBorder};
              this.regex.style(e), this.wholeWords.style(
                  e), this.caseSensitive.style(e);
              var t = {
                inputBackground: this.inputBackground,
                inputForeground: this.inputForeground,
                inputBorder: this.inputBorder,
                inputValidationInfoBackground: this.inputValidationInfoBackground,
                inputValidationInfoBorder: this.inputValidationInfoBorder,
                inputValidationWarningBackground: this.inputValidationWarningBackground,
                inputValidationWarningBorder: this.inputValidationWarningBorder,
                inputValidationErrorBackground: this.inputValidationErrorBackground,
                inputValidationErrorBorder: this.inputValidationErrorBorder
              };
              this.inputBox.style(t)
            }
          }, t.prototype.select = function () {
            this.inputBox.select()
          }, t.prototype.focus = function () {
            this.inputBox.focus()
          }, t.prototype.getCaseSensitive = function () {
            return this.caseSensitive.checked
          }, t.prototype.setCaseSensitive = function (e) {
            this.caseSensitive.checked = e, this.setInputWidth()
          }, t.prototype.getWholeWords = function () {
            return this.wholeWords.checked
          }, t.prototype.setWholeWords = function (e) {
            this.wholeWords.checked = e, this.setInputWidth()
          }, t.prototype.getRegex = function () {
            return this.regex.checked
          }, t.prototype.setRegex = function (e) {
            this.regex.checked = e, this.setInputWidth()
          }, t.prototype.focusOnCaseSensitive = function () {
            this.caseSensitive.focus()
          }, t.prototype.highlightFindOptions = function () {
            i.removeClass(this.domNode, "highlight-"
                + this._lastHighlightFindOptions), this._lastHighlightFindOptions = 1
                - this._lastHighlightFindOptions, i.addClass(this.domNode,
                "highlight-" + this._lastHighlightFindOptions)
          }, t.prototype.setInputWidth = function () {
            var e = this.width - this.caseSensitive.width()
                - this.wholeWords.width() - this.regex.width();
            this.inputBox.width = e
          }, t.prototype.buildDomNode = function (e, t, n) {
            var r = this;
            this.domNode = document.createElement(
                "div"), this.domNode.style.width = this.width
                + "px", i.addClass(this.domNode,
                "monaco-findInput"), this.inputBox = this._register(
                new o.InputBox(this.domNode, this.contextViewProvider, {
                  placeholder: this.placeholder || "",
                  ariaLabel: this.label || "",
                  validationOptions: {
                    validation: this.validation || null,
                    showMessage: !0
                  },
                  inputBackground: this.inputBackground,
                  inputForeground: this.inputForeground,
                  inputBorder: this.inputBorder,
                  inputValidationInfoBackground: this.inputValidationInfoBackground,
                  inputValidationInfoBorder: this.inputValidationInfoBorder,
                  inputValidationWarningBackground: this.inputValidationWarningBackground,
                  inputValidationWarningBorder: this.inputValidationWarningBorder,
                  inputValidationErrorBackground: this.inputValidationErrorBackground,
                  inputValidationErrorBorder: this.inputValidationErrorBorder
                })), this.regex = this._register(new a.RegexCheckbox({
              appendTitle: n, isChecked: !1, onChange: function (e) {
                r._onDidOptionChange.fire(e), e
                || r.inputBox.focus(), r.setInputWidth(), r.validate()
              }, inputActiveOptionBorder: this.inputActiveOptionBorder
            })), this.wholeWords = this._register(new a.WholeWordsCheckbox({
              appendTitle: t, isChecked: !1, onChange: function (e) {
                r._onDidOptionChange.fire(e), e
                || r.inputBox.focus(), r.setInputWidth(), r.validate()
              }, inputActiveOptionBorder: this.inputActiveOptionBorder
            })), this.caseSensitive = this._register(
                new a.CaseSensitiveCheckbox({
                  appendTitle: e, isChecked: !1, onChange: function (e) {
                    r._onDidOptionChange.fire(e), e
                    || r.inputBox.focus(), r.setInputWidth(), r.validate()
                  }, onKeyDown: function (e) {
                    r._onCaseSensitiveKeyDown.fire(e)
                  }, inputActiveOptionBorder: this.inputActiveOptionBorder
                }));
            var s = [this.caseSensitive.domNode, this.wholeWords.domNode,
              this.regex.domNode];
            this.onkeydown(this.domNode, function (e) {
              if (e.equals(15) || e.equals(17) || e.equals(9)) {
                var t = s.indexOf(document.activeElement);
                if (t >= 0) {
                  var n = void 0;
                  e.equals(17) ? n = (t + 1) % s.length : e.equals(15) && (n = 0
                  === t ? s.length - 1 : t - 1), e.equals(9) ? s[t].blur() : n
                      >= 0 && s[n].focus(), i.EventHelper.stop(e, !0)
                }
              }
            }), this.setInputWidth();
            var u = document.createElement("div");
            u.className = "controls", u.appendChild(
                this.caseSensitive.domNode), u.appendChild(
                this.wholeWords.domNode), u.appendChild(
                this.regex.domNode), this.domNode.appendChild(u)
          }, t.prototype.validate = function () {
            this.inputBox.validate()
          }, t.prototype.showMessage = function (e) {
            this.inputBox.showMessage(e)
          }, t.prototype.clearMessage = function () {
            this.inputBox.hideMessage()
          }, t.prototype.clearValidation = function () {
            this.inputBox.hideMessage()
          }, t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.OPTION_CHANGE = "optionChange", t
        }(r.Widget);
        t.FindInput = l
      }), define(d[290], h([6, 8]), function (e, t) {
    return e.create("vs/base/common/keybindingLabels", t)
  }), define(d[155], h([1, 0, 290]), function (e, t, n) {
    "use strict";

    function i(e, t, n) {
      if (null === t) {
        return "";
      }
      var i = [];
      return e.ctrlKey && i.push(n.ctrlKey), e.shiftKey && i.push(
          n.shiftKey), e.altKey && i.push(n.altKey), e.metaKey && i.push(
          n.metaKey), i.push(t), i.join(n.separator)
    }

    function o(e, t, n, o, r) {
      var s = i(e, t, r);
      return null !== o && (s += " ", s += i(n, o, r)), s
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e(e, t, n) {
        void 0 === n
        && (n = t), this.modifierLabels = [null], this.modifierLabels[2] = e, this.modifierLabels[1] = t, this.modifierLabels[3] = n
      }

      return e.prototype.toLabel = function (e, t, n, i, r) {
        return null === t && null === i ? null : o(e, t, n, i,
            this.modifierLabels[r])
      }, e
    }();
    t.ModifierLabelProvider = r, t.UILabelProvider = new r(
        {ctrlKey: "⌃", shiftKey: "⇧", altKey: "⌥", metaKey: "⌘", separator: ""},
        {
          ctrlKey: n.localize(0, null),
          shiftKey: n.localize(1, null),
          altKey: n.localize(2, null),
          metaKey: n.localize(3, null),
          separator: "+"
        }), t.AriaLabelProvider = new r({
      ctrlKey: n.localize(4, null),
      shiftKey: n.localize(5, null),
      altKey: n.localize(6, null),
      metaKey: n.localize(7, null),
      separator: "+"
    }, {
      ctrlKey: n.localize(8, null),
      shiftKey: n.localize(9, null),
      altKey: n.localize(10, null),
      metaKey: n.localize(11, null),
      separator: "+"
    }), t.ElectronAcceleratorLabelProvider = new r({
      ctrlKey: "Ctrl",
      shiftKey: "Shift",
      altKey: "Alt",
      metaKey: "Cmd",
      separator: "+"
    }, {
      ctrlKey: "Ctrl",
      shiftKey: "Shift",
      altKey: "Alt",
      metaKey: "Super",
      separator: "+"
    }), t.UserSettingsLabelProvider = new r({
      ctrlKey: "ctrl",
      shiftKey: "shift",
      altKey: "alt",
      metaKey: "cmd",
      separator: "+"
    }, {
      ctrlKey: "ctrl",
      shiftKey: "shift",
      altKey: "alt",
      metaKey: "win",
      separator: "+"
    }, {
      ctrlKey: "ctrl",
      shiftKey: "shift",
      altKey: "alt",
      metaKey: "meta",
      separator: "+"
    })
  }), define(d[292], h([1, 0, 26, 155, 4, 212]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = o.$, s = function () {
      function e(e, t) {
        this.os = t, this.domNode = o.append(e,
            r(".monaco-keybinding")), this.didEverRender = !1, e.appendChild(
            this.domNode)
      }

      return Object.defineProperty(e.prototype, "element", {
        get: function () {
          return this.domNode
        }, enumerable: !0, configurable: !0
      }), e.prototype.set = function (t, n) {
        this.didEverRender && this.keybinding === t && e.areSame(this.matches,
            n) || (this.keybinding = t, this.matches = n, this.render())
      }, e.prototype.render = function () {
        if (o.clearNode(this.domNode), this.keybinding) {
          var e = this.keybinding.getParts(), t = e[0], n = e[1];
          t && this.renderPart(this.domNode, t,
              this.matches ? this.matches.firstPart : null), n && (o.append(
              this.domNode,
              r("span.monaco-keybinding-key-chord-separator", null,
                  " ")), this.renderPart(this.domNode, n,
              this.matches ? this.matches.chordPart
                  : null)), this.domNode.title = this.keybinding.getAriaLabel()
        }
        this.didEverRender = !0
      }, e.prototype.renderPart = function (e, t, n) {
        var o = i.UILabelProvider.modifierLabels[this.os];
        t.ctrlKey && this.renderKey(e, o.ctrlKey, n && n.ctrlKey,
            o.separator), t.shiftKey && this.renderKey(e, o.shiftKey,
            n && n.shiftKey, o.separator), t.altKey && this.renderKey(e,
            o.altKey, n && n.altKey, o.separator), t.metaKey && this.renderKey(
            e, o.metaKey, n && n.metaKey, o.separator);
        var r = t.keyLabel;
        r && this.renderKey(e, r, n && n.keyCode, "")
      }, e.prototype.renderKey = function (e, t, n, i) {
        o.append(e,
            r("span.monaco-keybinding-key" + (n ? ".highlight" : ""), null,
                t)), i && o.append(e,
            r("span.monaco-keybinding-key-separator", null, i))
      }, e.prototype.dispose = function () {
        this.keybinding = null
      }, e.areSame = function (e, t) {
        return e === t || !e && !t || !!e && !!t && n.equals(e.firstPart,
            t.firstPart) && n.equals(e.chordPart, t.chordPart)
      }, e
    }();
    t.KeybindingLabel = s
  }), define(d[293], h([6, 8]), function (e, t) {
    return e.create("vs/base/common/severity", t)
  }), define(d[36], h([1, 0, 293, 9]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o;
    !function (e) {
      e[e.Ignore = 0] = "Ignore", e[e.Info = 1] = "Info", e[e.Warning = 2] = "Warning", e[e.Error = 3] = "Error"
    }(o || (o = {})), function (e) {
      var t = "error", o = "warning", r = "warn", s = "info",
          a = Object.create(null);
      a[e.Error] = n.localize(0, null), a[e.Warning] = n.localize(1,
          null), a[e.Info] = n.localize(2, null), e.fromValue = function (n) {
        return n ? i.equalsIgnoreCase(t, n) ? e.Error : i.equalsIgnoreCase(o, n)
        || i.equalsIgnoreCase(r, n) ? e.Warning : i.equalsIgnoreCase(s, n)
            ? e.Info : e.Ignore : e.Ignore
      }, e.toString = function (e) {
        return a[e] || i.empty
      }, e.compare = function (e, t) {
        return t - e
      }
    }(o || (o = {})), t.default = o
  }), define(d[295], h([6, 8]), function (e, t) {
    return e.create("vs/base/parts/quickopen/browser/quickOpenModel", t)
  }), define(d[120],
      h([1, 0, 295, 7, 29, 81, 9, 45, 162, 229, 75, 110, 4, 292, 15]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var m = 0, v = function () {
          function e() {
          }

          return e.getLabel = function (e) {
            return e.getLabel()
          }, e.getResourcePath = function (e) {
            var t = e.getResource();
            return t && t.fsPath
          }, e
        }(), _ = function () {
          function e(e) {
            void 0 === e
            && (e = []), this.id = (m++).toString(), this.labelHighlights = e, this.descriptionHighlights = []
          }

          return e.prototype.getId = function () {
            return this.id
          }, e.prototype.getLabel = function () {
            return null
          }, e.prototype.getLabelOptions = function () {
            return null
          }, e.prototype.getAriaLabel = function () {
            return this.getLabel()
          }, e.prototype.getDetail = function () {
            return null
          }, e.prototype.getIcon = function () {
            return null
          }, e.prototype.getDescription = function () {
            return null
          }, e.prototype.getKeybinding = function () {
            return null
          }, e.prototype.getResource = function () {
            return null
          }, e.prototype.isHidden = function () {
            return this.hidden
          }, e.prototype.setHidden = function (e) {
            this.hidden = e
          }, e.prototype.setHighlights = function (e, t, n) {
            this.labelHighlights = e, this.descriptionHighlights = t, this.detailHighlights = n
          }, e.prototype.getHighlights = function () {
            return [this.labelHighlights, this.descriptionHighlights,
              this.detailHighlights]
          }, e.prototype.run = function (e, t) {
            return !1
          }, e.compare = function (e, t, n) {
            var i = e.getHighlights()[0] || [], o = t.getHighlights()[0] || [];
            if (i.length && !o.length) {
              return -1;
            }
            if (!i.length && o.length) {
              return 1;
            }
            var r = e.getLabel(), s = t.getLabel();
            if (r === s) {
              var a = e.getResource(), u = t.getResource();
              a && u && (r = a.fsPath, s = u.fsPath)
            }
            return l.compareAnything(r, s, n)
          }, e.compareByScore = function (e, t, n, i, o) {
            return l.compareByScore(e, t, v, n, i, o)
          }, e.highlight = function (e, t, n) {
            void 0 === n && (n = !1);
            var i = [], o = [], u = s.stripWildcards(t), l = e.getLabel(),
                c = e.getDescription();
            if (e.getResource()) {
              var d = e.getResource().fsPath;
              if (t.length === d.length && t.toLowerCase()
                  === d.toLowerCase()) {
                i.push(
                    {start: 0, end: l.length}), o.push(
                    {start: 0, end: c.length});
              } else if (n || t.indexOf(
                  a.nativeSep) >= 0) {
                var h = r.matchesFuzzy(t, l, n);
                if (h) {
                  i = h;
                } else {
                  var p = c ? c + a.nativeSep : "", f = p.length,
                      g = r.matchesFuzzy(t, p + l, n);
                  g || t === u || (g = r.matchesFuzzy(u, p + l, n)), g
                  && g.forEach(function (e) {
                    e.start < f && e.end > f ? (i.push(
                        {start: 0, end: e.end - f}), o.push(
                        {start: e.start, end: f})) : e.start >= f ? i.push(
                        {start: e.start - f, end: e.end - f}) : o.push(e)
                  })
                }
              } else {
                i = r.matchesFuzzy(t, l)
              }
            } else {
              i = r.matchesFuzzy(t, l);
            }
            return {labelHighlights: i, descriptionHighlights: o}
          }, e.prototype.isFile = function () {
            return !1
          }, e
        }();
        t.QuickOpenEntry = _;
        var y = function (e) {
          function t(t, n, i) {
            var o = e.call(this) || this;
            return o.entry = t, o.groupLabel = n, o.withBorder = i, o
          }

          return f(t, e), t.prototype.getGroupLabel = function () {
            return this.groupLabel
          }, t.prototype.setGroupLabel = function (e) {
            this.groupLabel = e
          }, t.prototype.showBorder = function () {
            return this.withBorder
          }, t.prototype.setShowBorder = function (e) {
            this.withBorder = e
          }, t.prototype.getLabel = function () {
            return this.entry ? this.entry.getLabel()
                : e.prototype.getLabel.call(this)
          }, t.prototype.getLabelOptions = function () {
            return this.entry ? this.entry.getLabelOptions()
                : e.prototype.getLabelOptions.call(this)
          }, t.prototype.getAriaLabel = function () {
            return this.entry ? this.entry.getAriaLabel()
                : e.prototype.getAriaLabel.call(this)
          }, t.prototype.getDetail = function () {
            return this.entry ? this.entry.getDetail()
                : e.prototype.getDetail.call(this)
          }, t.prototype.getResource = function () {
            return this.entry ? this.entry.getResource()
                : e.prototype.getResource.call(this)
          }, t.prototype.getIcon = function () {
            return this.entry ? this.entry.getIcon() : e.prototype.getIcon.call(
                this)
          }, t.prototype.getDescription = function () {
            return this.entry ? this.entry.getDescription()
                : e.prototype.getDescription.call(this)
          }, t.prototype.getEntry = function () {
            return this.entry
          }, t.prototype.getHighlights = function () {
            return this.entry ? this.entry.getHighlights()
                : e.prototype.getHighlights.call(this)
          }, t.prototype.isHidden = function () {
            return this.entry ? this.entry.isHidden()
                : e.prototype.isHidden.call(this)
          }, t.prototype.setHighlights = function (t, n, i) {
            this.entry ? this.entry.setHighlights(t, n, i)
                : e.prototype.setHighlights.call(this, t, n, i)
          }, t.prototype.setHidden = function (t) {
            this.entry ? this.entry.setHidden(t) : e.prototype.setHidden.call(
                this, t)
          }, t.prototype.run = function (t, n) {
            return this.entry ? this.entry.run(t, n) : e.prototype.run.call(
                this, t, n)
          }, t
        }(_);
        t.QuickOpenEntryGroup = y;
        var C = function () {
          function e() {
          }

          return e.prototype.hasActions = function (e, t) {
            return !1
          }, e.prototype.getActions = function (e, t) {
            return i.TPromise.as(null)
          }, e.prototype.hasSecondaryActions = function (e, t) {
            return !1
          }, e.prototype.getSecondaryActions = function (e, t) {
            return i.TPromise.as(null)
          }, e.prototype.getActionItem = function (e, t, n) {
            return null
          }, e
        }(), b = function () {
          function e(e, t) {
            void 0 === e && (e = new C), void 0 === t
            && (t = null), this.actionProvider = e, this.actionRunner = t
          }

          return e.prototype.getHeight = function (e) {
            return e.getDetail() ? 44 : 22
          }, e.prototype.getTemplateId = function (e) {
            return e instanceof y ? "quickOpenEntryGroup" : "quickOpenEntry"
          }, e.prototype.renderTemplate = function (e, t, n) {
            var i = document.createElement("div");
            h.addClass(i, "sub-content"), t.appendChild(i);
            var o = h.$(".quick-open-row"), r = h.$(".quick-open-row"),
                s = h.$(".quick-open-entry", null, o, r);
            i.appendChild(s);
            var a = document.createElement("span");
            o.appendChild(a);
            var l = new u.IconLabel(o, {supportHighlights: !0}),
                f = document.createElement("span");
            o.appendChild(f), h.addClass(f, "quick-open-entry-description");
            var m = new d.HighlightedLabel(f),
                v = document.createElement("span");
            o.appendChild(v), h.addClass(v, "quick-open-entry-keybinding");
            var _ = new p.KeybindingLabel(v, g.OS),
                y = document.createElement("div");
            r.appendChild(y), h.addClass(y, "quick-open-entry-meta");
            var C, b = new d.HighlightedLabel(y);
            "quickOpenEntryGroup" === e && (C = document.createElement(
                "div"), h.addClass(C, "results-group"), t.appendChild(
                C)), h.addClass(t, "actions");
            var w = document.createElement("div");
            return h.addClass(w, "primary-action-bar"), t.appendChild(w), {
              container: t,
              entry: s,
              icon: a,
              label: l,
              detail: b,
              description: m,
              keybinding: _,
              group: C,
              actionBar: new c.ActionBar(w, {actionRunner: this.actionRunner})
            }
          }, e.prototype.renderElement = function (e, t, n, i) {
            var o = n;
            if (this.actionProvider.hasActions(null, e) ? h.addClass(
                o.container, "has-actions") : h.removeClass(o.container,
                "has-actions"), o.actionBar.context = e, this.actionProvider.getActions(
                null, e).then(function (e) {
              o.actionBar.isEmpty() && e && e.length > 0 ? o.actionBar.push(e,
                  {icon: !0, label: !1}) : o.actionBar.isEmpty() || e && 0
                  !== e.length || o.actionBar.clear()
            }), e instanceof y && e.getGroupLabel() ? h.addClass(o.container,
                "has-group-label") : h.removeClass(o.container,
                "has-group-label"), e instanceof y) {
              var r = e, s = n;
              r.showBorder() ? (h.addClass(s.container,
                      "results-group-separator"), s.container.style.borderTopColor = i.pickerGroupBorder.toString())
                  : (h.removeClass(s.container,
                      "results-group-separator"), s.container.style.borderTopColor = null);
              var a = r.getGroupLabel() || "";
              s.group.textContent = a, s.group.style.color = i.pickerGroupForeground.toString()
            }
            if (e instanceof _) {
              var u = e.getHighlights(), l = u[0], c = u[1], d = u[2],
                  p = e.getIcon() ? "quick-open-entry-icon " + e.getIcon() : "";
              o.icon.className = p;
              var f = e.getLabelOptions() || Object.create(null);
              f.matches = l || [], o.label.setValue(e.getLabel(), null,
                  f), o.detail.set(e.getDetail(), d), o.description.set(
                  e.getDescription(), c
                  || []), o.description.element.title = e.getDescription(), o.keybinding.set(
                  e.getKeybinding(), null)
            }
          }, e.prototype.disposeTemplate = function (e, t) {
            var n = t;
            n.actionBar.dispose(), n.actionBar = null, n.container = null, n.entry = null, n.description.dispose(), n.description = null, n.keybinding.dispose(), n.keybinding = null, n.detail.dispose(), n.detail = null, n.group = null, n.icon = null, n.label.dispose(), n.label = null
          }, e
        }(), w = function () {
          function e(e, t) {
            void 0 === e && (e = []), void 0 === t
            && (t = new C), this._entries = e, this._dataSource = this, this._renderer = new b(
                t), this._filter = this, this._runner = this, this._accessibilityProvider = this
          }

          return Object.defineProperty(e.prototype, "entries", {
            get: function () {
              return this._entries
            }, set: function (e) {
              this._entries = e
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "dataSource", {
            get: function () {
              return this._dataSource
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "renderer", {
            get: function () {
              return this._renderer
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "filter", {
            get: function () {
              return this._filter
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "runner", {
            get: function () {
              return this._runner
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "accessibilityProvider", {
            get: function () {
              return this._accessibilityProvider
            }, enumerable: !0, configurable: !0
          }), e.prototype.addEntries = function (e) {
            o.isArray(e) && (this._entries = this._entries.concat(e))
          }, e.prototype.setEntries = function (e) {
            o.isArray(e) && (this._entries = e)
          }, e.prototype.getEntries = function (e) {
            return e ? this._entries.filter(function (e) {
              return !e.isHidden()
            }) : this._entries
          }, e.prototype.getId = function (e) {
            return e.getId()
          }, e.prototype.getLabel = function (e) {
            return e.getLabel()
          }, e.prototype.getAriaLabel = function (e) {
            return e.getAriaLabel() ? n.localize(0, null, e.getAriaLabel())
                : n.localize(1, null)
          }, e.prototype.isVisible = function (e) {
            return !e.isHidden()
          }, e.prototype.run = function (e, t, n) {
            return e.run(t, n)
          }, e
        }();
        t.QuickOpenModel = w
      }), define(d[297], h([6, 8]), function (e, t) {
    return e.create("vs/base/parts/quickopen/browser/quickOpenWidget", t)
  }), define(d[298], h([6, 8]), function (e, t) {
    return e.create("vs/base/parts/tree/browser/treeDefaults", t)
  }), define(d[128], h([1, 0, 298, 7, 53, 15, 10, 4, 40]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l;
        !function (e) {
          e[e.ON_MOUSE_DOWN = 0] = "ON_MOUSE_DOWN", e[e.ON_MOUSE_UP = 1] = "ON_MOUSE_UP"
        }(l = t.ClickBehavior || (t.ClickBehavior = {}));
        var c = function () {
          function e() {
            this._arr = []
          }

          return e.prototype.set = function (e, t) {
            this._arr.push(
                {keybinding: u.createKeybinding(e, r.OS), callback: t})
          }, e.prototype.dispatch = function (e) {
            for (var t = this._arr.length - 1; t >= 0; t--) {
              var n = this._arr[t];
              if (e.equals(n.keybinding)) {
                return n.callback
              }
            }
            return null
          }, e
        }();
        t.KeybindingDispatcher = c;
        var d = function () {
          function e(e) {
            void 0 === e && (e = {
              clickBehavior: l.ON_MOUSE_UP,
              keyboardSupport: !0
            });
            var t = this;
            this.options = e, this.downKeyBindingDispatcher = new c, this.upKeyBindingDispatcher = new c, ("boolean"
                != typeof e.keyboardSupport || e.keyboardSupport)
            && (this.downKeyBindingDispatcher.set(16, function (e, n) {
              return t.onUp(e, n)
            }), this.downKeyBindingDispatcher.set(18, function (e, n) {
              return t.onDown(e, n)
            }), this.downKeyBindingDispatcher.set(15, function (e, n) {
              return t.onLeft(e, n)
            }), this.downKeyBindingDispatcher.set(17, function (e, n) {
              return t.onRight(e, n)
            }), r.isMacintosh && (this.downKeyBindingDispatcher.set(2064,
                function (e, n) {
                  return t.onLeft(e, n)
                }), this.downKeyBindingDispatcher.set(300, function (e, n) {
              return t.onDown(e, n)
            }), this.downKeyBindingDispatcher.set(302, function (e, n) {
              return t.onUp(e, n)
            })), this.downKeyBindingDispatcher.set(11, function (e, n) {
              return t.onPageUp(e, n)
            }), this.downKeyBindingDispatcher.set(12, function (e, n) {
              return t.onPageDown(e, n)
            }), this.downKeyBindingDispatcher.set(14, function (e, n) {
              return t.onHome(e, n)
            }), this.downKeyBindingDispatcher.set(13, function (e, n) {
              return t.onEnd(e, n)
            }), this.downKeyBindingDispatcher.set(10, function (e, n) {
              return t.onSpace(e, n)
            }), this.downKeyBindingDispatcher.set(9, function (e, n) {
              return t.onEscape(e, n)
            }), this.upKeyBindingDispatcher.set(3,
                this.onEnter.bind(this)), this.upKeyBindingDispatcher.set(2051,
                this.onEnter.bind(this)))
          }

          return e.prototype.onMouseDown = function (e, t, n, i) {
            if (void 0 === i && (i = "mouse"), this.options.clickBehavior
            === l.ON_MOUSE_DOWN && (n.leftButton || n.middleButton)) {
              if (n.target) {
                if (n.target.tagName && "input"
                    === n.target.tagName.toLowerCase()) {
                  return !1;
                }
                if (a.findParentWithClass(n.target, "monaco-action-bar",
                    "row")) {
                  return !1
                }
              }
              return this.onLeftClick(e, t, n, i)
            }
            return !1
          }, e.prototype.onClick = function (e, t, n) {
            return r.isMacintosh && n.ctrlKey
                ? (n.preventDefault(), n.stopPropagation(), !1) : (!n.target
                    || !n.target.tagName || "input"
                    !== n.target.tagName.toLowerCase())
                && ((this.options.clickBehavior !== l.ON_MOUSE_DOWN
                    || !n.leftButton && !n.middleButton) && this.onLeftClick(e,
                    t, n))
          }, e.prototype.onLeftClick = function (e, t, n, i) {
            void 0 === i && (i = "mouse");
            var o = {origin: i, originalEvent: n};
            return e.getInput() === t ? (e.clearFocus(o), e.clearSelection(o))
                : (n && n.browserEvent && "mousedown" === n.browserEvent.type
                || n.preventDefault(), n.stopPropagation(), e.DOMFocus(), e.setSelection(
                    [t], o), e.setFocus(t, o), e.isExpanded(t) ? e.collapse(
                    t).done(null, s.onUnexpectedError) : e.expand(t).done(null,
                    s.onUnexpectedError)), !0
          }, e.prototype.onContextMenu = function (e, t, n) {
            return (!n.target || !n.target.tagName || "input"
                !== n.target.tagName.toLowerCase()) && (n
            && (n.preventDefault(), n.stopPropagation()), !1)
          }, e.prototype.onTap = function (e, t, n) {
            var i = n.initialTarget;
            return (!i || !i.tagName || "input" !== i.tagName.toLowerCase())
                && this.onLeftClick(e, t, n, "touch")
          }, e.prototype.onKeyDown = function (e, t) {
            return this.onKey(this.downKeyBindingDispatcher, e, t)
          }, e.prototype.onKeyUp = function (e, t) {
            return this.onKey(this.upKeyBindingDispatcher, e, t)
          }, e.prototype.onKey = function (e, t, n) {
            var i = e.dispatch(n.toKeybinding());
            return !(!i || !i(t, n))
                && (n.preventDefault(), n.stopPropagation(), !0)
          }, e.prototype.onUp = function (e, t) {
            var n = {origin: "keyboard", originalEvent: t};
            return e.getHighlight() ? e.clearHighlight(n) : (e.focusPrevious(1,
                n), e.reveal(e.getFocus()).done(null, s.onUnexpectedError)), !0
          }, e.prototype.onPageUp = function (e, t) {
            var n = {origin: "keyboard", originalEvent: t};
            return e.getHighlight() ? e.clearHighlight(n)
                : (e.focusPreviousPage(n), e.reveal(e.getFocus()).done(null,
                    s.onUnexpectedError)), !0
          }, e.prototype.onDown = function (e, t) {
            var n = {origin: "keyboard", originalEvent: t};
            return e.getHighlight() ? e.clearHighlight(n) : (e.focusNext(1,
                n), e.reveal(e.getFocus()).done(null, s.onUnexpectedError)), !0
          }, e.prototype.onPageDown = function (e, t) {
            var n = {origin: "keyboard", originalEvent: t};
            return e.getHighlight() ? e.clearHighlight(n) : (e.focusNextPage(
                n), e.reveal(e.getFocus()).done(null, s.onUnexpectedError)), !0
          }, e.prototype.onHome = function (e, t) {
            var n = {origin: "keyboard", originalEvent: t};
            return e.getHighlight() ? e.clearHighlight(n) : (e.focusFirst(
                n), e.reveal(e.getFocus()).done(null, s.onUnexpectedError)), !0
          }, e.prototype.onEnd = function (e, t) {
            var n = {origin: "keyboard", originalEvent: t};
            return e.getHighlight() ? e.clearHighlight(n) : (e.focusLast(
                n), e.reveal(e.getFocus()).done(null, s.onUnexpectedError)), !0
          }, e.prototype.onLeft = function (e, t) {
            var n = {origin: "keyboard", originalEvent: t};
            if (e.getHighlight()) {
              e.clearHighlight(n);
            } else {
              var i = e.getFocus();
              e.collapse(i).then(function (t) {
                if (i && !t) {
                  return e.focusParent(n), e.reveal(e.getFocus())
                }
              }).done(null, s.onUnexpectedError)
            }
            return !0
          }, e.prototype.onRight = function (e, t) {
            var n = {origin: "keyboard", originalEvent: t};
            if (e.getHighlight()) {
              e.clearHighlight(n);
            } else {
              var i = e.getFocus();
              e.expand(i).then(function (t) {
                if (i && !t) {
                  return e.focusFirstChild(n), e.reveal(e.getFocus())
                }
              }).done(null, s.onUnexpectedError)
            }
            return !0
          }, e.prototype.onEnter = function (e, t) {
            var n = {origin: "keyboard", originalEvent: t};
            if (e.getHighlight()) {
              return !1;
            }
            var i = e.getFocus();
            return i && e.setSelection([i], n), !0
          }, e.prototype.onSpace = function (e, t) {
            if (e.getHighlight()) {
              return !1;
            }
            var n = e.getFocus();
            return n && e.toggleExpansion(n), !0
          }, e.prototype.onEscape = function (e, t) {
            var n = {origin: "keyboard", originalEvent: t};
            return e.getHighlight() ? (e.clearHighlight(n), !0)
                : e.getSelection().length ? (e.clearSelection(n), !0)
                    : !!e.getFocus() && (e.clearFocus(n), !0)
          }, e
        }();
        t.DefaultController = d;
        var h = function () {
          function e() {
          }

          return e.prototype.getDragURI = function (e, t) {
            return null
          }, e.prototype.onDragStart = function (e, t, n) {
          }, e.prototype.onDragOver = function (e, t, n, i) {
            return null
          }, e.prototype.drop = function (e, t, n, i) {
          }, e
        }();
        t.DefaultDragAndDrop = h;
        var p = function () {
          function e() {
          }

          return e.prototype.isVisible = function (e, t) {
            return !0
          }, e
        }();
        t.DefaultFilter = p;
        var g = function () {
          function e() {
          }

          return e.prototype.compare = function (e, t, n) {
            return 0
          }, e
        }();
        t.DefaultSorter = g;
        var m = function () {
          function e() {
          }

          return e.prototype.getAriaLabel = function (e, t) {
            return null
          }, e
        }();
        t.DefaultAccessibilityProvider = m;
        var v = function (e) {
          function t(t, i) {
            var o = e.call(this, "vs.tree.collapse", n.localize(0, null),
                "monaco-tree-action collapse-all", i) || this;
            return o.viewer = t, o
          }

          return f(t, e), t.prototype.run = function (e) {
            return this.viewer.getHighlight() ? i.TPromise.as(null)
                : (this.viewer.collapseAll(), this.viewer.clearSelection(), this.viewer.clearFocus(), this.viewer.DOMFocus(), this.viewer.focusFirst(), i.TPromise.as(
                    null))
          }, t
        }(o.Action);
        t.CollapseAllAction = v
      }), define(d[161], h([1, 0, 128, 38, 466, 238, 107, 11, 3, 32, 26, 261]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function () {
          return function (e, t, i) {
            if (void 0 === i
            && (i = {}), this.tree = e, this.configuration = t, this.options = i, !t.dataSource) {
              throw new Error(
                  "You must provide a Data Source to the tree.");
            }
            this.dataSource = t.dataSource, this.renderer = t.renderer, this.controller = t.controller
                || new n.DefaultController({
                  clickBehavior: n.ClickBehavior.ON_MOUSE_UP,
                  keyboardSupport: "boolean" != typeof i.keyboardSupport
                      || i.keyboardSupport
                }), this.dnd = t.dnd
                || new n.DefaultDragAndDrop, this.filter = t.filter
                || new n.DefaultFilter, this.sorter = t.sorter
                || null, this.accessibilityProvider = t.accessibilityProvider
                || new n.DefaultAccessibilityProvider
          }
        }();
        t.TreeContext = d;
        var h = {
          listFocusBackground: l.Color.fromHex("#073655"),
          listActiveSelectionBackground: l.Color.fromHex("#0E639C"),
          listActiveSelectionForeground: l.Color.fromHex("#FFFFFF"),
          listFocusAndSelectionBackground: l.Color.fromHex("#094771"),
          listFocusAndSelectionForeground: l.Color.fromHex("#FFFFFF"),
          listInactiveSelectionBackground: l.Color.fromHex("#3F3F46"),
          listHoverBackground: l.Color.fromHex("#2A2D2E"),
          listDropBackground: l.Color.fromHex("#383B3D")
        }, p = function (e) {
          function t(t, n, i) {
            void 0 === i && (i = {});
            var s = e.call(this) || this;
            return s.toDispose = [], s._onDispose = new a.Emitter, s._onHighlightChange = new a.Emitter, s.toDispose.push(
                s._onDispose,
                s._onHighlightChange), s.container = t, s.configuration = n, s.options = i, c.mixin(
                s.options, h, !1), s.options.twistiePixels = "number"
            == typeof s.options.twistiePixels ? s.options.twistiePixels
                : 32, s.options.showTwistie = !1
                !== s.options.showTwistie, s.options.indentPixels = "number"
            == typeof s.options.indentPixels ? s.options.indentPixels
                : 12, s.options.alwaysFocused = !0
                === s.options.alwaysFocused, s.options.useShadows = !1
                !== s.options.useShadows, s.options.paddingOnRow = !1
                !== s.options.paddingOnRow, s.context = new d(s, n,
                i), s.model = new o.TreeModel(
                s.context), s.view = new r.TreeView(s.context,
                s.container), s.view.setModel(s.model), s.addEmitter(
                s.model), s.addEmitter(s.view), s.toDispose.push(
                s.model.addListener("highlight", function () {
                  return s._onHighlightChange.fire()
                })), s
          }

          return f(t, e), t.prototype.style = function (e) {
            this.view.applyStyles(e)
          }, Object.defineProperty(t.prototype, "onDOMFocus", {
            get: function () {
              return this.view && this.view.onDOMFocus
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "onDOMBlur", {
            get: function () {
              return this.view && this.view.onDOMBlur
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "onHighlightChange", {
            get: function () {
              return this._onHighlightChange && this._onHighlightChange.event
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "onDispose", {
            get: function () {
              return this._onDispose && this._onDispose.event
            }, enumerable: !0, configurable: !0
          }), t.prototype.getHTMLElement = function () {
            return this.view.getHTMLElement()
          }, t.prototype.layout = function (e) {
            this.view.layout(e)
          }, t.prototype.DOMFocus = function () {
            this.view.focus()
          }, t.prototype.isDOMFocused = function () {
            return this.view.isFocused()
          }, t.prototype.DOMBlur = function () {
            this.view.blur()
          }, t.prototype.onVisible = function () {
            this.view.onVisible()
          }, t.prototype.onHidden = function () {
            this.view.onHidden()
          }, t.prototype.setInput = function (e) {
            return this.model.setInput(e)
          }, t.prototype.getInput = function () {
            return this.model.getInput()
          }, t.prototype.refresh = function (e, t) {
            return void 0 === e && (e = null), void 0 === t
            && (t = !0), this.model.refresh(e, t)
          }, t.prototype.expand = function (e) {
            return this.model.expand(e)
          }, t.prototype.expandAll = function (e) {
            return this.model.expandAll(e)
          }, t.prototype.collapse = function (e, t) {
            return void 0 === t && (t = !1), this.model.collapse(e, t)
          }, t.prototype.collapseAll = function (e, t) {
            return void 0 === e && (e = null), void 0 === t
            && (t = !1), this.model.collapseAll(e, t)
          }, t.prototype.toggleExpansion = function (e) {
            return this.model.toggleExpansion(e)
          }, t.prototype.toggleExpansionAll = function (e) {
            return this.model.toggleExpansionAll(e)
          }, t.prototype.isExpanded = function (e) {
            return this.model.isExpanded(e)
          }, t.prototype.getExpandedElements = function () {
            return this.model.getExpandedElements()
          }, t.prototype.reveal = function (e, t) {
            return void 0 === t && (t = null), this.model.reveal(e, t)
          }, t.prototype.getRelativeTop = function (e) {
            var t = this.model.getItem(e);
            return this.view.getRelativeTop(t)
          }, t.prototype.getScrollPosition = function () {
            return this.view.getScrollPosition()
          }, t.prototype.setScrollPosition = function (e) {
            this.view.setScrollPosition(e)
          }, t.prototype.getContentHeight = function () {
            return this.view.getTotalHeight()
          }, t.prototype.setHighlight = function (e, t) {
            this.model.setHighlight(e, t)
          }, t.prototype.getHighlight = function () {
            return this.model.getHighlight()
          }, t.prototype.isHighlighted = function (e) {
            return this.model.isFocused(e)
          }, t.prototype.clearHighlight = function (e) {
            this.model.setHighlight(null, e)
          }, t.prototype.select = function (e, t) {
            this.model.select(e, t)
          }, t.prototype.selectRange = function (e, t, n) {
            this.model.selectRange(e, t, n)
          }, t.prototype.deselectRange = function (e, t, n) {
            this.model.deselectRange(e, t, n)
          }, t.prototype.selectAll = function (e, t) {
            this.model.selectAll(e, t)
          }, t.prototype.deselect = function (e, t) {
            this.model.deselect(e, t)
          }, t.prototype.deselectAll = function (e, t) {
            this.model.deselectAll(e, t)
          }, t.prototype.setSelection = function (e, t) {
            this.model.setSelection(e, t)
          }, t.prototype.toggleSelection = function (e, t) {
            this.model.toggleSelection(e, t)
          }, t.prototype.isSelected = function (e) {
            return this.model.isSelected(e)
          }, t.prototype.getSelection = function () {
            return this.model.getSelection()
          }, t.prototype.clearSelection = function (e) {
            this.model.setSelection([], e)
          }, t.prototype.selectNext = function (e, t, n) {
            this.model.selectNext(e, t, n)
          }, t.prototype.selectPrevious = function (e, t, n) {
            this.model.selectPrevious(e, t, n)
          }, t.prototype.selectParent = function (e, t) {
            this.model.selectParent(e, t)
          }, t.prototype.setFocus = function (e, t) {
            this.model.setFocus(e, t)
          }, t.prototype.isFocused = function (e) {
            return this.model.isFocused(e)
          }, t.prototype.getFocus = function () {
            return this.model.getFocus()
          }, t.prototype.focusNext = function (e, t) {
            this.model.focusNext(e, t)
          }, t.prototype.focusPrevious = function (e, t) {
            this.model.focusPrevious(e, t)
          }, t.prototype.focusParent = function (e) {
            this.model.focusParent(e)
          }, t.prototype.focusFirstChild = function (e) {
            this.model.focusFirstChild(e)
          }, t.prototype.focusFirst = function (e, t) {
            this.model.focusFirst(e, t)
          }, t.prototype.focusNth = function (e, t) {
            this.model.focusNth(e, t)
          }, t.prototype.focusLast = function (e, t) {
            this.model.focusLast(e, t)
          }, t.prototype.focusNextPage = function (e) {
            this.view.focusNextPage(e)
          }, t.prototype.focusPreviousPage = function (e) {
            this.view.focusPreviousPage(e)
          }, t.prototype.clearFocus = function (e) {
            this.model.setFocus(null, e)
          }, t.prototype.addTraits = function (e, t) {
            this.model.addTraits(e, t)
          }, t.prototype.removeTraits = function (e, t) {
            this.model.removeTraits(e, t)
          }, t.prototype.toggleTrait = function (e, t) {
            this.model.hasTrait(e, t) ? this.model.removeTraits(e, [t])
                : this.model.addTraits(e, [t])
          }, t.prototype.hasTrait = function (e, t) {
            return this.model.hasTrait(e, t)
          }, t.prototype.getNavigator = function (e, t) {
            return new s.MappedNavigator(this.model.getNavigator(e, t),
                function (e) {
                  return e && e.getElement()
                })
          }, t.prototype.dispose = function () {
            this._onDispose.fire(), null !== this.model
            && (this.model.dispose(), this.model = null), null !== this.view
            && (this.view.dispose(), this.view = null), this.toDispose = u.dispose(
                this.toDispose), e.prototype.dispose.call(this)
          }, t
        }(i.EventEmitter);
        t.Tree = p
      }), define(d[301],
      h([1, 0, 297, 7, 15, 79, 29, 10, 100, 445, 52, 115, 36, 161, 220, 65, 128,
        4, 3, 48, 32, 26, 260]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, v, _, y, C, b,
          w) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var S = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype.onContextMenu = function (t, n, i) {
            return o.isMacintosh ? this.onLeftClick(t, n, i)
                : e.prototype.onContextMenu.call(this, t, n, i)
          }, t
        }(v.DefaultController);
        t.QuickOpenController = S;
        var E;
        !function (e) {
          e[e.ELEMENT_SELECTED = 0] = "ELEMENT_SELECTED", e[e.FOCUS_LOST = 1] = "FOCUS_LOST", e[e.CANCELED = 2] = "CANCELED"
        }(E = t.HideReason || (t.HideReason = {}));
        var L = {
          background: b.Color.fromHex("#1E1E1E"),
          foreground: b.Color.fromHex("#CCCCCC"),
          pickerGroupForeground: b.Color.fromHex("#0097FB"),
          pickerGroupBorder: b.Color.fromHex("#3F3F46"),
          widgetShadow: b.Color.fromHex("#000000"),
          progressBarBackground: b.Color.fromHex("#0E70C0")
        }, x = n.localize(0, null), N = function () {
          function e(e, t, n, i) {
            this.isDisposed = !1, this.toUnbind = [], this.container = e, this.callbacks = t, this.options = n, this.styles = n
                || Object.create(null), w.mixin(this.styles, L,
                !1), this.usageLogger = i, this.model = null
          }

          return e.prototype.getElement = function () {
            return c.$(this.builder)
          }, e.prototype.getModel = function () {
            return this.model
          }, e.prototype.setCallbacks = function (e) {
            this.callbacks = e
          }, e.prototype.create = function () {
            var e = this;
            return this.builder = c.$().div(function (t) {
              t.on(_.EventType.KEY_DOWN, function (t) {
                9 === new m.StandardKeyboardEvent(t).keyCode
                && (_.EventHelper.stop(t, !0), e.hide(E.CANCELED))
              }).on(_.EventType.CONTEXT_MENU, function (e) {
                return _.EventHelper.stop(e, !0)
              }).on(_.EventType.FOCUS, function (t) {
                return e.gainingFocus()
              }, null, !0).on(_.EventType.BLUR, function (t) {
                return e.loosingFocus(t)
              }, null, !0), e.progressBar = new g.ProgressBar(t.clone(),
                  {progressBarBackground: e.styles.progressBarBackground}), e.progressBar.getContainer().hide(), t.div(
                  {class: "quick-open-input"}, function (t) {
                    e.inputContainer = t, e.inputBox = new d.InputBox(
                        t.getHTMLElement(), null, {
                          placeholder: e.options.inputPlaceHolder || "",
                          ariaLabel: x,
                          inputBackground: e.styles.inputBackground,
                          inputForeground: e.styles.inputForeground,
                          inputBorder: e.styles.inputBorder,
                          inputValidationInfoBackground: e.styles.inputValidationInfoBackground,
                          inputValidationInfoBorder: e.styles.inputValidationInfoBorder,
                          inputValidationWarningBackground: e.styles.inputValidationWarningBackground,
                          inputValidationWarningBorder: e.styles.inputValidationWarningBorder,
                          inputValidationErrorBackground: e.styles.inputValidationErrorBackground,
                          inputValidationErrorBorder: e.styles.inputValidationErrorBorder
                        }), e.inputElement = e.inputBox.inputElement, e.inputElement.setAttribute(
                        "role", "combobox"), e.inputElement.setAttribute(
                        "aria-haspopup", "false"), e.inputElement.setAttribute(
                        "aria-autocomplete", "list"), _.addDisposableListener(
                        e.inputBox.inputElement, _.EventType.KEY_DOWN,
                        function (t) {
                          var n = new m.StandardKeyboardEvent(t),
                              i = e.shouldOpenInBackground(n);
                          if (2 !== n.keyCode) {
                            if (18 === n.keyCode || 16
                                === n.keyCode || 12 === n.keyCode || 11
                                === n.keyCode) {
                              _.EventHelper.stop(t,
                                  !0), e.navigateInTree(n.keyCode,
                                  n.shiftKey), e.inputBox.inputElement.selectionStart
                              === e.inputBox.inputElement.selectionEnd
                              && (e.inputBox.inputElement.selectionStart = e.inputBox.value.length);
                            } else if (3
                                === n.keyCode || i) {
                              _.EventHelper.stop(t, !0);
                              var o = e.tree.getFocus();
                              o && e.elementSelected(o, t,
                                  i ? u.Mode.OPEN_IN_BACKGROUND : u.Mode.OPEN)
                            }
                          }
                        }), _.addDisposableListener(e.inputBox.inputElement,
                        _.EventType.INPUT, function (t) {
                          e.onType()
                        })
                  }), e.treeContainer = t.div({class: "quick-open-tree"},
                  function (t) {
                    e.tree = new p.Tree(t.getHTMLElement(), {
                      dataSource: new l.DataSource(e),
                      controller: new S({
                        clickBehavior: v.ClickBehavior.ON_MOUSE_UP,
                        keyboardSupport: e.options.keyboardSupport
                      }),
                      renderer: e.renderer = new l.Renderer(e, e.styles),
                      filter: new l.Filter(e),
                      accessibilityProvider: new l.AccessibilityProvider(e)
                    }, {
                      twistiePixels: 11,
                      indentPixels: 0,
                      alwaysFocused: !0,
                      verticalScrollMode: C.ScrollbarVisibility.Visible,
                      ariaLabel: n.localize(1, null),
                      keyboardSupport: e.options.keyboardSupport
                    }), e.treeElement = e.tree.getHTMLElement(), e.toUnbind.push(
                        e.tree.addListener(r.EventType.FOCUS, function (t) {
                          e.elementFocused(t.focus, t)
                        })), e.toUnbind.push(
                        e.tree.addListener(r.EventType.SELECTION, function (t) {
                          t.selection && t.selection.length > 0
                          && e.elementSelected(t.selection[0], t)
                        }))
                  }).on(_.EventType.KEY_DOWN, function (t) {
                var n = new m.StandardKeyboardEvent(t);
                e.quickNavigateConfiguration && (18 !== n.keyCode && 16
                    !== n.keyCode && 12 !== n.keyCode && 11 !== n.keyCode
                    || (_.EventHelper.stop(t, !0), e.navigateInTree(n.keyCode)))
              }).on(_.EventType.KEY_UP, function (t) {
                var n = new m.StandardKeyboardEvent(t), i = n.keyCode;
                if (e.quickNavigateConfiguration) {
                  var o = e.quickNavigateConfiguration.keybindings;
                  if (3 === i || o.some(function (e) {
                    var t = e.getParts(), o = t[0];
                    return !t[1] && (o.shiftKey && 4 === i ? !(n.ctrlKey
                        || n.altKey || n.metaKey) : !(!o.altKey || 6 !== i)
                        || (!(!o.ctrlKey || 5 !== i) || !(!o.metaKey || 57
                            !== i)))
                  })) {
                    var r = e.tree.getFocus();
                    r && e.elementSelected(r, t)
                  }
                }
              }).clone()
            }).addClass("quick-open-widget").build(
                this.container), this.layoutDimensions && this.layout(
                this.layoutDimensions), this.applyStyles(), this.builder.getHTMLElement()
          }, e.prototype.style = function (e) {
            this.styles = e, this.applyStyles()
          }, e.prototype.applyStyles = function () {
            if (this.builder) {
              var e = this.styles.foreground ? this.styles.foreground.toString()
                      : null,
                  t = this.styles.background ? this.styles.background.toString()
                      : null, n = this.styles.borderColor
                      ? this.styles.borderColor.toString() : null,
                  i = this.styles.widgetShadow
                      ? this.styles.widgetShadow.toString() : null;
              this.builder.style("color", e), this.builder.style(
                  "background-color", t), this.builder.style("border-color",
                  n), this.builder.style("border-width",
                  n ? "1px" : null), this.builder.style("border-style",
                  n ? "solid" : null), this.builder.style("box-shadow",
                  i ? "0 5px 8px " + i : null)
            }
            this.progressBar && this.progressBar.style(
                {progressBarBackground: this.styles.progressBarBackground}), this.inputBox
            && this.inputBox.style({
              inputBackground: this.styles.inputBackground,
              inputForeground: this.styles.inputForeground,
              inputBorder: this.styles.inputBorder,
              inputValidationInfoBackground: this.styles.inputValidationInfoBackground,
              inputValidationInfoBorder: this.styles.inputValidationInfoBorder,
              inputValidationWarningBackground: this.styles.inputValidationWarningBackground,
              inputValidationWarningBorder: this.styles.inputValidationWarningBorder,
              inputValidationErrorBackground: this.styles.inputValidationErrorBackground,
              inputValidationErrorBorder: this.styles.inputValidationErrorBorder
            }), this.tree && this.tree.style(this.styles), this.renderer
            && this.renderer.updateStyles(this.styles)
          }, e.prototype.shouldOpenInBackground = function (e) {
            return 17 === e.keyCode && (!(e.metaKey || e.ctrlKey || e.shiftKey
                    || e.altKey) && this.inputBox.inputElement.selectionEnd
                === this.inputBox.value.length)
          }, e.prototype.onType = function () {
            var e = this.inputBox.value;
            this.helpText && (e ? this.helpText.hide()
                : this.helpText.show()), this.callbacks.onType(e)
          }, e.prototype.navigate = function (e, t) {
            this.isVisible() && (!this.quickNavigateConfiguration && t
            && (this.quickNavigateConfiguration = t, this.tree.DOMFocus()), this.navigateInTree(
                e ? 18 : 16))
          }, e.prototype.navigateInTree = function (e, t) {
            var n = this.tree.getInput(), i = n ? n.entries : [],
                o = this.tree.getFocus();
            switch (e) {
              case 18:
                this.tree.focusNext();
                break;
              case 16:
                this.tree.focusPrevious();
                break;
              case 12:
                this.tree.focusNextPage();
                break;
              case 11:
                this.tree.focusPreviousPage();
                break;
              case 2:
                t ? this.tree.focusPrevious() : this.tree.focusNext()
            }
            var r = this.tree.getFocus();
            i.length > 1 && o === r && (16 === e || 2 === e && t
                ? this.tree.focusLast() : (18 === e || 2 === e && !t)
                && this.tree.focusFirst()), (r = this.tree.getFocus())
            && this.tree.reveal(r).done(null, a.onUnexpectedError)
          }, e.prototype.elementFocused = function (e, t) {
            if (e && this.isVisible()) {
              this.inputElement.setAttribute("aria-activedescendant",
                  this.treeElement.getAttribute("aria-activedescendant"));
              var n = {
                event: t,
                keymods: this.extractKeyMods(t),
                quickNavigateConfiguration: this.quickNavigateConfiguration
              };
              this.model.runner.run(e, u.Mode.PREVIEW, n)
            }
          }, e.prototype.elementSelected = function (e, t, n) {
            var i = !0;
            if (this.isVisible()) {
              var o = n || u.Mode.OPEN, r = {
                event: t,
                keymods: this.extractKeyMods(t),
                quickNavigateConfiguration: this.quickNavigateConfiguration
              };
              i = this.model.runner.run(e, o, r)
            }
            if (this.usageLogger) {
              var s = this.model.entries.indexOf(e),
                  a = this.model.entries.length;
              this.usageLogger.publicLog("quickOpenWidgetItemAccepted", {
                index: s,
                count: a,
                isQuickNavigate: !!this.quickNavigateConfiguration
              })
            }
            i && this.hide(E.ELEMENT_SELECTED)
          }, e.prototype.extractKeyMods = function (e) {
            return e && (e.ctrlKey || e.metaKey || e.payload
                && e.payload.originalEvent && (e.payload.originalEvent.ctrlKey
                    || e.payload.originalEvent.metaKey)) ? [2048] : []
          }, e.prototype.show = function (e, t) {
            this.visible = !0, this.isLoosingFocus = !1, this.quickNavigateConfiguration = t
                ? t.quickNavigateConfiguration
                : void 0, this.quickNavigateConfiguration
                ? (this.inputContainer.hide(), this.builder.show(), this.tree.DOMFocus())
                : (this.inputContainer.show(), this.builder.show(), this.inputBox.focus()), this.helpText
            && (this.quickNavigateConfiguration || s.isString(e)
                ? this.helpText.hide() : this.helpText.show()), s.isString(e)
                ? this.doShowWithPrefix(e) : this.doShowWithInput(e,
                    t && t.autoFocus ? t.autoFocus : {}), t && t.inputSelection
            && !this.quickNavigateConfiguration && this.inputBox.select(
                t.inputSelection), this.callbacks.onShow
            && this.callbacks.onShow()
          }, e.prototype.doShowWithPrefix = function (e) {
            this.inputBox.value = e, this.callbacks.onType(e)
          }, e.prototype.doShowWithInput = function (e, t) {
            this.setInput(e, t)
          }, e.prototype.setInputAndLayout = function (e, t) {
            var n = this;
            this.treeContainer.style(
                {height: this.getHeight(e) + "px"}), this.tree.setInput(
                null).then(function () {
              return n.model = e, n.inputElement.setAttribute("aria-haspopup",
                  String(
                      e && e.entries && e.entries.length > 0)), n.tree.setInput(
                  e)
            }).done(function () {
              n.tree.layout(), e && e.entries.some(function (t) {
                return n.isElementVisible(e, t)
              }) && n.autoFocus(e, t)
            }, a.onUnexpectedError)
          }, e.prototype.isElementVisible = function (e, t) {
            return !e.filter || e.filter.isVisible(t)
          }, e.prototype.autoFocus = function (e, t) {
            var n = this;
            void 0 === t && (t = {});
            var i = e.entries.filter(function (t) {
              return n.isElementVisible(e, t)
            });
            if (t.autoFocusPrefixMatch) {
              for (var o = void 0, r = void 0, s = t.autoFocusPrefixMatch,
                  u = s.toLowerCase(), l = 0; l < i.length; l++) {
                var c = i[l], d = e.dataSource.getLabel(c);
                if (o || 0 !== d.indexOf(s) ? r || 0
                    !== d.toLowerCase().indexOf(u) || (r = c) : o = c, o
                && r) {
                  break
                }
              }
              var h = o || r;
              if (h) {
                return this.tree.setFocus(h), void this.tree.reveal(h,
                    .5).done(null, a.onUnexpectedError)
              }
            }
            t.autoFocusFirstEntry ? (this.tree.focusFirst(), this.tree.reveal(
                    this.tree.getFocus()).done(null, a.onUnexpectedError))
                : "number" == typeof t.autoFocusIndex ? i.length
                    > t.autoFocusIndex && (this.tree.focusNth(
                        t.autoFocusIndex), this.tree.reveal(
                        this.tree.getFocus()).done(null, a.onUnexpectedError))
                    : t.autoFocusSecondEntry ? i.length > 1 && this.tree.focusNth(1)
                        : t.autoFocusLastEntry && i.length > 1
                        && this.tree.focusLast()
          }, e.prototype.refresh = function (e, t) {
            var n = this;
            this.isVisible() && (e || (e = this.tree.getInput()), e
            && (this.treeContainer.style(
                {height: this.getHeight(e) + "px"}), this.tree.refresh().done(
                function () {
                  n.tree.layout(), t && t && e && e.entries.some(function (t) {
                    return n.isElementVisible(e, t)
                  }) && n.autoFocus(e, t)
                }, a.onUnexpectedError)))
          }, e.prototype.getHeight = function (t) {
            var n = this, i = t.renderer;
            if (!t) {
              var o = i.getHeight(null);
              return this.options.minItemsToShow ? this.options.minItemsToShow
                  * o : 0
            }
            var r, s = 0;
            this.layoutDimensions && this.layoutDimensions.height && (r = .4
                * (this.layoutDimensions.height - 50)), (!r || r
                > e.MAX_ITEMS_HEIGHT) && (r = e.MAX_ITEMS_HEIGHT);
            for (var a = t.entries.filter(function (e) {
              return n.isElementVisible(t, e)
            }), u = this.options.maxItemsToShow || a.length, l = 0;
                l < u && l < a.length; l++) {
              var c = i.getHeight(a[l]);
              if (!(s + c <= r)) {
                break;
              }
              s += c
            }
            return s
          }, e.prototype.hide = function (e) {
            var t = this;
            if (this.isVisible()) {
              if (this.visible = !1, this.builder.hide(), this.builder.domBlur(), e
              === E.CANCELED && this.model) {
                var n = this.model.entries.filter(function (e) {
                  return t.isElementVisible(t.model, e)
                }).length;
                this.usageLogger && this.usageLogger.publicLog(
                    "quickOpenWidgetCancelled", {
                      count: n,
                      isQuickNavigate: !!this.quickNavigateConfiguration
                    })
              }
              this.inputBox.value = "", this.tree.setInput(
                  null), this.inputElement.setAttribute("aria-haspopup",
                  "false"), this.treeContainer.style({
                height: (this.options.minItemsToShow ? 22
                    * this.options.minItemsToShow : 0) + "px"
              }), this.progressBar.stop().getContainer().hide(), this.tree.isDOMFocused()
                  ? this.tree.DOMBlur() : this.inputBox.hasFocus()
                  && this.inputBox.blur(), e === E.ELEMENT_SELECTED
                  ? this.callbacks.onOk()
                  : this.callbacks.onCancel(), this.callbacks.onHide
              && this.callbacks.onHide(e)
            }
          }, e.prototype.getQuickNavigateConfiguration = function () {
            return this.quickNavigateConfiguration
          }, e.prototype.setPlaceHolder = function (e) {
            this.inputBox && this.inputBox.setPlaceHolder(e)
          }, e.prototype.setValue = function (e, t) {
            if (this.inputBox) {
              if (this.inputBox.value = e, Array.isArray(t)) {
                var n = t[0], i = t[1];
                this.inputBox.select({start: n, end: i})
              } else {
                this.inputBox.select()
              }
            }
          }, e.prototype.setPassword = function (e) {
            this.inputBox && (this.inputBox.inputElement.type = e ? "password"
                : "text")
          }, e.prototype.setInput = function (e, t, n) {
            this.isVisible() && (this.getInput()
            && this.onInputChanging(), this.setInputAndLayout(e,
                t), this.inputBox && this.inputBox.setAriaLabel(n || x))
          }, e.prototype.onInputChanging = function () {
            var e = this;
            this.inputChangingTimeoutHandle && (clearTimeout(
                this.inputChangingTimeoutHandle), this.inputChangingTimeoutHandle = null), this.builder.addClass(
                "content-changing"), this.inputChangingTimeoutHandle = setTimeout(
                function () {
                  e.builder.removeClass("content-changing")
                }, 500)
          }, e.prototype.getInput = function () {
            return this.tree.getInput()
          }, e.prototype.getTree = function () {
            return this.tree
          }, e.prototype.showInputDecoration = function (e) {
            this.inputBox && this.inputBox.showMessage({
              type: e === h.default.Info ? d.MessageType.INFO : e
              === h.default.Warning ? d.MessageType.WARNING
                  : d.MessageType.ERROR, content: ""
            })
          }, e.prototype.clearInputDecoration = function () {
            this.inputBox && this.inputBox.hideMessage()
          }, e.prototype.focus = function () {
            this.isVisible() && this.inputBox && this.inputBox.focus()
          }, e.prototype.accept = function () {
            if (this.isVisible()) {
              var e = this.tree.getFocus();
              e && this.elementSelected(e)
            }
          }, e.prototype.getProgressBar = function () {
            return this.progressBar
          }, e.prototype.getInputBox = function () {
            return this.inputBox
          }, e.prototype.setExtraClass = function (e) {
            var t = this.builder.getProperty("extra-class");
            t && this.builder.removeClass(t), e ? (this.builder.addClass(
                e), this.builder.setProperty("extra-class", e)) : t
                && this.builder.removeProperty("extra-class")
          }, e.prototype.isVisible = function () {
            return this.visible
          }, e.prototype.layout = function (t) {
            this.layoutDimensions = t;
            var n = Math.min(.62 * this.layoutDimensions.width, e.MAX_WIDTH);
            this.builder && (this.builder.style({
              width: n + "px",
              marginLeft: "-" + n / 2 + "px"
            }), this.inputContainer.style({width: n - 12 + "px"}))
          }, e.prototype.gainingFocus = function () {
            this.isLoosingFocus = !1
          }, e.prototype.loosingFocus = function (e) {
            var t = this;
            if (this.isVisible()) {
              var n = e.relatedTarget;
              !this.quickNavigateConfiguration && _.isAncestor(n,
                  this.builder.getHTMLElement())
              || (this.isLoosingFocus = !0, i.TPromise.timeout(0).then(
                  function () {
                    t.isLoosingFocus && (t.isDisposed || t.callbacks.onFocusLost
                        && t.callbacks.onFocusLost() || t.hide(E.FOCUS_LOST))
                  }))
            }
          }, e.prototype.dispose = function () {
            this.isDisposed = !0, this.toUnbind = y.dispose(
                this.toUnbind), this.progressBar.dispose(), this.inputBox.dispose(), this.tree.dispose()
          }, e.MAX_WIDTH = 600, e.MAX_ITEMS_HEIGHT = 440, e
        }();
        t.QuickOpenWidget = N
      }), define(d[302], h([6, 8]), function (e, t) {
    return e.create("vs/editor/browser/widget/diffEditorWidget", t)
  }), define(d[303], h([6, 8]), function (e, t) {
    return e.create("vs/editor/browser/widget/diffReview", t)
  }), define(d[304], h([6, 8]), function (e, t) {
    return e.create("vs/editor/common/config/commonEditorConfig", t)
  }), define(d[305], h([6, 8]), function (e, t) {
    return e.create("vs/editor/common/config/editorOptions", t)
  }), define(d[49], h([1, 0, 305, 15, 48, 95]), function (e, t, n, i, o, r) {
    "use strict";

    function s(e, t) {
      return "string" != typeof e ? t : "line" === e ? y.Line : "block" === e
          ? y.Block : "underline" === e ? y.Underline : "line-thin" === e
              ? y.LineThin : "block-outline" === e ? y.BlockOutline
                  : "underline-thin" === e ? y.UnderlineThin : y.Line
    }

    function a(e, t) {
      return void 0 === e ? t : "false" !== e && Boolean(e)
    }

    function u(e, t) {
      return "string" != typeof e ? t : e
    }

    function l(e, t, n) {
      return "string" != typeof e ? t : -1 === n.indexOf(e) ? t : e
    }

    function c(e, t, n, i) {
      var o;
      return void 0 === e ? o = t : (o = parseInt(e, 10), isNaN(o)
      && (o = t)), o = Math.max(n, o), 0 | (o = Math.min(i, o))
    }

    function d(e, t) {
      var n = parseFloat(e);
      return isNaN(n) && (n = t), n
    }

    function h(e, t) {
      return "string" != typeof e ? t : "indent" === e ? m.Indent : "same" === e
          ? m.Same : m.None
    }

    function p(e, t) {
      if ("string" != typeof e) {
        return t;
      }
      switch (e) {
        case"blink":
          return v.Blink;
        case"smooth":
          return v.Smooth;
        case"phase":
          return v.Phase;
        case"expand":
          return v.Expand;
        case"visible":
        case"solid":
          return v.Solid
      }
      return v.Blink
    }

    function f(e, t) {
      if ("string" != typeof e) {
        return t;
      }
      switch (e) {
        case"hidden":
          return o.ScrollbarVisibility.Hidden;
        case"visible":
          return o.ScrollbarVisibility.Visible;
        default:
          return o.ScrollbarVisibility.Auto
      }
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var g;
    !function (e) {
      e[e.None = 0] = "None", e[e.Small = 1] = "Small", e[e.Large = 2] = "Large", e[e.SmallBlocks = 3] = "SmallBlocks", e[e.LargeBlocks = 4] = "LargeBlocks"
    }(g = t.RenderMinimap || (t.RenderMinimap = {}));
    var m;
    !function (e) {
      e[e.None = 0] = "None", e[e.Same = 1] = "Same", e[e.Indent = 2] = "Indent"
    }(m = t.WrappingIndent || (t.WrappingIndent = {}));
    var v;
    !function (e) {
      e[e.Hidden = 0] = "Hidden", e[e.Blink = 1] = "Blink", e[e.Smooth = 2] = "Smooth", e[e.Phase = 3] = "Phase", e[e.Expand = 4] = "Expand", e[e.Solid = 5] = "Solid"
    }(v = t.TextEditorCursorBlinkingStyle
        || (t.TextEditorCursorBlinkingStyle = {})), t.blinkingStyleToString = function (e) {
      if (e === v.Blink) {
        return "blink";
      }
      if (e === v.Expand) {
        return "expand";
      }
      if (e === v.Phase) {
        return "phase";
      }
      if (e === v.Smooth) {
        return "smooth";
      }
      if (e === v.Solid) {
        return "solid";
      }
      throw new Error("blinkingStyleToString: Unknown blinkingStyle")
    };
    var y;
    !function (e) {
      e[e.Line = 1] = "Line", e[e.Block = 2] = "Block", e[e.Underline = 3] = "Underline", e[e.LineThin = 4] = "LineThin", e[e.BlockOutline = 5] = "BlockOutline", e[e.UnderlineThin = 6] = "UnderlineThin"
    }(y = t.TextEditorCursorStyle
        || (t.TextEditorCursorStyle = {})), t.cursorStyleToString = function (e) {
      if (e === y.Line) {
        return "line";
      }
      if (e === y.Block) {
        return "block";
      }
      if (e === y.Underline) {
        return "underline";
      }
      if (e === y.LineThin) {
        return "line-thin";
      }
      if (e === y.BlockOutline) {
        return "block-outline";
      }
      if (e === y.UnderlineThin) {
        return "underline-thin";
      }
      throw new Error("cursorStyleToString: Unknown cursorStyle")
    };
    var C = function () {
      function e(e) {
        this.canUseLayerHinting = e.canUseLayerHinting, this.pixelRatio = e.pixelRatio, this.editorClassName = e.editorClassName, this.lineHeight = 0
            | e.lineHeight, this.readOnly = e.readOnly, this.accessibilitySupport = e.accessibilitySupport, this.multiCursorModifier = e.multiCursorModifier, this.wordSeparators = e.wordSeparators, this.autoClosingBrackets = e.autoClosingBrackets, this.autoIndent = e.autoIndent, this.useTabStops = e.useTabStops, this.tabFocusMode = e.tabFocusMode, this.dragAndDrop = e.dragAndDrop, this.emptySelectionClipboard = e.emptySelectionClipboard, this.layoutInfo = e.layoutInfo, this.fontInfo = e.fontInfo, this.viewInfo = e.viewInfo, this.wrappingInfo = e.wrappingInfo, this.contribInfo = e.contribInfo
      }

      return e.prototype.equals = function (t) {
        return this.canUseLayerHinting === t.canUseLayerHinting
            && this.pixelRatio === t.pixelRatio && this.editorClassName
            === t.editorClassName && this.lineHeight === t.lineHeight
            && this.readOnly === t.readOnly && this.accessibilitySupport
            === t.accessibilitySupport && this.multiCursorModifier
            === t.multiCursorModifier && this.wordSeparators
            === t.wordSeparators && this.autoClosingBrackets
            === t.autoClosingBrackets && this.autoIndent === t.autoIndent
            && this.useTabStops === t.useTabStops && this.tabFocusMode
            === t.tabFocusMode && this.dragAndDrop === t.dragAndDrop
            && this.emptySelectionClipboard === t.emptySelectionClipboard
            && e._equalsLayoutInfo(this.layoutInfo, t.layoutInfo)
            && this.fontInfo.equals(t.fontInfo) && e._equalsViewOptions(
                this.viewInfo, t.viewInfo) && e._equalsWrappingInfo(
                this.wrappingInfo, t.wrappingInfo) && e._equalsContribOptions(
                this.contribInfo, t.contribInfo)
      }, e.prototype.createChangeEvent = function (t) {
        return {
          canUseLayerHinting: this.canUseLayerHinting !== t.canUseLayerHinting,
          pixelRatio: this.pixelRatio !== t.pixelRatio,
          editorClassName: this.editorClassName !== t.editorClassName,
          lineHeight: this.lineHeight !== t.lineHeight,
          readOnly: this.readOnly !== t.readOnly,
          accessibilitySupport: this.accessibilitySupport
              !== t.accessibilitySupport,
          multiCursorModifier: this.multiCursorModifier
              !== t.multiCursorModifier,
          wordSeparators: this.wordSeparators !== t.wordSeparators,
          autoClosingBrackets: this.autoClosingBrackets
              !== t.autoClosingBrackets,
          autoIndent: this.autoIndent !== t.autoIndent,
          useTabStops: this.useTabStops !== t.useTabStops,
          tabFocusMode: this.tabFocusMode !== t.tabFocusMode,
          dragAndDrop: this.dragAndDrop !== t.dragAndDrop,
          emptySelectionClipboard: this.emptySelectionClipboard
              !== t.emptySelectionClipboard,
          layoutInfo: !e._equalsLayoutInfo(this.layoutInfo, t.layoutInfo),
          fontInfo: !this.fontInfo.equals(t.fontInfo),
          viewInfo: !e._equalsViewOptions(this.viewInfo, t.viewInfo),
          wrappingInfo: !e._equalsWrappingInfo(this.wrappingInfo,
              t.wrappingInfo),
          contribInfo: !e._equalsContribOptions(this.contribInfo, t.contribInfo)
        }
      }, e._equalsLayoutInfo = function (e, t) {
        return e.width === t.width && e.height === t.height && e.glyphMarginLeft
            === t.glyphMarginLeft && e.glyphMarginWidth === t.glyphMarginWidth
            && e.glyphMarginHeight === t.glyphMarginHeight && e.lineNumbersLeft
            === t.lineNumbersLeft && e.lineNumbersWidth === t.lineNumbersWidth
            && e.lineNumbersHeight === t.lineNumbersHeight && e.decorationsLeft
            === t.decorationsLeft && e.decorationsWidth === t.decorationsWidth
            && e.decorationsHeight === t.decorationsHeight && e.contentLeft
            === t.contentLeft && e.contentWidth === t.contentWidth
            && e.contentHeight === t.contentHeight && e.renderMinimap
            === t.renderMinimap && e.minimapWidth === t.minimapWidth
            && e.viewportColumn === t.viewportColumn && e.verticalScrollbarWidth
            === t.verticalScrollbarWidth && e.horizontalScrollbarHeight
            === t.horizontalScrollbarHeight && this._equalsOverviewRuler(
                e.overviewRuler, t.overviewRuler)
      }, e._equalsOverviewRuler = function (e, t) {
        return e.width === t.width && e.height === t.height && e.top === t.top
            && e.right === t.right
      }, e._equalsViewOptions = function (e, t) {
        return e.extraEditorClassName === t.extraEditorClassName
            && e.disableMonospaceOptimizations
            === t.disableMonospaceOptimizations && this._equalsNumberArrays(
                e.rulers, t.rulers) && e.ariaLabel === t.ariaLabel
            && e.renderLineNumbers === t.renderLineNumbers
            && e.renderCustomLineNumbers === t.renderCustomLineNumbers
            && e.renderRelativeLineNumbers === t.renderRelativeLineNumbers
            && e.selectOnLineNumbers === t.selectOnLineNumbers && e.glyphMargin
            === t.glyphMargin && e.revealHorizontalRightPadding
            === t.revealHorizontalRightPadding && e.roundedSelection
            === t.roundedSelection && e.overviewRulerLanes
            === t.overviewRulerLanes && e.overviewRulerBorder
            === t.overviewRulerBorder && e.cursorBlinking === t.cursorBlinking
            && e.mouseWheelZoom === t.mouseWheelZoom && e.cursorStyle
            === t.cursorStyle && e.hideCursorInOverviewRuler
            === t.hideCursorInOverviewRuler && e.scrollBeyondLastLine
            === t.scrollBeyondLastLine && e.stopRenderingLineAfter
            === t.stopRenderingLineAfter && e.renderWhitespace
            === t.renderWhitespace && e.renderControlCharacters
            === t.renderControlCharacters && e.fontLigatures === t.fontLigatures
            && e.renderIndentGuides === t.renderIndentGuides
            && e.renderLineHighlight === t.renderLineHighlight
            && this._equalsScrollbarOptions(e.scrollbar, t.scrollbar)
            && this._equalsMinimapOptions(e.minimap, t.minimap)
            && e.fixedOverflowWidgets === t.fixedOverflowWidgets
      }, e._equalsScrollbarOptions = function (e, t) {
        return e.arrowSize === t.arrowSize && e.vertical === t.vertical
            && e.horizontal === t.horizontal && e.useShadows === t.useShadows
            && e.verticalHasArrows === t.verticalHasArrows
            && e.horizontalHasArrows === t.horizontalHasArrows
            && e.handleMouseWheel === t.handleMouseWheel
            && e.horizontalScrollbarSize === t.horizontalScrollbarSize
            && e.horizontalSliderSize === t.horizontalSliderSize
            && e.verticalScrollbarSize === t.verticalScrollbarSize
            && e.verticalSliderSize === t.verticalSliderSize
            && e.mouseWheelScrollSensitivity === t.mouseWheelScrollSensitivity
      }, e._equalsMinimapOptions = function (e, t) {
        return e.enabled === t.enabled && e.showSlider === t.showSlider
            && e.renderCharacters === t.renderCharacters && e.maxColumn
            === t.maxColumn
      }, e._equalsNumberArrays = function (e, t) {
        if (e.length !== t.length) {
          return !1;
        }
        for (var n = 0; n < e.length; n++) {
          if (e[n] !== t[n]) {
            return !1;
          }
        }
        return !0
      }, e._equalFindOptions = function (e, t) {
        return e.seedSearchStringFromSelection
            === t.seedSearchStringFromSelection && e.autoFindInSelection
            === t.autoFindInSelection
      }, e._equalsWrappingInfo = function (e, t) {
        return e.inDiffEditor === t.inDiffEditor && e.isDominatedByLongLines
            === t.isDominatedByLongLines && e.isWordWrapMinified
            === t.isWordWrapMinified && e.isViewportWrapping
            === t.isViewportWrapping && e.wrappingColumn === t.wrappingColumn
            && e.wrappingIndent === t.wrappingIndent
            && e.wordWrapBreakBeforeCharacters
            === t.wordWrapBreakBeforeCharacters
            && e.wordWrapBreakAfterCharacters === t.wordWrapBreakAfterCharacters
            && e.wordWrapBreakObtrusiveCharacters
            === t.wordWrapBreakObtrusiveCharacters
      }, e._equalsContribOptions = function (t, n) {
        return t.selectionClipboard === n.selectionClipboard && t.hover
            === n.hover && t.links === n.links && t.contextmenu
            === n.contextmenu && e._equalsQuickSuggestions(t.quickSuggestions,
                n.quickSuggestions) && t.quickSuggestionsDelay
            === n.quickSuggestionsDelay && t.parameterHints === n.parameterHints
            && t.iconsInSuggestions === n.iconsInSuggestions && t.formatOnType
            === n.formatOnType && t.formatOnPaste === n.formatOnPaste
            && t.suggestOnTriggerCharacters === n.suggestOnTriggerCharacters
            && t.acceptSuggestionOnEnter === n.acceptSuggestionOnEnter
            && t.acceptSuggestionOnCommitCharacter
            === n.acceptSuggestionOnCommitCharacter && t.snippetSuggestions
            === n.snippetSuggestions && t.wordBasedSuggestions
            === n.wordBasedSuggestions && t.suggestFontSize
            === n.suggestFontSize && t.suggestLineHeight === n.suggestLineHeight
            && t.selectionHighlight === n.selectionHighlight
            && t.occurrencesHighlight === n.occurrencesHighlight && t.codeLens
            === n.codeLens && t.folding === n.folding && t.showFoldingControls
            === n.showFoldingControls && t.matchBrackets === n.matchBrackets
            && this._equalFindOptions(t.find, n.find)
      }, e._equalsQuickSuggestions = function (e, t) {
        return "boolean" == typeof e ? "boolean" == typeof t && e === t
            : "boolean" != typeof t && (e.comments === t.comments && e.other
            === t.other && e.strings === t.strings)
      }, e
    }();
    t.InternalEditorOptions = C;
    var b = function () {
      function e() {
      }

      return e.validate = function (e, t) {
        var n = e.wordWrap;
        !0 === n ? n = "on" : !1 === n && (n = "off"), n = l(n, t.wordWrap,
            ["off", "on", "wordWrapColumn", "bounded"]);
        var o, r = this._sanitizeViewInfo(e, t.viewInfo),
            s = this._sanitizeContribInfo(e, t.contribInfo);
        "string" == typeof e.multiCursorModifier && (o = "ctrlCmd"
        === e.multiCursorModifier ? i.isMacintosh ? "metaKey" : "ctrlKey"
            : "altKey");
        var d = l(o, t.multiCursorModifier, ["altKey", "metaKey", "ctrlKey"]);
        return {
          inDiffEditor: a(e.inDiffEditor, t.inDiffEditor),
          wordSeparators: u(e.wordSeparators, t.wordSeparators),
          lineNumbersMinChars: c(e.lineNumbersMinChars, t.lineNumbersMinChars,
              1, 10),
          lineDecorationsWidth: void 0 === e.lineDecorationsWidth
              ? t.lineDecorationsWidth : e.lineDecorationsWidth,
          readOnly: a(e.readOnly, t.readOnly),
          mouseStyle: l(e.mouseStyle, t.mouseStyle,
              ["text", "default", "copy"]),
          disableLayerHinting: a(e.disableLayerHinting, t.disableLayerHinting),
          automaticLayout: a(e.automaticLayout, t.automaticLayout),
          wordWrap: n,
          wordWrapColumn: c(e.wordWrapColumn, t.wordWrapColumn, 1, 1073741824),
          wordWrapMinified: a(e.wordWrapMinified, t.wordWrapMinified),
          wrappingIndent: h(e.wrappingIndent, t.wrappingIndent),
          wordWrapBreakBeforeCharacters: u(e.wordWrapBreakBeforeCharacters,
              t.wordWrapBreakBeforeCharacters),
          wordWrapBreakAfterCharacters: u(e.wordWrapBreakAfterCharacters,
              t.wordWrapBreakAfterCharacters),
          wordWrapBreakObtrusiveCharacters: u(
              e.wordWrapBreakObtrusiveCharacters,
              t.wordWrapBreakObtrusiveCharacters),
          autoClosingBrackets: a(e.autoClosingBrackets, t.autoClosingBrackets),
          autoIndent: a(e.autoIndent, t.autoIndent),
          dragAndDrop: a(e.dragAndDrop, t.dragAndDrop),
          emptySelectionClipboard: a(e.emptySelectionClipboard,
              t.emptySelectionClipboard),
          useTabStops: a(e.useTabStops, t.useTabStops),
          multiCursorModifier: d,
          accessibilitySupport: l(e.accessibilitySupport,
              t.accessibilitySupport, ["auto", "on", "off"]),
          viewInfo: r,
          contribInfo: s
        }
      }, e._sanitizeScrollbarOpts = function (e, t, n) {
        if ("object" != typeof e) {
          return t;
        }
        var i = c(e.horizontalScrollbarSize, t.horizontalScrollbarSize, 0, 1e3),
            o = c(e.verticalScrollbarSize, t.verticalScrollbarSize, 0, 1e3);
        return {
          vertical: f(e.vertical, t.vertical),
          horizontal: f(e.horizontal, t.horizontal),
          arrowSize: c(e.arrowSize, t.arrowSize, 0, 1e3),
          useShadows: a(e.useShadows, t.useShadows),
          verticalHasArrows: a(e.verticalHasArrows, t.verticalHasArrows),
          horizontalHasArrows: a(e.horizontalHasArrows, t.horizontalHasArrows),
          horizontalScrollbarSize: i,
          horizontalSliderSize: c(e.horizontalSliderSize, i, 0, 1e3),
          verticalScrollbarSize: o,
          verticalSliderSize: c(e.verticalSliderSize, o, 0, 1e3),
          handleMouseWheel: a(e.handleMouseWheel, t.handleMouseWheel),
          mouseWheelScrollSensitivity: n
        }
      }, e._sanitizeMinimapOpts = function (e, t) {
        return "object" != typeof e ? t : {
          enabled: a(e.enabled, t.enabled),
          showSlider: l(e.showSlider, t.showSlider, ["always", "mouseover"]),
          renderCharacters: a(e.renderCharacters, t.renderCharacters),
          maxColumn: c(e.maxColumn, t.maxColumn, 1, 1e4)
        }
      }, e._santizeFindOpts = function (e, t) {
        return "object" != typeof e ? t : {
          seedSearchStringFromSelection: a(e.seedSearchStringFromSelection,
              t.seedSearchStringFromSelection),
          autoFindInSelection: a(e.autoFindInSelection, t.autoFindInSelection)
        }
      }, e._sanitizeViewInfo = function (e, t) {
        var n = [];
        if (Array.isArray(e.rulers)) {
          for (var i = 0, o = e.rulers.length; i < o; i++) {
            n.push(
                c(e.rulers[i], 0, 0, 1e4));
          }
          n.sort()
        }
        var r = t.renderLineNumbers, h = t.renderCustomLineNumbers,
            f = t.renderRelativeLineNumbers;
        if (void 0 !== e.lineNumbers) {
          var g = e.lineNumbers;
          !0 === g ? g = "on" : !1 === g && (g = "off"), "function" == typeof g
              ? (r = !0, h = g, f = !1) : "relative" === g
                  ? (r = !0, h = null, f = !0) : "on" === g
                      ? (r = !0, h = null, f = !1) : (r = !1, h = null, f = !1)
        }
        var m = a(e.fontLigatures, t.fontLigatures),
            v = a(e.disableMonospaceOptimizations,
                t.disableMonospaceOptimizations) || m, _ = e.renderWhitespace;
        !0 === _ ? _ = "boundary" : !1 === _ && (_ = "none"), _ = l(
            e.renderWhitespace, t.renderWhitespace,
            ["none", "boundary", "all"]);
        var y = e.renderLineHighlight;
        !0 === y ? y = "line" : !1 === y && (y = "none"), y = l(
            e.renderLineHighlight, t.renderLineHighlight,
            ["none", "gutter", "line", "all"]);
        var C = d(e.mouseWheelScrollSensitivity,
                t.scrollbar.mouseWheelScrollSensitivity),
            b = this._sanitizeScrollbarOpts(e.scrollbar, t.scrollbar, C),
            w = this._sanitizeMinimapOpts(e.minimap, t.minimap);
        return {
          extraEditorClassName: u(e.extraEditorClassName,
              t.extraEditorClassName),
          disableMonospaceOptimizations: v,
          rulers: n,
          ariaLabel: u(e.ariaLabel, t.ariaLabel),
          renderLineNumbers: r,
          renderCustomLineNumbers: h,
          renderRelativeLineNumbers: f,
          selectOnLineNumbers: a(e.selectOnLineNumbers, t.selectOnLineNumbers),
          glyphMargin: a(e.glyphMargin, t.glyphMargin),
          revealHorizontalRightPadding: c(e.revealHorizontalRightPadding,
              t.revealHorizontalRightPadding, 0, 1e3),
          roundedSelection: a(e.roundedSelection, t.roundedSelection),
          overviewRulerLanes: c(e.overviewRulerLanes, t.overviewRulerLanes, 0,
              3),
          overviewRulerBorder: a(e.overviewRulerBorder, t.overviewRulerBorder),
          cursorBlinking: p(e.cursorBlinking, t.cursorBlinking),
          mouseWheelZoom: a(e.mouseWheelZoom, t.mouseWheelZoom),
          cursorStyle: s(e.cursorStyle, t.cursorStyle),
          hideCursorInOverviewRuler: a(e.hideCursorInOverviewRuler,
              t.hideCursorInOverviewRuler),
          scrollBeyondLastLine: a(e.scrollBeyondLastLine,
              t.scrollBeyondLastLine),
          stopRenderingLineAfter: c(e.stopRenderingLineAfter,
              t.stopRenderingLineAfter, -1, 1073741824),
          renderWhitespace: _,
          renderControlCharacters: a(e.renderControlCharacters,
              t.renderControlCharacters),
          fontLigatures: m,
          renderIndentGuides: a(e.renderIndentGuides, t.renderIndentGuides),
          renderLineHighlight: y,
          scrollbar: b,
          minimap: w,
          fixedOverflowWidgets: a(e.fixedOverflowWidgets,
              t.fixedOverflowWidgets)
        }
      }, e._sanitizeContribInfo = function (e, t) {
        var n;
        n = "object" == typeof e.quickSuggestions ? _({other: !0},
            e.quickSuggestions) : a(e.quickSuggestions, t.quickSuggestions);
        var i = this._santizeFindOpts(e.find, t.find);
        return {
          selectionClipboard: a(e.selectionClipboard, t.selectionClipboard),
          hover: a(e.hover, t.hover),
          links: a(e.links, t.links),
          contextmenu: a(e.contextmenu, t.contextmenu),
          quickSuggestions: n,
          quickSuggestionsDelay: c(e.quickSuggestionsDelay,
              t.quickSuggestionsDelay, -1073741824, 1073741824),
          parameterHints: a(e.parameterHints, t.parameterHints),
          iconsInSuggestions: a(e.iconsInSuggestions, t.iconsInSuggestions),
          formatOnType: a(e.formatOnType, t.formatOnType),
          formatOnPaste: a(e.formatOnPaste, t.formatOnPaste),
          suggestOnTriggerCharacters: a(e.suggestOnTriggerCharacters,
              t.suggestOnTriggerCharacters),
          acceptSuggestionOnEnter: l(e.acceptSuggestionOnEnter,
              t.acceptSuggestionOnEnter, ["on", "smart", "off"]),
          acceptSuggestionOnCommitCharacter: a(
              e.acceptSuggestionOnCommitCharacter,
              t.acceptSuggestionOnCommitCharacter),
          snippetSuggestions: l(e.snippetSuggestions, t.snippetSuggestions,
              ["top", "bottom", "inline", "none"]),
          wordBasedSuggestions: a(e.wordBasedSuggestions,
              t.wordBasedSuggestions),
          suggestFontSize: c(e.suggestFontSize, t.suggestFontSize, 0, 1e3),
          suggestLineHeight: c(e.suggestLineHeight, t.suggestLineHeight, 0,
              1e3),
          selectionHighlight: a(e.selectionHighlight, t.selectionHighlight),
          occurrencesHighlight: a(e.occurrencesHighlight,
              t.occurrencesHighlight),
          codeLens: a(e.codeLens, t.codeLens) && a(e.referenceInfos, !0),
          folding: a(e.folding, t.folding),
          showFoldingControls: l(e.showFoldingControls, t.showFoldingControls,
              ["always", "mouseover"]),
          matchBrackets: a(e.matchBrackets, t.matchBrackets),
          find: i
        }
      }, e
    }();
    t.EditorOptionsValidator = b;
    var w = function () {
      function e() {
      }

      return e._tweakValidatedOptions = function (e, t) {
        var i = 2 === t, o = 1 === t;
        return {
          inDiffEditor: e.inDiffEditor,
          wordSeparators: e.wordSeparators,
          lineNumbersMinChars: e.lineNumbersMinChars,
          lineDecorationsWidth: e.lineDecorationsWidth,
          readOnly: e.readOnly,
          mouseStyle: e.mouseStyle,
          disableLayerHinting: e.disableLayerHinting,
          automaticLayout: e.automaticLayout,
          wordWrap: e.wordWrap,
          wordWrapColumn: e.wordWrapColumn,
          wordWrapMinified: e.wordWrapMinified,
          wrappingIndent: e.wrappingIndent,
          wordWrapBreakBeforeCharacters: e.wordWrapBreakBeforeCharacters,
          wordWrapBreakAfterCharacters: e.wordWrapBreakAfterCharacters,
          wordWrapBreakObtrusiveCharacters: e.wordWrapBreakObtrusiveCharacters,
          autoClosingBrackets: e.autoClosingBrackets,
          autoIndent: e.autoIndent,
          dragAndDrop: e.dragAndDrop,
          emptySelectionClipboard: e.emptySelectionClipboard,
          useTabStops: e.useTabStops,
          multiCursorModifier: e.multiCursorModifier,
          accessibilitySupport: e.accessibilitySupport,
          viewInfo: {
            extraEditorClassName: e.viewInfo.extraEditorClassName,
            disableMonospaceOptimizations: e.viewInfo.disableMonospaceOptimizations,
            rulers: e.viewInfo.rulers,
            ariaLabel: o ? n.localize(0, null) : e.viewInfo.ariaLabel,
            renderLineNumbers: e.viewInfo.renderLineNumbers,
            renderCustomLineNumbers: e.viewInfo.renderCustomLineNumbers,
            renderRelativeLineNumbers: e.viewInfo.renderRelativeLineNumbers,
            selectOnLineNumbers: e.viewInfo.selectOnLineNumbers,
            glyphMargin: e.viewInfo.glyphMargin,
            revealHorizontalRightPadding: e.viewInfo.revealHorizontalRightPadding,
            roundedSelection: !i && e.viewInfo.roundedSelection,
            overviewRulerLanes: e.viewInfo.overviewRulerLanes,
            overviewRulerBorder: e.viewInfo.overviewRulerBorder,
            cursorBlinking: e.viewInfo.cursorBlinking,
            mouseWheelZoom: e.viewInfo.mouseWheelZoom,
            cursorStyle: e.viewInfo.cursorStyle,
            hideCursorInOverviewRuler: e.viewInfo.hideCursorInOverviewRuler,
            scrollBeyondLastLine: e.viewInfo.scrollBeyondLastLine,
            stopRenderingLineAfter: e.viewInfo.stopRenderingLineAfter,
            renderWhitespace: i ? "none" : e.viewInfo.renderWhitespace,
            renderControlCharacters: !i && e.viewInfo.renderControlCharacters,
            fontLigatures: !i && e.viewInfo.fontLigatures,
            renderIndentGuides: !i && e.viewInfo.renderIndentGuides,
            renderLineHighlight: i ? "none" : e.viewInfo.renderLineHighlight,
            scrollbar: e.viewInfo.scrollbar,
            minimap: {
              enabled: !i && e.viewInfo.minimap.enabled,
              renderCharacters: e.viewInfo.minimap.renderCharacters,
              showSlider: e.viewInfo.minimap.showSlider,
              maxColumn: e.viewInfo.minimap.maxColumn
            },
            fixedOverflowWidgets: e.viewInfo.fixedOverflowWidgets
          },
          contribInfo: {
            selectionClipboard: e.contribInfo.selectionClipboard,
            hover: e.contribInfo.hover,
            links: !i && e.contribInfo.links,
            contextmenu: e.contribInfo.contextmenu,
            quickSuggestions: e.contribInfo.quickSuggestions,
            quickSuggestionsDelay: e.contribInfo.quickSuggestionsDelay,
            parameterHints: e.contribInfo.parameterHints,
            iconsInSuggestions: e.contribInfo.iconsInSuggestions,
            formatOnType: e.contribInfo.formatOnType,
            formatOnPaste: e.contribInfo.formatOnPaste,
            suggestOnTriggerCharacters: e.contribInfo.suggestOnTriggerCharacters,
            acceptSuggestionOnEnter: e.contribInfo.acceptSuggestionOnEnter,
            acceptSuggestionOnCommitCharacter: e.contribInfo.acceptSuggestionOnCommitCharacter,
            snippetSuggestions: e.contribInfo.snippetSuggestions,
            wordBasedSuggestions: e.contribInfo.wordBasedSuggestions,
            suggestFontSize: e.contribInfo.suggestFontSize,
            suggestLineHeight: e.contribInfo.suggestLineHeight,
            selectionHighlight: !i && e.contribInfo.selectionHighlight,
            occurrencesHighlight: !i && e.contribInfo.occurrencesHighlight,
            codeLens: !i && e.contribInfo.codeLens,
            folding: !i && e.contribInfo.folding,
            showFoldingControls: e.contribInfo.showFoldingControls,
            matchBrackets: !i && e.contribInfo.matchBrackets,
            find: e.contribInfo.find
          }
        }
      }, e.createInternalEditorOptions = function (e, t) {
        var n;
        n = "auto" === t.accessibilitySupport ? e.accessibilitySupport : "on"
        === t.accessibilitySupport ? 2 : 1;
        var i, o = this._tweakValidatedOptions(t, n);
        i = "string" == typeof o.lineDecorationsWidth && /^\d+(\.\d+)?ch$/.test(
            o.lineDecorationsWidth) ? parseFloat(
                o.lineDecorationsWidth.substr(0, o.lineDecorationsWidth.length - 2))
            * e.fontInfo.typicalHalfwidthCharacterWidth : c(
            o.lineDecorationsWidth, 0, 0, 1e3), o.contribInfo.folding
        && (i += 16);
        var r = S.compute({
              outerWidth: e.outerWidth,
              outerHeight: e.outerHeight,
              showGlyphMargin: o.viewInfo.glyphMargin,
              lineHeight: e.fontInfo.lineHeight,
              showLineNumbers: o.viewInfo.renderLineNumbers,
              lineNumbersMinChars: o.lineNumbersMinChars,
              lineNumbersDigitCount: e.lineNumbersDigitCount,
              lineDecorationsWidth: i,
              typicalHalfwidthCharacterWidth: e.fontInfo.typicalHalfwidthCharacterWidth,
              maxDigitWidth: e.fontInfo.maxDigitWidth,
              verticalScrollbarWidth: o.viewInfo.scrollbar.verticalScrollbarSize,
              horizontalScrollbarHeight: o.viewInfo.scrollbar.horizontalScrollbarSize,
              scrollbarArrowSize: o.viewInfo.scrollbar.arrowSize,
              verticalScrollbarHasArrows: o.viewInfo.scrollbar.verticalHasArrows,
              minimap: o.viewInfo.minimap.enabled,
              minimapRenderCharacters: o.viewInfo.minimap.renderCharacters,
              minimapMaxColumn: o.viewInfo.minimap.maxColumn,
              pixelRatio: e.pixelRatio
            }), s = null, a = o.wordWrap, u = o.wordWrapColumn,
            l = o.wordWrapMinified;
        s = 2 === n ? {
          isWordWrapMinified: !1,
          isViewportWrapping: !1,
          wrappingColumn: -1
        } : l && e.isDominatedByLongLines ? {
          isWordWrapMinified: !0,
          isViewportWrapping: !0,
          wrappingColumn: Math.max(1, r.viewportColumn)
        } : "on" === a ? {
          isWordWrapMinified: !1,
          isViewportWrapping: !0,
          wrappingColumn: Math.max(1, r.viewportColumn)
        } : "bounded" === a ? {
          isWordWrapMinified: !1,
          isViewportWrapping: !0,
          wrappingColumn: Math.min(Math.max(1, r.viewportColumn), u)
        } : "wordWrapColumn" === a ? {
          isWordWrapMinified: !1,
          isViewportWrapping: !1,
          wrappingColumn: u
        } : {
          isWordWrapMinified: !1,
          isViewportWrapping: !1,
          wrappingColumn: -1
        };
        var d = {
          inDiffEditor: o.inDiffEditor,
          isDominatedByLongLines: e.isDominatedByLongLines,
          isWordWrapMinified: s.isWordWrapMinified,
          isViewportWrapping: s.isViewportWrapping,
          wrappingColumn: s.wrappingColumn,
          wrappingIndent: o.wrappingIndent,
          wordWrapBreakBeforeCharacters: o.wordWrapBreakBeforeCharacters,
          wordWrapBreakAfterCharacters: o.wordWrapBreakAfterCharacters,
          wordWrapBreakObtrusiveCharacters: o.wordWrapBreakObtrusiveCharacters
        }, h = "monaco-editor";
        return o.viewInfo.extraEditorClassName && (h += " "
            + o.viewInfo.extraEditorClassName), e.extraEditorClassName
        && (h += " " + e.extraEditorClassName), o.viewInfo.fontLigatures
        && (h += " enable-ligatures"), "default" === o.mouseStyle
            ? h += " mouse-default" : "copy" === o.mouseStyle
            && (h += " mouse-copy"), new C({
          canUseLayerHinting: !o.disableLayerHinting,
          pixelRatio: e.pixelRatio,
          editorClassName: h,
          lineHeight: e.fontInfo.lineHeight,
          readOnly: o.readOnly,
          accessibilitySupport: n,
          multiCursorModifier: o.multiCursorModifier,
          wordSeparators: o.wordSeparators,
          autoClosingBrackets: o.autoClosingBrackets,
          autoIndent: o.autoIndent,
          useTabStops: o.useTabStops,
          tabFocusMode: !!o.readOnly || e.tabFocusMode,
          dragAndDrop: o.dragAndDrop,
          emptySelectionClipboard: o.emptySelectionClipboard
              && e.emptySelectionClipboard,
          layoutInfo: r,
          fontInfo: e.fontInfo,
          viewInfo: o.viewInfo,
          wrappingInfo: d,
          contribInfo: o.contribInfo
        })
      }, e
    }();
    t.InternalEditorOptionsFactory = w;
    var S = function () {
      function e() {
      }

      return e.compute = function (e) {
        var t = 0 | e.outerWidth, n = 0 | e.outerHeight, i = e.showGlyphMargin,
            o = 0 | e.lineHeight, r = e.showLineNumbers,
            s = 0 | e.lineNumbersMinChars, a = 0 | e.lineNumbersDigitCount,
            u = 0 | e.lineDecorationsWidth,
            l = e.typicalHalfwidthCharacterWidth, c = e.maxDigitWidth,
            d = 0 | e.verticalScrollbarWidth, h = e.verticalScrollbarHasArrows,
            p = 0 | e.scrollbarArrowSize, f = 0 | e.horizontalScrollbarHeight,
            m = e.minimap, v = e.minimapRenderCharacters,
            _ = 0 | e.minimapMaxColumn, y = e.pixelRatio, C = 0;
        if (r) {
          var b = Math.max(a, s);
          C = Math.round(b * c)
        }
        var w = 0;
        i && (w = o);
        var S, E, L, x = 0 + w, N = x + C, M = N + u, T = t - w - C - u;
        if (m) {
          var k = void 0;
          y >= 2 ? (S = v ? g.Large : g.LargeBlocks, k = 2 / y) : (S = v
              ? g.Small : g.SmallBlocks, k = 1 / y), (E = Math.max(0,
              Math.floor((T - d) * k / (l + k)))) / k > _ && (E = Math.floor(
              _ * k)), L = T - E
        } else {
          E = 0, S = g.None, L = T;
        }
        var I = Math.max(1, Math.floor((L - d) / l)), D = h ? p : 0;
        return {
          width: t,
          height: n,
          glyphMarginLeft: 0,
          glyphMarginWidth: w,
          glyphMarginHeight: n,
          lineNumbersLeft: x,
          lineNumbersWidth: C,
          lineNumbersHeight: n,
          decorationsLeft: N,
          decorationsWidth: u,
          decorationsHeight: n,
          contentLeft: M,
          contentWidth: L,
          contentHeight: n,
          renderMinimap: S,
          minimapWidth: E,
          viewportColumn: I,
          verticalScrollbarWidth: d,
          horizontalScrollbarHeight: f,
          overviewRuler: {top: D, width: d, height: n - 2 * D, right: 0}
        }
      }, e
    }();
    t.EditorLayoutProvider = S;
    t.EDITOR_FONT_DEFAULTS = {
      fontFamily: i.isMacintosh ? "Menlo, Monaco, 'Courier New', monospace"
          : i.isLinux
              ? "'Droid Sans Mono', 'Courier New', monospace, 'Droid Sans Fallback'"
              : "Consolas, 'Courier New', monospace",
      fontWeight: "normal",
      fontSize: i.isMacintosh ? 12 : 14,
      lineHeight: 0,
      letterSpacing: 0
    }, t.EDITOR_MODEL_DEFAULTS = {
      tabSize: 4,
      insertSpaces: !0,
      detectIndentation: !0,
      trimAutoWhitespace: !0
    }, t.EDITOR_DEFAULTS = {
      inDiffEditor: !1,
      wordSeparators: r.USUAL_WORD_SEPARATORS,
      lineNumbersMinChars: 5,
      lineDecorationsWidth: 10,
      readOnly: !1,
      mouseStyle: "text",
      disableLayerHinting: !1,
      automaticLayout: !1,
      wordWrap: "off",
      wordWrapColumn: 80,
      wordWrapMinified: !0,
      wrappingIndent: m.Same,
      wordWrapBreakBeforeCharacters: "([{‘“〈《「『【〔（［｛｢£¥＄￡￥+＋",
      wordWrapBreakAfterCharacters: " \t})]?|&,;¢°′″‰℃、。｡､￠，．：；？！％・･ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ｧｨｩｪｫｬｭｮｯｰ”〉》」』】〕）］｝｣",
      wordWrapBreakObtrusiveCharacters: ".",
      autoClosingBrackets: !0,
      autoIndent: !0,
      dragAndDrop: !0,
      emptySelectionClipboard: !0,
      useTabStops: !0,
      multiCursorModifier: "altKey",
      accessibilitySupport: "auto",
      viewInfo: {
        extraEditorClassName: "",
        disableMonospaceOptimizations: !1,
        rulers: [],
        ariaLabel: n.localize(1, null),
        renderLineNumbers: !0,
        renderCustomLineNumbers: null,
        renderRelativeLineNumbers: !1,
        selectOnLineNumbers: !0,
        glyphMargin: !0,
        revealHorizontalRightPadding: 30,
        roundedSelection: !0,
        overviewRulerLanes: 2,
        overviewRulerBorder: !0,
        cursorBlinking: v.Blink,
        mouseWheelZoom: !1,
        cursorStyle: y.Line,
        hideCursorInOverviewRuler: !1,
        scrollBeyondLastLine: !0,
        stopRenderingLineAfter: 1e4,
        renderWhitespace: "none",
        renderControlCharacters: !1,
        fontLigatures: !1,
        renderIndentGuides: !0,
        renderLineHighlight: "line",
        scrollbar: {
          vertical: o.ScrollbarVisibility.Auto,
          horizontal: o.ScrollbarVisibility.Auto,
          arrowSize: 11,
          useShadows: !0,
          verticalHasArrows: !1,
          horizontalHasArrows: !1,
          horizontalScrollbarSize: 10,
          horizontalSliderSize: 10,
          verticalScrollbarSize: 14,
          verticalSliderSize: 14,
          handleMouseWheel: !0,
          mouseWheelScrollSensitivity: 1
        },
        minimap: {
          enabled: !0,
          showSlider: "mouseover",
          renderCharacters: !0,
          maxColumn: 120
        },
        fixedOverflowWidgets: !1
      },
      contribInfo: {
        selectionClipboard: !0,
        hover: !0,
        links: !0,
        contextmenu: !0,
        quickSuggestions: {other: !0, comments: !1, strings: !1},
        quickSuggestionsDelay: 10,
        parameterHints: !0,
        iconsInSuggestions: !0,
        formatOnType: !1,
        formatOnPaste: !1,
        suggestOnTriggerCharacters: !0,
        acceptSuggestionOnEnter: "on",
        acceptSuggestionOnCommitCharacter: !0,
        snippetSuggestions: "inline",
        wordBasedSuggestions: !0,
        suggestFontSize: 0,
        suggestLineHeight: 0,
        selectionHighlight: !0,
        occurrencesHighlight: !0,
        codeLens: !0,
        folding: !0,
        showFoldingControls: "mouseover",
        matchBrackets: !0,
        find: {seedSearchStringFromSelection: !0, autoFindInSelection: !1}
      }
    }
  }), define(d[132], h([1, 0, 15, 135, 49]), function (e, t, n, i, o) {
    "use strict";

    function r(e, t) {
      if ("number" == typeof e) {
        return e;
      }
      var n = parseFloat(e);
      return isNaN(n) ? t : n
    }

    function s(e, t) {
      if ("number" == typeof e) {
        return Math.round(e);
      }
      var n = parseInt(e);
      return isNaN(n) ? t : n
    }

    function a(e, t, n) {
      return e < t ? t : e > n ? n : e
    }

    function u(e, t) {
      return "string" != typeof e ? t : e
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var l = n.isMacintosh ? 1.5 : 1.35, c = function () {
      function e(e) {
        this.zoomLevel = e.zoomLevel, this.fontFamily = String(
            e.fontFamily), this.fontWeight = String(
            e.fontWeight), this.fontSize = e.fontSize, this.lineHeight = 0
            | e.lineHeight, this.letterSpacing = e.letterSpacing
      }

      return e.createFromRawSettings = function (t, n) {
        var c = u(t.fontFamily, o.EDITOR_FONT_DEFAULTS.fontFamily),
            d = u(t.fontWeight, o.EDITOR_FONT_DEFAULTS.fontWeight),
            h = r(t.fontSize, o.EDITOR_FONT_DEFAULTS.fontSize);
        0 === (h = a(h, 0, 100)) ? h = o.EDITOR_FONT_DEFAULTS.fontSize : h < 8
            && (h = 8);
        var p = s(t.lineHeight, 0);
        0 === (p = a(p, 0, 150)) ? p = Math.round(l * h) : p < 8 && (p = 8);
        var f = r(t.letterSpacing, 0);
        f = a(f, -20, 20);
        var g = 1 + .1 * i.EditorZoom.getZoomLevel();
        return h *= g, p *= g, new e({
          zoomLevel: n,
          fontFamily: c,
          fontWeight: d,
          fontSize: h,
          lineHeight: p,
          letterSpacing: f
        })
      }, e.prototype.getId = function () {
        return this.zoomLevel + "-" + this.fontFamily + "-" + this.fontWeight
            + "-" + this.fontSize + "-" + this.lineHeight + "-"
            + this.letterSpacing
      }, e
    }();
    t.BareFontInfo = c;
    var d = function (e) {
      function t(t, n) {
        var i = e.call(this, t) || this;
        return i.isTrusted = n, i.isMonospace = t.isMonospace, i.typicalHalfwidthCharacterWidth = t.typicalHalfwidthCharacterWidth, i.typicalFullwidthCharacterWidth = t.typicalFullwidthCharacterWidth, i.spaceWidth = t.spaceWidth, i.maxDigitWidth = t.maxDigitWidth, i
      }

      return f(t, e), t.prototype.equals = function (e) {
        return this.fontFamily === e.fontFamily && this.fontWeight
            === e.fontWeight && this.fontSize === e.fontSize && this.lineHeight
            === e.lineHeight && this.letterSpacing === e.letterSpacing
            && this.typicalHalfwidthCharacterWidth
            === e.typicalHalfwidthCharacterWidth
            && this.typicalFullwidthCharacterWidth
            === e.typicalFullwidthCharacterWidth && this.spaceWidth
            === e.spaceWidth && this.maxDigitWidth === e.maxDigitWidth
      }, t
    }(c);
    t.FontInfo = d
  }), define(d[93],
      h([1, 0, 38, 9, 12, 2, 20, 118, 482, 49, 104, 481, 158, 101, 55]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, f) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        t.LONG_LINE_BOUNDARY = 1e4;
        var g = function () {
          function e(t, i) {
            this._eventEmitter = new n.OrderGuaranteeEventEmitter;
            var o = e.resolveCreationData(t, i);
            this._isTooLargeForTokenization = o.text.length
                > e.MODEL_TOKENIZATION_LIMIT || o.text.lines.length
                > e.MANY_MANY_LINES, this._shouldSimplifyMode = this._isTooLargeForTokenization
                || o.text.length
                > e.MODEL_SYNC_LIMIT, this._options = new s.TextModelResolvedOptions(
                o.options), this._constructLines(o.text), this._setVersionId(
                1), this._isDisposed = !1, this._isDisposing = !1
          }

          return e.createFromString = function (t, n) {
            return void 0 === n && (n = e.DEFAULT_CREATION_OPTIONS), new e(
                p.RawTextSource.fromString(t), n)
          }, e.resolveCreationData = function (e, t) {
            var n, i = p.TextSource.fromRawTextSource(e, t.defaultEOL);
            if (t.detectIndentation) {
              var o = u.guessIndentation(i.lines, t.tabSize, t.insertSpaces);
              n = new s.TextModelResolvedOptions({
                tabSize: o.tabSize,
                insertSpaces: o.insertSpaces,
                trimAutoWhitespace: t.trimAutoWhitespace,
                defaultEOL: t.defaultEOL
              })
            } else {
              n = new s.TextModelResolvedOptions({
                tabSize: t.tabSize,
                insertSpaces: t.insertSpaces,
                trimAutoWhitespace: t.trimAutoWhitespace,
                defaultEOL: t.defaultEOL
              });
            }
            return {text: i, options: n}
          }, e.prototype.addBulkListener = function (e) {
            return this._eventEmitter.addBulkListener(e)
          }, e.prototype._createModelLine = function (e, t) {
            return this._isTooLargeForTokenization ? new a.MinimalModelLine(e,
                t) : new a.ModelLine(e, t)
          }, e.prototype._assertNotDisposed = function () {
            if (this._isDisposed) {
              throw new Error("Model is disposed!")
            }
          }, e.prototype.isTooLargeForHavingARichMode = function () {
            return this._shouldSimplifyMode
          }, e.prototype.isTooLargeForTokenization = function () {
            return this._isTooLargeForTokenization
          }, e.prototype.getOptions = function () {
            return this._assertNotDisposed(), this._options
          }, e.prototype.updateOptions = function (e) {
            this._assertNotDisposed();
            var t = void 0 !== e.tabSize ? e.tabSize : this._options.tabSize,
                n = void 0 !== e.insertSpaces ? e.insertSpaces
                    : this._options.insertSpaces,
                i = void 0 !== e.trimAutoWhitespace ? e.trimAutoWhitespace
                    : this._options.trimAutoWhitespace,
                o = new s.TextModelResolvedOptions({
                  tabSize: t,
                  insertSpaces: n,
                  defaultEOL: this._options.defaultEOL,
                  trimAutoWhitespace: i
                });
            if (!this._options.equals(o)) {
              var r = this._options.createChangeEvent(o);
              if (this._options = o, r.tabSize) {
                for (var a = this._options.tabSize,
                    u = 0, l = this._lines.length; u < l;
                    u++) {
                  this._lines[u].updateTabSize(a);
                }
              }
              this._eventEmitter.emit(f.TextModelEventType.ModelOptionsChanged,
                  r)
            }
          }, e.prototype.detectIndentation = function (e, t) {
            this._assertNotDisposed();
            var n = this._lines.map(function (e) {
              return e.text
            }), i = u.guessIndentation(n, t, e);
            this.updateOptions(
                {insertSpaces: i.insertSpaces, tabSize: i.tabSize})
          }, e._normalizeIndentationFromWhitespace = function (e, t, n) {
            for (var i = 0, o = 0; o < e.length; o++) {
              "\t" === e.charAt(o)
                  ? i += t : i++;
            }
            var r = "";
            if (!n) {
              var s = Math.floor(i / t);
              i %= t;
              for (o = 0; o < s; o++) {
                r += "\t"
              }
            }
            for (o = 0; o < i; o++) {
              r += " ";
            }
            return r
          }, e.normalizeIndentation = function (t, n, o) {
            var r = i.firstNonWhitespaceIndex(t);
            return -1 === r
            && (r = t.length), e._normalizeIndentationFromWhitespace(
                t.substring(0, r), n, o) + t.substring(r)
          }, e.prototype.normalizeIndentation = function (t) {
            return this._assertNotDisposed(), e.normalizeIndentation(t,
                this._options.tabSize, this._options.insertSpaces)
          }, e.prototype.getOneIndent = function () {
            this._assertNotDisposed();
            var e = this._options.tabSize;
            if (this._options.insertSpaces) {
              for (var t = "", n = 0; n < e; n++) {
                t += " ";
              }
              return t
            }
            return "\t"
          }, e.prototype.getVersionId = function () {
            return this._assertNotDisposed(), this._versionId
          }, e.prototype.mightContainRTL = function () {
            return this._mightContainRTL
          }, e.prototype.mightContainNonBasicASCII = function () {
            return this._mightContainNonBasicASCII
          }, e.prototype.getAlternativeVersionId = function () {
            return this._assertNotDisposed(), this._alternativeVersionId
          }, e.prototype._ensureLineStarts = function () {
            if (!this._lineStarts) {
              for (var e = this._EOL.length, t = this._lines.length,
                  n = new Uint32Array(t), i = 0; i < t;
                  i++) {
                n[i] = this._lines[i].text.length + e;
              }
              this._lineStarts = new c.PrefixSumComputer(n)
            }
          }, e.prototype.getOffsetAt = function (e) {
            this._assertNotDisposed();
            var t = this._validatePosition(e.lineNumber, e.column, !1);
            return this._ensureLineStarts(), this._lineStarts.getAccumulatedValue(
                t.lineNumber - 2) + t.column - 1
          }, e.prototype.getPositionAt = function (e) {
            this._assertNotDisposed(), e = Math.floor(e), e = Math.max(0,
                e), this._ensureLineStarts();
            var t = this._lineStarts.getIndexOf(e),
                n = this._lines[t.index].text.length;
            return new o.Position(t.index + 1, Math.min(t.remainder + 1, n + 1))
          }, e.prototype._increaseVersionId = function () {
            this._setVersionId(this._versionId + 1)
          }, e.prototype._setVersionId = function (e) {
            this._versionId = e, this._alternativeVersionId = this._versionId
          }, e.prototype._overwriteAlternativeVersionId = function (e) {
            this._alternativeVersionId = e
          }, e.prototype.isDisposed = function () {
            return this._isDisposed
          }, e.prototype.dispose = function () {
            this._isDisposed = !0, this._lines = null, this._EOL = null, this._BOM = null, this._eventEmitter.dispose()
          }, e.prototype._emitContentChanged2 = function (e, t, n, i, o, s, a,
              u, l) {
            var c = {
              changes: [{
                range: new r.Range(e, t, n, i),
                rangeLength: o,
                text: s
              }],
              eol: this._EOL,
              versionId: this.getVersionId(),
              isUndoing: a,
              isRedoing: u,
              isFlush: l
            };
            this._isDisposing || this._eventEmitter.emit(
                f.TextModelEventType.ModelContentChanged, c)
          }, e.prototype._resetValue = function (e) {
            this._constructLines(e), this._increaseVersionId()
          }, e.prototype.equals = function (e) {
            if (this._assertNotDisposed(), this._BOM !== e.BOM) {
              return !1;
            }
            if (this._EOL !== e.EOL) {
              return !1;
            }
            if (this._lines.length !== e.lines.length) {
              return !1;
            }
            for (var t = 0, n = this._lines.length; t < n;
                t++) {
              if (this._lines[t].text !== e.lines[t]) {
                return !1;
              }
            }
            return !0
          }, e.prototype.setValue = function (e) {
            if (this._assertNotDisposed(), null !== e) {
              var t = p.TextSource.fromString(e, this._options.defaultEOL);
              this.setValueFromTextSource(t)
            }
          }, e.prototype.setValueFromTextSource = function (e) {
            if (this._assertNotDisposed(), null !== e) {
              var t = this.getFullModelRange(),
                  n = this.getValueLengthInRange(t), i = this.getLineCount(),
                  o = this.getLineMaxColumn(i);
              this._resetValue(e), this._emitModelRawContentChangedEvent(
                  new f.ModelRawContentChangedEvent([new f.ModelRawFlush],
                      this._versionId, !1, !1)), this._emitContentChanged2(1, 1,
                  i, o, n, this.getValue(), !1, !1, !0)
            }
          }, e.prototype.getValue = function (e, t) {
            void 0 === t && (t = !1), this._assertNotDisposed();
            var n = this.getFullModelRange(), i = this.getValueInRange(n, e);
            return t ? this._BOM + i : i
          }, e.prototype.getValueLength = function (e, t) {
            void 0 === t && (t = !1), this._assertNotDisposed();
            var n = this.getFullModelRange(),
                i = this.getValueLengthInRange(n, e);
            return t ? this._BOM.length + i : i
          }, e.prototype.getValueInRange = function (e, t) {
            void 0 === t
            && (t = s.EndOfLinePreference.TextDefined), this._assertNotDisposed();
            var n = this.validateRange(e);
            if (n.isEmpty()) {
              return "";
            }
            if (n.startLineNumber
                === n.endLineNumber) {
              return this._lines[n.startLineNumber
              - 1].text.substring(n.startColumn - 1, n.endColumn - 1);
            }
            var i = this._getEndOfLine(t), o = n.startLineNumber - 1,
                r = n.endLineNumber - 1, a = [];
            a.push(this._lines[o].text.substring(n.startColumn - 1));
            for (var u = o + 1; u < r; u++) {
              a.push(this._lines[u].text);
            }
            return a.push(
                this._lines[r].text.substring(0, n.endColumn - 1)), a.join(i)
          }, e.prototype.getValueLengthInRange = function (e, t) {
            void 0 === t
            && (t = s.EndOfLinePreference.TextDefined), this._assertNotDisposed();
            var n = this.validateRange(e);
            if (n.isEmpty()) {
              return 0;
            }
            if (n.startLineNumber === n.endLineNumber) {
              return n.endColumn
                  - n.startColumn;
            }
            var i = this.getOffsetAt(
                new o.Position(n.startLineNumber, n.startColumn));
            return this.getOffsetAt(
                new o.Position(n.endLineNumber, n.endColumn)) - i
          }, e.prototype.isDominatedByLongLines = function () {
            this._assertNotDisposed();
            var e, n, i, o = 0, r = 0, s = this._lines;
            for (e = 0, n = this._lines.length; e < n;
                e++) {
              (i = s[e].text.length) >= t.LONG_LINE_BOUNDARY ? r += i
                  : o += i;
            }
            return r > o
          }, e.prototype.getLineCount = function () {
            return this._assertNotDisposed(), this._lines.length
          }, e.prototype.getLineContent = function (e) {
            if (this._assertNotDisposed(), e < 1 || e
            > this.getLineCount()) {
              throw new Error(
                  "Illegal value " + e + " for `lineNumber`");
            }
            return this._lines[e - 1].text
          }, e.prototype.getIndentLevel = function (e) {
            if (this._assertNotDisposed(), e < 1 || e
            > this.getLineCount()) {
              throw new Error(
                  "Illegal value " + e + " for `lineNumber`");
            }
            return this._lines[e - 1].getIndentLevel()
          }, e.prototype._resetIndentRanges = function () {
            this._indentRanges = null
          }, e.prototype._getIndentRanges = function () {
            return this._indentRanges || (this._indentRanges = d.computeRanges(
                this)), this._indentRanges
          }, e.prototype.getIndentRanges = function () {
            this._assertNotDisposed();
            var e = this._getIndentRanges();
            return d.IndentRange.deepCloneArr(e)
          }, e.prototype._toValidLineIndentGuide = function (e, t) {
            var n = this._lines[e - 1].getIndentLevel();
            if (-1 === n) {
              return t;
            }
            var i = Math.ceil(n / this._options.tabSize);
            return Math.min(i, t)
          }, e.prototype.getLineIndentGuide = function (e) {
            if (this._assertNotDisposed(), e < 1 || e
            > this.getLineCount()) {
              throw new Error(
                  "Illegal value " + e + " for `lineNumber`");
            }
            for (var t = this._getIndentRanges(), n = t.length - 1; n >= 0;
                n--) {
              var i = t[n];
              if (i.startLineNumber === e) {
                return this._toValidLineIndentGuide(
                    e, Math.ceil(i.indent / this._options.tabSize));
              }
              if (i.startLineNumber < e && e
                  <= i.endLineNumber) {
                return this._toValidLineIndentGuide(e,
                    1 + Math.floor(i.indent / this._options.tabSize));
              }
              if (i.endLineNumber + 1 === e) {
                for (var o = i.indent; n > 0;) {
                  (i = t[--n]).endLineNumber + 1
                  === e && (o = i.indent);
                }
                return this._toValidLineIndentGuide(e,
                    Math.ceil(o / this._options.tabSize))
              }
            }
            return 0
          }, e.prototype.getLinesContent = function () {
            this._assertNotDisposed();
            for (var e = [], t = 0, n = this._lines.length; t < n;
                t++) {
              e[t] = this._lines[t].text;
            }
            return e
          }, e.prototype.getEOL = function () {
            return this._assertNotDisposed(), this._EOL
          }, e.prototype.setEOL = function (e) {
            this._assertNotDisposed();
            var t = e === s.EndOfLineSequence.CRLF ? "\r\n" : "\n";
            if (this._EOL !== t) {
              var n = this.getFullModelRange(),
                  i = this.getValueLengthInRange(n), o = this.getLineCount(),
                  r = this.getLineMaxColumn(o);
              this._EOL = t, this._lineStarts = null, this._increaseVersionId(), this._emitModelRawContentChangedEvent(
                  new f.ModelRawContentChangedEvent([new f.ModelRawEOLChanged],
                      this._versionId, !1, !1)), this._emitContentChanged2(1, 1,
                  o, r, i, this.getValue(), !1, !1, !1)
            }
          }, e.prototype.getLineMinColumn = function (e) {
            return this._assertNotDisposed(), 1
          }, e.prototype.getLineMaxColumn = function (e) {
            if (this._assertNotDisposed(), e < 1 || e
            > this.getLineCount()) {
              throw new Error(
                  "Illegal value " + e + " for `lineNumber`");
            }
            return this._lines[e - 1].text.length + 1
          }, e.prototype.getLineFirstNonWhitespaceColumn = function (e) {
            if (this._assertNotDisposed(), e < 1 || e
            > this.getLineCount()) {
              throw new Error(
                  "Illegal value " + e + " for `lineNumber`");
            }
            var t = i.firstNonWhitespaceIndex(this._lines[e - 1].text);
            return -1 === t ? 0 : t + 1
          }, e.prototype.getLineLastNonWhitespaceColumn = function (e) {
            if (this._assertNotDisposed(), e < 1 || e
            > this.getLineCount()) {
              throw new Error(
                  "Illegal value " + e + " for `lineNumber`");
            }
            var t = i.lastNonWhitespaceIndex(this._lines[e - 1].text);
            return -1 === t ? 0 : t + 2
          }, e.prototype.validateLineNumber = function (e) {
            return this._assertNotDisposed(), e < 1 && (e = 1), e
            > this._lines.length && (e = this._lines.length), e
          }, e.prototype._validatePosition = function (e, t, n) {
            var r = Math.floor("number" == typeof e ? e : 1),
                s = Math.floor("number" == typeof t ? t : 1);
            if (r < 1) {
              return new o.Position(1, 1);
            }
            if (r > this._lines.length) {
              return new o.Position(
                  this._lines.length,
                  this.getLineMaxColumn(this._lines.length));
            }
            if (s <= 1) {
              return new o.Position(r, 1);
            }
            var a = this.getLineMaxColumn(r);
            if (s >= a) {
              return new o.Position(r, a);
            }
            if (n) {
              var u = this._lines[r - 1].text.charCodeAt(s - 2);
              if (i.isHighSurrogate(u)) {
                return new o.Position(r, s - 1)
              }
            }
            return new o.Position(r, s)
          }, e.prototype.validatePosition = function (e) {
            return this._assertNotDisposed(), this._validatePosition(
                e.lineNumber, e.column, !0)
          }, e.prototype.validateRange = function (e) {
            this._assertNotDisposed();
            var t = this._validatePosition(e.startLineNumber, e.startColumn,
                    !1),
                n = this._validatePosition(e.endLineNumber, e.endColumn, !1),
                o = t.lineNumber, s = t.column, a = n.lineNumber, u = n.column,
                l = this._lines[o - 1].text, c = this._lines[a - 1].text,
                d = s > 1 ? l.charCodeAt(s - 2) : 0,
                h = u > 1 && u <= c.length ? c.charCodeAt(u - 2) : 0,
                p = i.isHighSurrogate(d), f = i.isHighSurrogate(h);
            return p || f ? o === a && s === u ? new r.Range(o, s - 1, a, u - 1)
                : p && f ? new r.Range(o, s - 1, a, u + 1) : p ? new r.Range(o,
                    s - 1, a, u) : new r.Range(o, s, a, u + 1) : new r.Range(o,
                s, a, u)
          }, e.prototype.modifyPosition = function (e, t) {
            return this._assertNotDisposed(), this.getPositionAt(
                this.getOffsetAt(e) + t)
          }, e.prototype.getFullModelRange = function () {
            this._assertNotDisposed();
            var e = this.getLineCount();
            return new r.Range(1, 1, e, this.getLineMaxColumn(e))
          }, e.prototype._emitModelRawContentChangedEvent = function (e) {
            this._isDisposing || this._eventEmitter.emit(
                f.TextModelEventType.ModelRawContentChanged2, e)
          }, e.prototype._constructLines = function (e) {
            for (var t = this._options.tabSize, n = e.lines,
                i = new Array(n.length), o = 0, r = n.length; o < r;
                o++) {
              i[o] = this._createModelLine(n[o], t);
            }
            this._BOM = e.BOM, this._mightContainRTL = e.containsRTL, this._mightContainNonBasicASCII = !e.isBasicASCII, this._EOL = e.EOL, this._lines = i, this._lineStarts = null, this._resetIndentRanges()
          }, e.prototype._getEndOfLine = function (e) {
            switch (e) {
              case s.EndOfLinePreference.LF:
                return "\n";
              case s.EndOfLinePreference.CRLF:
                return "\r\n";
              case s.EndOfLinePreference.TextDefined:
                return this.getEOL()
            }
            throw new Error("Unknown EOL preference")
          }, e.prototype.findMatches = function (e, t, n, i, o, s, a) {
            void 0 === a && (a = 999), this._assertNotDisposed();
            var u;
            return u = r.Range.isIRange(t) ? this.validateRange(t)
                : this.getFullModelRange(), h.TextModelSearch.findMatches(this,
                new h.SearchParams(e, n, i, o), u, s, a)
          }, e.prototype.findNextMatch = function (e, t, n, i, o, r) {
            this._assertNotDisposed();
            var s = this.validatePosition(t);
            return h.TextModelSearch.findNextMatch(this,
                new h.SearchParams(e, n, i, o), s, r)
          }, e.prototype.findPreviousMatch = function (e, t, n, i, o, r) {
            this._assertNotDisposed();
            var s = this.validatePosition(t);
            return h.TextModelSearch.findPreviousMatch(this,
                new h.SearchParams(e, n, i, o), s, r)
          }, e.MODEL_SYNC_LIMIT = 5242880, e.MODEL_TOKENIZATION_LIMIT = 20971520, e.MANY_MANY_LINES = 3e5, e.DEFAULT_CREATION_OPTIONS = {
            tabSize: l.EDITOR_MODEL_DEFAULTS.tabSize,
            insertSpaces: l.EDITOR_MODEL_DEFAULTS.insertSpaces,
            detectIndentation: !1,
            defaultEOL: s.DefaultEndOfLine.LF,
            trimAutoWhitespace: l.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace
          }, e
        }();
        t.TextModel = g
      }), define(d[39], h([1, 0, 12, 9, 93, 22, 2, 43, 10]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        !function (e) {
          e[e.Primary = 0] = "Primary", e[e.TopMost = 1] = "TopMost", e[e.BottomMost = 2] = "BottomMost"
        }(t.RevealTarget || (t.RevealTarget = {}));
        var l = function () {
          function e(t, n, i, o) {
            var r = o.editor;
            this.readOnly = r.readOnly, this.tabSize = i.tabSize, this.insertSpaces = i.insertSpaces, this.oneIndent = n, this.pageSize = Math.floor(
                    r.layoutInfo.height / r.fontInfo.lineHeight)
                - 2, this.lineHeight = r.lineHeight, this.useTabStops = r.useTabStops, this.wordSeparators = r.wordSeparators, this.emptySelectionClipboard = r.emptySelectionClipboard, this.autoClosingBrackets = r.autoClosingBrackets, this.autoIndent = r.autoIndent, this.autoClosingPairsOpen = {}, this.autoClosingPairsClose = {}, this.surroundingPairs = {}, this.electricChars = {};
            var s = e._getElectricCharacters(t);
            if (s) {
              for (l = 0; l < s.length; l++) {
                this.electricChars[s[l]] = !0;
              }
            }
            var a = e._getAutoClosingPairs(t);
            if (a) {
              for (l = 0; l < a.length;
                  l++) {
                this.autoClosingPairsOpen[a[l].open] = a[l].close, this.autoClosingPairsClose[a[l].close] = a[l].open;
              }
            }
            var u = e._getSurroundingPairs(t);
            if (u) {
              for (var l = 0; l < u.length;
                  l++) {
                this.surroundingPairs[u[l].open] = u[l].close
              }
            }
          }

          return e.shouldRecreate = function (e) {
            return e.layoutInfo || e.wordSeparators || e.emptySelectionClipboard
                || e.autoClosingBrackets || e.useTabStops || e.lineHeight
                || e.readOnly
          }, e.prototype.normalizeIndentation = function (e) {
            return o.TextModel.normalizeIndentation(e, this.tabSize,
                this.insertSpaces)
          }, e._getElectricCharacters = function (e) {
            try {
              return a.LanguageConfigurationRegistry.getElectricCharacters(e.id)
            } catch (e) {
              return u.onUnexpectedError(e), null
            }
          }, e._getAutoClosingPairs = function (e) {
            try {
              return a.LanguageConfigurationRegistry.getAutoClosingPairs(e.id)
            } catch (e) {
              return u.onUnexpectedError(e), null
            }
          }, e._getSurroundingPairs = function (e) {
            try {
              return a.LanguageConfigurationRegistry.getSurroundingPairs(e.id)
            } catch (e) {
              return u.onUnexpectedError(e), null
            }
          }, e
        }();
        t.CursorConfiguration = l;
        var c = function () {
          function e(t, n, i, o) {
            this.selectionStart = t, this.selectionStartLeftoverVisibleColumns = n, this.position = i, this.leftoverVisibleColumns = o, this.selection = e._computeSelection(
                this.selectionStart, this.position)
          }

          return e.prototype.equals = function (e) {
            return this.selectionStartLeftoverVisibleColumns
                === e.selectionStartLeftoverVisibleColumns
                && this.leftoverVisibleColumns === e.leftoverVisibleColumns
                && this.position.equals(e.position)
                && this.selectionStart.equalsRange(e.selectionStart)
          }, e.prototype.hasSelection = function () {
            return !this.selection.isEmpty() || !this.selectionStart.isEmpty()
          }, e.prototype.move = function (t, i, o, r) {
            return t ? new e(this.selectionStart,
                this.selectionStartLeftoverVisibleColumns, new n.Position(i, o),
                r) : new e(new s.Range(i, o, i, o), r, new n.Position(i, o), r)
          }, e._computeSelection = function (e, t) {
            var n, i, o, s;
            return e.isEmpty()
                ? (n = e.startLineNumber, i = e.startColumn, o = t.lineNumber, s = t.column)
                : t.isBeforeOrEqual(e.getStartPosition())
                    ? (n = e.endLineNumber, i = e.endColumn, o = t.lineNumber, s = t.column)
                    : (n = e.startLineNumber, i = e.startColumn, o = t.lineNumber, s = t.column), new r.Selection(
                n, i, o, s)
          }, e
        }();
        t.SingleCursorState = c;
        var d = function () {
          function e(e, t, n) {
            this.model = t, this.viewModel = n, this.config = new l(
                this.model.getLanguageIdentifier(), this.model.getOneIndent(),
                this.model.getOptions(), e)
          }

          return e.prototype.validateViewPosition = function (e, t) {
            return this.viewModel.coordinatesConverter.validateViewPosition(e,
                t)
          }, e.prototype.validateViewRange = function (e, t) {
            return this.viewModel.coordinatesConverter.validateViewRange(e, t)
          }, e.prototype.convertViewRangeToModelRange = function (e) {
            return this.viewModel.coordinatesConverter.convertViewRangeToModelRange(
                e)
          }, e.prototype.convertViewPositionToModelPosition = function (e, t) {
            return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(
                new n.Position(e, t))
          }, e.prototype.convertModelPositionToViewPosition = function (e) {
            return this.viewModel.coordinatesConverter.convertModelPositionToViewPosition(
                e)
          }, e.prototype.convertModelRangeToViewRange = function (e) {
            return this.viewModel.coordinatesConverter.convertModelRangeToViewRange(
                e)
          }, e.prototype.getScrollTop = function () {
            return this.viewModel.viewLayout.getScrollTop()
          }, e.prototype.getCompletelyVisibleViewRange = function () {
            return this.viewModel.getCompletelyVisibleViewRange()
          }, e.prototype.getCompletelyVisibleModelRange = function () {
            var e = this.viewModel.getCompletelyVisibleViewRange();
            return this.viewModel.coordinatesConverter.convertViewRangeToModelRange(
                e)
          }, e.prototype.getCompletelyVisibleViewRangeAtScrollTop = function (e) {
            return this.viewModel.getCompletelyVisibleViewRangeAtScrollTop(e)
          }, e.prototype.getCompletelyVisibleModelRangeAtScrollTop = function (e) {
            var t = this.viewModel.getCompletelyVisibleViewRangeAtScrollTop(e);
            return this.viewModel.coordinatesConverter.convertViewRangeToModelRange(
                t)
          }, e.prototype.getVerticalOffsetForViewLine = function (e) {
            return this.viewModel.viewLayout.getVerticalOffsetForLineNumber(e)
          }, e
        }();
        t.CursorContext = d;
        var h = function () {
          function e(e, t) {
            this.modelState = e, this.viewState = t
          }

          return e.fromModelState = function (t) {
            return new e(t, null)
          }, e.fromViewState = function (t) {
            return new e(null, t)
          }, e.fromModelSelection = function (t) {
            var i = t.selectionStartLineNumber, o = t.selectionStartColumn,
                r = t.positionLineNumber, a = t.positionColumn,
                u = new c(new s.Range(i, o, i, o), 0, new n.Position(r, a), 0);
            return e.fromModelState(u)
          }, e.fromModelSelections = function (e) {
            for (var t = [], n = 0, i = e.length; n < i;
                n++) {
              t[n] = this.fromModelSelection(e[n]);
            }
            return t
          }, e.ensureInEditableRange = function (t, n) {
            var i = t.model;
            if (!i.hasEditableRange()) {
              return n;
            }
            for (var o = i.getEditableRange(),
                r = t.convertModelRangeToViewRange(o), s = [], a = 0,
                u = n.length; a < u; a++) {
              var l = n[a];
              if (l.modelState) {
                var c = e._ensureInEditableRange(l.modelState, o);
                s[a] = c ? e.fromModelState(c) : l
              } else {
                var d = e._ensureInEditableRange(l.viewState, r);
                s[a] = d ? e.fromViewState(d) : l
              }
            }
            return s
          }, e._ensureInEditableRange = function (e, t) {
            var i = e.position;
            return i.lineNumber < t.startLineNumber || i.lineNumber
            === t.startLineNumber && i.column < t.startColumn ? new c(
                    e.selectionStart, e.selectionStartLeftoverVisibleColumns,
                    new n.Position(t.startLineNumber, t.startColumn), 0)
                : i.lineNumber > t.endLineNumber || i.lineNumber
                === t.endLineNumber && i.column > t.endColumn ? new c(
                    e.selectionStart, e.selectionStartLeftoverVisibleColumns,
                    new n.Position(t.endLineNumber, t.endColumn), 0) : null
          }, e.prototype.equals = function (e) {
            return this.viewState.equals(e.viewState) && this.modelState.equals(
                e.viewState)
          }, e
        }();
        t.CursorState = h;
        var p = function () {
          return function (e, t) {
            this.commands = e, this.shouldPushStackElementBefore = t.shouldPushStackElementBefore, this.shouldPushStackElementAfter = t.shouldPushStackElementAfter
          }
        }();
        t.EditOperationResult = p;
        var f = function () {
          function e() {
          }

          return e.isLowSurrogate = function (e, t, n) {
            var o = e.getLineContent(t);
            return !(n < 0 || n >= o.length) && i.isLowSurrogate(
                o.charCodeAt(n))
          }, e.isHighSurrogate = function (e, t, n) {
            var o = e.getLineContent(t);
            return !(n < 0 || n >= o.length) && i.isHighSurrogate(
                o.charCodeAt(n))
          }, e.isInsideSurrogatePair = function (e, t, n) {
            return this.isHighSurrogate(e, t, n - 2)
          }, e.visibleColumnFromColumn = function (e, t, n) {
            var i = e.length;
            i > t - 1 && (i = t - 1);
            for (var o = 0, r = 0; r < i; r++) {
              9 === e.charCodeAt(r)
                  ? o = this.nextTabStop(o, n) : o += 1;
            }
            return o
          }, e.visibleColumnFromColumn2 = function (e, t, n) {
            return this.visibleColumnFromColumn(t.getLineContent(n.lineNumber),
                n.column, e.tabSize)
          }, e.columnFromVisibleColumn = function (e, t, n) {
            if (t <= 0) {
              return 1;
            }
            for (var i = e.length, o = 0, r = 0; r < i; r++) {
              var s = void 0;
              if ((s = 9 === e.charCodeAt(r) ? this.nextTabStop(o, n) : o + 1)
                  >= t) {
                return s - t < t - o ? r + 2 : r + 1;
              }
              o = s
            }
            return i + 1
          }, e.columnFromVisibleColumn2 = function (e, t, n, i) {
            var o = this.columnFromVisibleColumn(t.getLineContent(n), i,
                e.tabSize), r = t.getLineMinColumn(n);
            if (o < r) {
              return r;
            }
            var s = t.getLineMaxColumn(n);
            return o > s ? s : o
          }, e.nextTabStop = function (e, t) {
            return e + t - e % t
          }, e.prevTabStop = function (e, t) {
            return e - 1 - (e - 1) % t
          }, e
        }();
        t.CursorColumns = f
      }), define(d[167], h([1, 0, 9, 39, 2, 22, 43]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function () {
          function e(e, t) {
            this._opts = t, this._selection = e, this._useLastEditRangeForCursorEndPosition = !1, this._selectionStartColumnStaysPut = !1
          }

          return e.unshiftIndentCount = function (e, t, n) {
            var o = i.CursorColumns.visibleColumnFromColumn(e, t, n);
            return i.CursorColumns.prevTabStop(o, n) / n
          }, e.shiftIndentCount = function (e, t, n) {
            var o = i.CursorColumns.visibleColumnFromColumn(e, t, n);
            return i.CursorColumns.nextTabStop(o, n) / n
          }, e.prototype._addEditOperation = function (e, t, n) {
            this._useLastEditRangeForCursorEndPosition
                ? e.addTrackedEditOperation(t, n) : e.addEditOperation(t, n)
          }, e.prototype.getEditOperations = function (t, r) {
            var a = this._selection.startLineNumber,
                u = this._selection.endLineNumber;
            1 === this._selection.endColumn && a !== u && (u -= 1);
            var l = this._opts.tabSize, c = this._opts.oneIndent, d = a === u;
            if (this._selection.isEmpty() && /^\s*$/.test(t.getLineContent(a))
            && (this._useLastEditRangeForCursorEndPosition = !0), this._opts.useTabStops) {
              for (var h = ["",
                c], p = 0, f = 0, g = a; g <= u; g++, p = f) {
                f = 0;
                var m = t.getLineContent(g), v = n.firstNonWhitespaceIndex(m);
                if ((!this._opts.isUnshift || 0 !== m.length && 0 !== v) && (d
                    || this._opts.isUnshift || 0 !== m.length)) {
                  if (-1 === v && (v = m.length), g > 1
                  && i.CursorColumns.visibleColumnFromColumn(m, v + 1, l) % l
                  != 0) {
                    var _ = s.LanguageConfigurationRegistry.getRawEnterActionAtPosition(
                        t, g - 1, t.getLineMaxColumn(g - 1));
                    if (_) {
                      if (f = p, _.appendText) {
                        for (var y = 0,
                            C = _.appendText.length;
                            y < C && f < l && 32 === _.appendText.charCodeAt(y);
                            y++) {
                          f++;
                        }
                      }
                      _.removeText && (f = Math.max(0, f - _.removeText));
                      for (y = 0;
                          y < f && (0 !== v && 32 === m.charCodeAt(v - 1));
                          y++) {
                        v--
                      }
                    }
                  }
                  if (!this._opts.isUnshift || 0 !== v) {
                    var b = void 0;
                    b = this._opts.isUnshift ? e.unshiftIndentCount(m, v + 1, l)
                        : e.shiftIndentCount(m, v + 1, l);
                    for (y = h.length; y <= b; y++) {
                      h[y] = h[y - 1] + c;
                    }
                    this._addEditOperation(r, new o.Range(g, 1, g, v + 1),
                        h[b]), g === a
                    && (this._selectionStartColumnStaysPut = this._selection.startColumn
                        <= v + 1)
                  }
                }
              }
            } else {
              for (g = a; g <= u; g++) {
                var m = t.getLineContent(g), v = n.firstNonWhitespaceIndex(m);
                if ((!this._opts.isUnshift || 0 !== m.length && 0 !== v) && ((d
                    || this._opts.isUnshift || 0 !== m.length) && (-1 === v
                && (v = m.length), !this._opts.isUnshift || 0
                !== v))) {
                  if (this._opts.isUnshift) {
                    v = Math.min(v, l);
                    for (var w = 0; w < v; w++) {
                      if (9 === m.charCodeAt(w)) {
                        v = w + 1;
                        break
                      }
                    }
                    this._addEditOperation(r, new o.Range(g, 1, g, v + 1), "")
                  } else {
                    this._addEditOperation(r, new o.Range(g, 1, g, 1), c), g
                    === a && (this._selectionStartColumnStaysPut = 1
                        === this._selection.startColumn)
                  }
                }
              }
            }
            this._selectionId = r.trackSelection(this._selection)
          }, e.prototype.computeCursorState = function (e, t) {
            if (this._useLastEditRangeForCursorEndPosition) {
              var n = t.getInverseEditOperations()[0];
              return new r.Selection(n.range.endLineNumber, n.range.endColumn,
                  n.range.endLineNumber, n.range.endColumn)
            }
            var i = t.getTrackedSelection(this._selectionId);
            if (this._selectionStartColumnStaysPut) {
              var o = this._selection.startColumn;
              return i.startColumn <= o ? i : i.getDirection()
              === r.SelectionDirection.LTR ? new r.Selection(i.startLineNumber,
                  o, i.endLineNumber, i.endColumn) : new r.Selection(
                  i.endLineNumber, i.endColumn, i.startLineNumber, o)
            }
            return i
          }, e
        }();
        t.ShiftCommand = a
      }), define(d[311], h([1, 0, 12, 2, 39]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e() {
      }

      return e._columnSelect = function (e, t, r, s, a, u) {
        for (var l = Math.abs(a - r) + 1, c = r > a, d = s > u, h = s < u,
            p = [], f = 0; f < l; f++) {
          var g = r + (c ? -f : f),
              m = o.CursorColumns.columnFromVisibleColumn2(e, t, g, s),
              v = o.CursorColumns.columnFromVisibleColumn2(e, t, g, u),
              _ = o.CursorColumns.visibleColumnFromColumn2(e, t,
                  new n.Position(g, m)),
              y = o.CursorColumns.visibleColumnFromColumn2(e, t,
                  new n.Position(g, v));
          if (h) {
            if (_ > u) {
              continue;
            }
            if (y < s) {
              continue
            }
          }
          if (d) {
            if (y > s) {
              continue;
            }
            if (_ < u) {
              continue
            }
          }
          p.push(new o.SingleCursorState(new i.Range(g, m, g, m), 0,
              new n.Position(g, v), 0))
        }
        return {viewStates: p, reversed: c, toLineNumber: a, toVisualColumn: u}
      }, e.columnSelect = function (t, i, r, s, a) {
        var u = new n.Position(r.selectionStartLineNumber,
                r.selectionStartColumn),
            l = o.CursorColumns.visibleColumnFromColumn2(t, i, u);
        return e._columnSelect(t, i, u.lineNumber, l, s, a)
      }, e.columnSelectLeft = function (e, t, n, i, o) {
        return o > 1 && o--, this.columnSelect(e, t, n.selection, i, o)
      }, e.columnSelectRight = function (e, t, i, r, s) {
        for (var a = 0, u = Math.min(i.position.lineNumber, r),
            l = Math.max(i.position.lineNumber, r), c = u; c <= l; c++) {
          var d = t.getLineMaxColumn(c),
              h = o.CursorColumns.visibleColumnFromColumn2(e, t,
                  new n.Position(c, d));
          a = Math.max(a, h)
        }
        return s < a && s++, this.columnSelect(e, t, i.selection, r, s)
      }, e.columnSelectUp = function (e, t, n, i, o, r) {
        return (o -= i ? e.pageSize : 1) < 1 && (o = 1), this.columnSelect(e, t,
            n.selection, o, r)
      }, e.columnSelectDown = function (e, t, n, i, o, r) {
        return (o += i ? e.pageSize : 1) > t.getLineCount()
        && (o = t.getLineCount()), this.columnSelect(e, t, n.selection, o, r)
      }, e
    }();
    t.ColumnSelection = r
  }), define(d[169], h([1, 0, 39, 12, 2]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      return function (e, t, n) {
        this.lineNumber = e, this.column = t, this.leftoverVisibleColumns = n
      }
    }();
    t.CursorPosition = r;
    var s = function () {
      function e() {
      }

      return e.left = function (e, t, i, o) {
        return o > t.getLineMinColumn(i) ? n.CursorColumns.isLowSurrogate(t, i,
            o - 2) ? o -= 2 : o -= 1 : i > 1 && (i -= 1, o = t.getLineMaxColumn(
            i)), new r(i, o, 0)
      }, e.moveLeft = function (t, n, i, o, r) {
        var s, a;
        if (i.hasSelection()
            && !o) {
          s = i.selection.startLineNumber, a = i.selection.startColumn;
        } else {
          var u = e.left(t, n, i.position.lineNumber,
              i.position.column - (r - 1));
          s = u.lineNumber, a = u.column
        }
        return i.move(o, s, a, 0)
      }, e.right = function (e, t, i, o) {
        return o < t.getLineMaxColumn(i) ? n.CursorColumns.isHighSurrogate(t, i,
            o - 1) ? o += 2 : o += 1 : i < t.getLineCount()
            && (i += 1, o = t.getLineMinColumn(i)), new r(i, o, 0)
      }, e.moveRight = function (t, n, i, o, r) {
        var s, a;
        if (i.hasSelection()
            && !o) {
          s = i.selection.endLineNumber, a = i.selection.endColumn;
        } else {
          var u = e.right(t, n, i.position.lineNumber,
              i.position.column + (r - 1));
          s = u.lineNumber, a = u.column
        }
        return i.move(o, s, a, 0)
      }, e.down = function (e, t, i, o, s, a, u) {
        var l = n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i), o,
            e.tabSize) + s;
        i += a;
        var c = t.getLineCount();
        return i > c ? (i = c, u ? o = t.getLineMaxColumn(i) : (o = Math.min(
            t.getLineMaxColumn(i), o), n.CursorColumns.isInsideSurrogatePair(t,
            i, o) && (o -= 1))) : (o = n.CursorColumns.columnFromVisibleColumn2(
            e, t, i, l), n.CursorColumns.isInsideSurrogatePair(t, i, o)
        && (o -= 1)), s = l - n.CursorColumns.visibleColumnFromColumn(
            t.getLineContent(i), o, e.tabSize), new r(i, o, s)
      }, e.moveDown = function (t, n, i, o, r) {
        var s, a;
        i.hasSelection() && !o
            ? (s = i.selection.endLineNumber, a = i.selection.endColumn)
            : (s = i.position.lineNumber, a = i.position.column);
        var u = e.down(t, n, s, a, i.leftoverVisibleColumns, r, !0);
        return i.move(o, u.lineNumber, u.column, u.leftoverVisibleColumns)
      }, e.translateDown = function (t, r, s) {
        var a = s.selection,
            u = e.down(t, r, a.selectionStartLineNumber, a.selectionStartColumn,
                s.selectionStartLeftoverVisibleColumns, 1, !1),
            l = e.down(t, r, a.positionLineNumber, a.positionColumn,
                s.leftoverVisibleColumns, 1, !1);
        return new n.SingleCursorState(
            new o.Range(u.lineNumber, u.column, u.lineNumber, u.column),
            u.leftoverVisibleColumns, new i.Position(l.lineNumber, l.column),
            l.leftoverVisibleColumns)
      }, e.up = function (e, t, i, o, s, a, u) {
        var l = n.CursorColumns.visibleColumnFromColumn(t.getLineContent(i), o,
            e.tabSize) + s;
        return (i -= a) < 1 ? (i = 1, u ? o = t.getLineMinColumn(i)
                : (o = Math.min(t.getLineMaxColumn(i),
                    o), n.CursorColumns.isInsideSurrogatePair(t, i, o) && (o -= 1)))
            : (o = n.CursorColumns.columnFromVisibleColumn2(e, t, i,
                l), n.CursorColumns.isInsideSurrogatePair(t, i, o)
            && (o -= 1)), s = l - n.CursorColumns.visibleColumnFromColumn(
            t.getLineContent(i), o, e.tabSize), new r(i, o, s)
      }, e.moveUp = function (t, n, i, o, r) {
        var s, a;
        i.hasSelection() && !o
            ? (s = i.selection.startLineNumber, a = i.selection.startColumn)
            : (s = i.position.lineNumber, a = i.position.column);
        var u = e.up(t, n, s, a, i.leftoverVisibleColumns, r, !0);
        return i.move(o, u.lineNumber, u.column, u.leftoverVisibleColumns)
      }, e.translateUp = function (t, r, s) {
        var a = s.selection,
            u = e.up(t, r, a.selectionStartLineNumber, a.selectionStartColumn,
                s.selectionStartLeftoverVisibleColumns, 1, !1),
            l = e.up(t, r, a.positionLineNumber, a.positionColumn,
                s.leftoverVisibleColumns, 1, !1);
        return new n.SingleCursorState(
            new o.Range(u.lineNumber, u.column, u.lineNumber, u.column),
            u.leftoverVisibleColumns, new i.Position(l.lineNumber, l.column),
            l.leftoverVisibleColumns)
      }, e.moveToBeginningOfLine = function (e, t, n, i) {
        var o, r = n.position.lineNumber, s = t.getLineMinColumn(r),
            a = t.getLineFirstNonWhitespaceColumn(r) || s;
        return o = n.position.column === a ? s : a, n.move(i, r, o, 0)
      }, e.moveToEndOfLine = function (e, t, n, i) {
        var o = n.position.lineNumber, r = t.getLineMaxColumn(o);
        return n.move(i, o, r, 0)
      }, e.moveToBeginningOfBuffer = function (e, t, n, i) {
        return n.move(i, 1, 1, 0)
      }, e.moveToEndOfBuffer = function (e, t, n, i) {
        var o = t.getLineCount(), r = t.getLineMaxColumn(o);
        return n.move(i, o, r, 0)
      }, e
    }();
    t.MoveOperations = s
  }), define(d[170], h([1, 0, 73, 39, 2, 169, 9]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function () {
          function e() {
          }

          return e.deleteRight = function (e, t, i) {
            for (var s = [], a = !1, u = 0, l = i.length; u < l; u++) {
              var c = i[u], d = c;
              if (d.isEmpty()) {
                var h = c.getPosition(),
                    p = r.MoveOperations.right(e, t, h.lineNumber, h.column);
                d = new o.Range(p.lineNumber, p.column, h.lineNumber, h.column)
              }
              d.isEmpty() ? s[u] = null : (d.startLineNumber !== d.endLineNumber
              && (a = !0), s[u] = new n.ReplaceCommand(d, ""))
            }
            return [a, s]
          }, e._isAutoClosingPairDelete = function (e, t, n) {
            if (!e.autoClosingBrackets) {
              return !1;
            }
            for (var i = 0, o = n.length; i < o; i++) {
              var r = n[i], s = r.getPosition();
              if (!r.isEmpty()) {
                return !1;
              }
              var a = t.getLineContent(s.lineNumber), u = a[s.column - 2];
              if (!e.autoClosingPairsOpen.hasOwnProperty(u)) {
                return !1;
              }
              if (a[s.column - 1] !== e.autoClosingPairsOpen[u]) {
                return !1
              }
            }
            return !0
          }, e._runAutoClosingPairDelete = function (e, t, i) {
            for (var r = [], s = 0, a = i.length; s < a; s++) {
              var u = i[s].getPosition(),
                  l = new o.Range(u.lineNumber, u.column - 1, u.lineNumber,
                      u.column + 1);
              r[s] = new n.ReplaceCommand(l, "")
            }
            return [!0, r]
          }, e.deleteLeft = function (e, t, a) {
            if (this._isAutoClosingPairDelete(e, t,
                a)) {
              return this._runAutoClosingPairDelete(e, t, a);
            }
            for (var u = [], l = !1, c = 0, d = a.length; c < d; c++) {
              var h = a[c], p = h;
              if (p.isEmpty()) {
                var f = h.getPosition();
                if (e.useTabStops && f.column > 1) {
                  var g = t.getLineContent(f.lineNumber),
                      m = s.firstNonWhitespaceIndex(g),
                      v = -1 === m ? g.length + 1 : m + 1;
                  if (f.column <= v) {
                    var _ = i.CursorColumns.visibleColumnFromColumn2(e, t, f),
                        y = i.CursorColumns.prevTabStop(_, e.tabSize),
                        C = i.CursorColumns.columnFromVisibleColumn2(e, t,
                            f.lineNumber, y);
                    p = new o.Range(f.lineNumber, C, f.lineNumber, f.column)
                  } else {
                    p = new o.Range(f.lineNumber, f.column - 1,
                        f.lineNumber, f.column)
                  }
                } else {
                  var b = r.MoveOperations.left(e, t, f.lineNumber, f.column);
                  p = new o.Range(b.lineNumber, b.column, f.lineNumber,
                      f.column)
                }
              }
              p.isEmpty() ? u[c] = null : (p.startLineNumber !== p.endLineNumber
              && (l = !0), u[c] = new n.ReplaceCommand(p, ""))
            }
            return [l, u]
          }, e.cut = function (e, t, r) {
            for (var s = [], a = 0, u = r.length; a < u; a++) {
              var l = r[a];
              if (l.isEmpty()) {
                if (e.emptySelectionClipboard) {
                  var c = l.getPosition(), d = void 0, h = void 0, p = void 0,
                      f = void 0;
                  c.lineNumber < t.getLineCount()
                      ? (d = c.lineNumber, h = 1, p = c.lineNumber + 1, f = 1)
                      : c.lineNumber > 1 ? (d = c.lineNumber
                              - 1, h = t.getLineMaxColumn(
                              c.lineNumber
                              - 1), p = c.lineNumber, f = t.getLineMaxColumn(
                              c.lineNumber))
                          : (d = c.lineNumber, h = 1, p = c.lineNumber, f = t.getLineMaxColumn(
                              c.lineNumber));
                  var g = new o.Range(d, h, p, f);
                  g.isEmpty() ? s[a] = null : s[a] = new n.ReplaceCommand(g, "")
                } else {
                  s[a] = null;
                }
              } else {
                s[a] = new n.ReplaceCommand(l, "")
              }
            }
            return new i.EditOperationResult(s, {
              shouldPushStackElementBefore: !0,
              shouldPushStackElementAfter: !0
            })
          }, e
        }();
        t.DeleteOperations = a
      }), define(d[119], h([1, 0, 10, 73, 39, 2, 9, 167, 43, 60, 441, 94]),
      function (e, t, n, i, o, r, s, a, u, l, c, d) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var h = function () {
          function e() {
          }

          return e.indent = function (e, t, n) {
            for (var i = [], o = 0, r = n.length; o < r;
                o++) {
              i[o] = new a.ShiftCommand(n[o], {
                isUnshift: !1,
                tabSize: e.tabSize,
                oneIndent: e.oneIndent,
                useTabStops: e.useTabStops
              });
            }
            return i
          }, e.outdent = function (e, t, n) {
            for (var i = [], o = 0, r = n.length; o < r;
                o++) {
              i[o] = new a.ShiftCommand(n[o], {
                isUnshift: !0,
                tabSize: e.tabSize,
                oneIndent: e.oneIndent,
                useTabStops: e.useTabStops
              });
            }
            return i
          }, e.shiftIndent = function (e, t, n) {
            n = n || 1;
            for (var i = a.ShiftCommand.shiftIndentCount(t, t.length + n,
                e.tabSize), o = "", r = 0; r < i; r++) {
              o += "\t";
            }
            return o
          }, e.unshiftIndent = function (e, t, n) {
            n = n || 1;
            for (var i = a.ShiftCommand.unshiftIndentCount(t, t.length + n,
                e.tabSize), o = "", r = 0; r < i; r++) {
              o += "\t";
            }
            return o
          }, e._distributedPaste = function (e, t, n, r) {
            for (var s = [], a = 0, u = n.length; a < u;
                a++) {
              s[a] = new i.ReplaceCommand(n[a], r[a]);
            }
            return new o.EditOperationResult(s, {
              shouldPushStackElementBefore: !0,
              shouldPushStackElementAfter: !0
            })
          }, e._simplePaste = function (e, t, n, s, a) {
            for (var u = [], l = 0, c = n.length; l < c; l++) {
              var d = n[l], h = d.getPosition();
              if (a && s.indexOf("\n") !== s.length - 1 && (a = !1), a
              && d.startLineNumber !== d.endLineNumber && (a = !1), a
              && d.startColumn === t.getLineMinColumn(d.startLineNumber)
              && d.endColumn === t.getLineMaxColumn(d.startLineNumber)
              && (a = !1), a) {
                var p = new r.Range(h.lineNumber, 1, h.lineNumber, 1);
                u[l] = new i.ReplaceCommand(p, s)
              } else {
                u[l] = new i.ReplaceCommand(d, s)
              }
            }
            return new o.EditOperationResult(u, {
              shouldPushStackElementBefore: !0,
              shouldPushStackElementAfter: !0
            })
          }, e._distributePasteToCursors = function (e, t, n) {
            if (t) {
              return null;
            }
            if (1 === e.length) {
              return null;
            }
            for (var i = 0; i < e.length; i++) {
              if (e[i].startLineNumber
                  !== e[i].endLineNumber) {
                return null;
              }
            }
            var o = n.split(/\r\n|\r|\n/);
            return o.length !== e.length ? null : o
          }, e.paste = function (e, t, n, i, o) {
            var s = this._distributePasteToCursors(n, i, o);
            return s ? (n = n.sort(
                r.Range.compareRangesUsingStarts), this._distributedPaste(e, t,
                n, s)) : this._simplePaste(e, t, n, o, i)
          }, e._goodIndentForLine = function (t, n, i) {
            var o, a,
                c = u.LanguageConfigurationRegistry.getInheritIndentForLine(n,
                    i, !1);
            if (c) {
              o = c.action, a = c.indentation;
            } else if (i > 1) {
              var d = i - 1;
              for (d = i - 1; d >= 1; d--) {
                var h = n.getLineContent(d);
                if (s.lastNonWhitespaceIndex(h) >= 0) {
                  break
                }
              }
              if (d < 1) {
                return null;
              }
              var p = n.getLineMaxColumn(d),
                  f = u.LanguageConfigurationRegistry.getEnterAction(n,
                      new r.Range(d, p, d, p));
              f && (a = f.indentation, (o = f.enterAction)
              && (a += o.appendText))
            }
            return o && (o === l.IndentAction.Indent && (a = e.shiftIndent(t,
                a)), o === l.IndentAction.Outdent && (a = e.unshiftIndent(t,
                a)), a = t.normalizeIndentation(a)), a || null
          }, e._replaceJumpToNextIndent = function (e, t, n, r) {
            var s = "", a = n.getStartPosition();
            if (e.insertSpaces) {
              for (var u = o.CursorColumns.visibleColumnFromColumn2(
                  e, t, a), l = e.tabSize, c = l - u % l, d = 0; d < c;
                  d++) {
                s += " ";
              }
            } else {
              s = "\t";
            }
            return new i.ReplaceCommand(n, s, r)
          }, e.tab = function (e, t, n) {
            for (var o = [], u = 0, l = n.length; u < l; u++) {
              var c = n[u];
              if (c.isEmpty()) {
                var d = t.getLineContent(c.startLineNumber);
                if (/^\s*$/.test(d)) {
                  var h = this._goodIndentForLine(e, t, c.startLineNumber);
                  h = h || "\t";
                  var p = e.normalizeIndentation(h);
                  if (!s.startsWith(d, p)) {
                    o[u] = new i.ReplaceCommand(
                        new r.Range(c.startLineNumber, 1, c.startLineNumber,
                            d.length + 1), p, !0);
                    continue
                  }
                }
                o[u] = this._replaceJumpToNextIndent(e, t, c, !0)
              } else {
                if (c.startLineNumber === c.endLineNumber) {
                  var f = t.getLineMaxColumn(c.startLineNumber);
                  if (1 !== c.startColumn || c.endColumn !== f) {
                    o[u] = this._replaceJumpToNextIndent(e, t, c, !1);
                    continue
                  }
                }
                o[u] = new a.ShiftCommand(c, {
                  isUnshift: !1,
                  tabSize: e.tabSize,
                  oneIndent: e.oneIndent,
                  useTabStops: e.useTabStops
                })
              }
            }
            return o
          }, e.replacePreviousChar = function (e, t, n, s, a) {
            for (var u = [], l = 0, c = n.length; l < c; l++) {
              var d = n[l];
              if (d.isEmpty()) {
                var h = d.getPosition(), p = Math.max(1, h.column - a),
                    f = new r.Range(h.lineNumber, p, h.lineNumber, h.column);
                u[l] = new i.ReplaceCommand(f, s)
              } else {
                u[l] = null
              }
            }
            return new o.EditOperationResult(u, {
              shouldPushStackElementBefore: !1,
              shouldPushStackElementAfter: !1
            })
          }, e._typeCommand = function (e, t, n) {
            return n ? new i.ReplaceCommandWithoutChangingPosition(e, t, !0)
                : new i.ReplaceCommand(e, t, !0)
          }, e._enter = function (t, n, a, c) {
            var d = u.LanguageConfigurationRegistry.getEnterAction(n, c);
            if (d) {
              var h = d.enterAction, p = d.indentation;
              if (h.indentAction === l.IndentAction.None) {
                return e._typeCommand(
                    c, "\n" + t.normalizeIndentation(p + h.appendText), a);
              }
              if (h.indentAction
                  === l.IndentAction.Indent) {
                return e._typeCommand(c,
                    "\n" + t.normalizeIndentation(p + h.appendText), a);
              }
              if (h.indentAction === l.IndentAction.IndentOutdent) {
                var f = t.normalizeIndentation(p),
                    g = t.normalizeIndentation(p + h.appendText),
                    m = "\n" + g + "\n" + f;
                return a ? new i.ReplaceCommandWithoutChangingPosition(c, m, !0)
                    : new i.ReplaceCommandWithOffsetCursorState(c, m, -1,
                        g.length - f.length, !0)
              }
              if (h.indentAction === l.IndentAction.Outdent) {
                var v = e.unshiftIndent(t, p);
                return e._typeCommand(c,
                    "\n" + t.normalizeIndentation(v + h.appendText), a)
              }
            }
            var _ = u.LanguageConfigurationRegistry.getIndentForEnter(n, c, {
                  unshiftIndent: function (n) {
                    return e.unshiftIndent(t, n)
                  }, shiftIndent: function (n) {
                    return e.shiftIndent(t, n)
                  }, normalizeIndentation: function (e) {
                    return t.normalizeIndentation(e)
                  }
                }, t.autoIndent), y = n.getLineContent(c.startLineNumber),
                C = s.getLeadingWhitespace(y).substring(0, c.startColumn - 1);
            if (_) {
              var b = o.CursorColumns.visibleColumnFromColumn2(t, n,
                  c.getEndPosition()), w = c.endColumn, S = "\n";
              C !== t.normalizeIndentation(_.beforeEnter)
              && (S = t.normalizeIndentation(_.beforeEnter) + y.substring(
                  C.length, c.startColumn - 1) + "\n", c = new r.Range(
                  c.startLineNumber, 1, c.endLineNumber, c.endColumn));
              var E = n.getLineContent(c.endLineNumber),
                  L = s.firstNonWhitespaceIndex(E);
              if (c = L >= 0 ? c.setEndPosition(c.endLineNumber,
                  Math.max(c.endColumn, L + 1)) : c.setEndPosition(
                  c.endLineNumber, n.getLineMaxColumn(
                      c.endLineNumber)), a) {
                return new i.ReplaceCommandWithoutChangingPosition(
                    c, S + t.normalizeIndentation(_.afterEnter), !0);
              }
              var x = 0;
              return w <= L + 1 && (t.insertSpaces || (b = Math.ceil(
                  b / t.tabSize)), x = Math.min(
                  b + 1 - t.normalizeIndentation(_.afterEnter).length - 1,
                  0)), new i.ReplaceCommandWithOffsetCursorState(c,
                  S + t.normalizeIndentation(_.afterEnter), 0, x, !0)
            }
            return e._typeCommand(c, "\n" + t.normalizeIndentation(C), a)
          }, e._runAutoIndentType = function (t, n, i, o) {
            var s = u.LanguageConfigurationRegistry.getIndentationAtPosition(n,
                    i.startLineNumber, i.startColumn),
                a = u.LanguageConfigurationRegistry.getIndentActionForType(n, i,
                    o, {
                      shiftIndent: function (n) {
                        return e.shiftIndent(t, n)
                      }, unshiftIndent: function (n) {
                        return e.unshiftIndent(t, n)
                      }
                    });
            if (null === a) {
              return null;
            }
            if (a !== t.normalizeIndentation(s)) {
              var l = n.getLineFirstNonWhitespaceColumn(i.startLineNumber);
              return 0 === l ? e._typeCommand(
                      new r.Range(i.startLineNumber, 0, i.endLineNumber,
                          i.endColumn), t.normalizeIndentation(a) + o, !1)
                  : e._typeCommand(
                      new r.Range(i.startLineNumber, 0, i.endLineNumber,
                          i.endColumn),
                      t.normalizeIndentation(a) + n.getLineContent(
                          i.startLineNumber).substring(l - 1, i.startColumn - 1)
                      + o, !1)
            }
            return null
          }, e._isAutoClosingCloseCharType = function (e, t, n, i) {
            if (!e.autoClosingBrackets
                || !e.autoClosingPairsClose.hasOwnProperty(i)) {
              return !1;
            }
            for (var o = 0, r = n.length; o < r; o++) {
              var s = n[o];
              if (!s.isEmpty()) {
                return !1;
              }
              var a = s.getPosition();
              if (t.getLineContent(a.lineNumber).charAt(a.column - 1)
                  !== i) {
                return !1
              }
            }
            return !0
          }, e._runAutoClosingCloseCharType = function (e, t, n, s) {
            for (var a = [], u = 0, l = n.length; u < l; u++) {
              var c = n[u].getPosition(),
                  d = new r.Range(c.lineNumber, c.column, c.lineNumber,
                      c.column + 1);
              a[u] = new i.ReplaceCommand(d, s)
            }
            return new o.EditOperationResult(a, {
              shouldPushStackElementBefore: !1,
              shouldPushStackElementAfter: !1
            })
          }, e._isAutoClosingOpenCharType = function (e, t, i, o) {
            if (!e.autoClosingBrackets
                || !e.autoClosingPairsOpen.hasOwnProperty(o)) {
              return !1;
            }
            for (var r = 0, s = i.length; r < s; r++) {
              var a = i[r];
              if (!a.isEmpty()) {
                return !1;
              }
              var l = a.getPosition(), c = t.getLineContent(l.lineNumber);
              if (("'" === o || '"' === o) && l.column > 1) {
                var h = d.getMapForWordSeparators(e.wordSeparators),
                    p = c.charCodeAt(l.column - 2);
                if (0 === h.get(p)) {
                  return !1
                }
              }
              var f = c.charAt(l.column - 1);
              if (f) {
                var g = e.autoClosingPairsOpen[o] === o, m = !1;
                for (var v in e.autoClosingPairsClose) {
                  var _ = e.autoClosingPairsOpen[v] === v;
                  if ((g || !_) && f === v) {
                    m = !0;
                    break
                  }
                }
                if (!m && !/\s/.test(f)) {
                  return !1
                }
              }
              t.forceTokenization(l.lineNumber);
              var y = t.getLineTokens(l.lineNumber), C = !1;
              try {
                C = u.LanguageConfigurationRegistry.shouldAutoClosePair(o, y,
                    l.column)
              } catch (e) {
                n.onUnexpectedError(e)
              }
              if (!C) {
                return !1
              }
            }
            return !0
          }, e._runAutoClosingOpenCharType = function (e, t, n, r) {
            for (var s = [], a = 0, u = n.length; a < u; a++) {
              var l = n[a], c = e.autoClosingPairsOpen[r];
              s[a] = new i.ReplaceCommandWithOffsetCursorState(l, r + c, 0,
                  -c.length)
            }
            return new o.EditOperationResult(s, {
              shouldPushStackElementBefore: !0,
              shouldPushStackElementAfter: !1
            })
          }, e._isSurroundSelectionType = function (e, t, n, i) {
            if (!e.autoClosingBrackets || !e.surroundingPairs.hasOwnProperty(
                i)) {
              return !1;
            }
            for (var o = 0, r = n.length; o < r; o++) {
              var s = n[o];
              if (s.isEmpty()) {
                return !1;
              }
              for (var a = !0, u = s.startLineNumber; u <= s.endLineNumber;
                  u++) {
                var l = t.getLineContent(u),
                    c = u === s.startLineNumber ? s.startColumn - 1 : 0,
                    d = u === s.endLineNumber ? s.endColumn - 1 : l.length,
                    h = l.substring(c, d);
                if (/[^ \t]/.test(h)) {
                  a = !1;
                  break
                }
              }
              if (a) {
                return !1
              }
            }
            return !0
          }, e._runSurroundSelectionType = function (e, t, n, i) {
            for (var r = [], s = 0, a = n.length; s < a; s++) {
              var u = n[s], l = e.surroundingPairs[i];
              r[s] = new c.SurroundSelectionCommand(u, i, l)
            }
            return new o.EditOperationResult(r, {
              shouldPushStackElementBefore: !0,
              shouldPushStackElementAfter: !0
            })
          }, e._typeInterceptorElectricChar = function (e, t, a, l) {
            if (!e.electricChars.hasOwnProperty(l) || !a.isEmpty()) {
              return null;
            }
            var c = a.getPosition();
            t.forceTokenization(c.lineNumber);
            var d, h = t.getLineTokens(c.lineNumber);
            try {
              d = u.LanguageConfigurationRegistry.onElectricCharacter(l, h,
                  c.column)
            } catch (e) {
              n.onUnexpectedError(e)
            }
            if (!d) {
              return null;
            }
            if (d.appendText) {
              w = new i.ReplaceCommandWithOffsetCursorState(a, l + d.appendText,
                  0, -d.appendText.length);
              return new o.EditOperationResult([w], {
                shouldPushStackElementBefore: !1,
                shouldPushStackElementAfter: !0
              })
            }
            if (d.matchOpenBracket) {
              var p = (h.getLineContent() + l).lastIndexOf(d.matchOpenBracket)
                  + 1, f = t.findMatchingBracketUp(d.matchOpenBracket,
                  {lineNumber: c.lineNumber, column: p});
              if (f) {
                if (f.startLineNumber === c.lineNumber) {
                  return null;
                }
                var g = t.getLineContent(f.startLineNumber),
                    m = s.getLeadingWhitespace(g),
                    v = e.normalizeIndentation(m),
                    _ = t.getLineContent(c.lineNumber),
                    y = t.getLineFirstNonWhitespaceColumn(c.lineNumber)
                        || c.column,
                    C = v + _.substring(y - 1, c.column - 1) + l,
                    b = new r.Range(c.lineNumber, 1, c.lineNumber, c.column),
                    w = new i.ReplaceCommand(b, C);
                return new o.EditOperationResult([w], {
                  shouldPushStackElementBefore: !1,
                  shouldPushStackElementAfter: !0
                })
              }
            }
            return null
          }, e.typeWithInterceptors = function (t, n, i, r) {
            if ("\n" === r) {
              for (var s = [], a = 0, u = i.length; a < u; a++) {
                s[a] = e._enter(
                    t, n, !1, i[a]);
              }
              return new o.EditOperationResult(s, {
                shouldPushStackElementBefore: !0,
                shouldPushStackElementAfter: !1
              })
            }
            if (t.autoIndent) {
              var l = this._runAutoIndentType(t, n, i[0], r);
              if (l) {
                return new o.EditOperationResult([l], {
                  shouldPushStackElementBefore: !0,
                  shouldPushStackElementAfter: !1
                })
              }
            }
            if (this._isAutoClosingCloseCharType(t, n, i,
                r)) {
              return this._runAutoClosingCloseCharType(t, n, i, r);
            }
            if (this._isAutoClosingOpenCharType(t, n, i,
                r)) {
              return this._runAutoClosingOpenCharType(t, n, i, r);
            }
            if (this._isSurroundSelectionType(t, n, i,
                r)) {
              return this._runSurroundSelectionType(t, n, i, r);
            }
            if (1 === i.length) {
              var c = this._typeInterceptorElectricChar(t, n, i[0], r);
              if (c) {
                return c
              }
            }
            return this.typeWithoutInterceptors(t, n, i, r)
          }, e.typeWithoutInterceptors = function (e, t, n, r) {
            for (var s = [], a = 0, u = n.length; a < u;
                a++) {
              s[a] = new i.ReplaceCommand(n[a], r);
            }
            return new o.EditOperationResult(s, {
              shouldPushStackElementBefore: !1,
              shouldPushStackElementAfter: !1
            })
          }, e.lineInsertBefore = function (e, t, n) {
            for (var o = [], s = 0, a = n.length; s < a; s++) {
              var u = n[s].positionLineNumber;
              if (1 === u) {
                o[s] = new i.ReplaceCommandWithoutChangingPosition(
                    new r.Range(1, 1, 1, 1), "\n");
              } else {
                u--;
                var l = t.getLineMaxColumn(u);
                o[s] = this._enter(e, t, !1, new r.Range(u, l, u, l))
              }
            }
            return o
          }, e.lineInsertAfter = function (e, t, n) {
            for (var i = [], o = 0, s = n.length; o < s; o++) {
              var a = n[o].positionLineNumber, u = t.getLineMaxColumn(a);
              i[o] = this._enter(e, t, !1, new r.Range(a, u, a, u))
            }
            return i
          }, e.lineBreakInsert = function (e, t, n) {
            for (var i = [], o = 0, r = n.length; o < r;
                o++) {
              i[o] = this._enter(e, t, !0, n[o]);
            }
            return i
          }, e
        }();
        t.TypeOperations = h
      }), define(d[172], h([1, 0, 39, 12, 94, 9, 2]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a;
        !function (e) {
          e[e.None = 0] = "None", e[e.Regular = 1] = "Regular", e[e.Separator = 2] = "Separator"
        }(a || (a = {}));
        !function (e) {
          e[e.WordStart = 0] = "WordStart", e[e.WordEnd = 1] = "WordEnd"
        }(t.WordNavigationType || (t.WordNavigationType = {}));
        var u = function () {
          function e() {
          }

          return e._createWord = function (e, t, n, i) {
            return {start: n, end: i, wordType: t}
          }, e._findPreviousWordOnLine = function (e, t, n) {
            var i = t.getLineContent(n.lineNumber);
            return this._doFindPreviousWordOnLine(i, e, n)
          }, e._doFindPreviousWordOnLine = function (e, t, n) {
            for (var i = 0, o = n.column - 2; o >= 0; o--) {
              var r = e.charCodeAt(o), s = t.get(r);
              if (0 === s) {
                if (2 === i) {
                  return this._createWord(e, i, o + 1,
                      this._findEndOfWord(e, t, i, o + 1));
                }
                i = 1
              } else if (2 === s) {
                if (1 === i) {
                  return this._createWord(e, i, o + 1,
                      this._findEndOfWord(e, t, i, o + 1));
                }
                i = 2
              } else if (1 === s && 0 !== i) {
                return this._createWord(e, i,
                    o + 1, this._findEndOfWord(e, t, i, o + 1))
              }
            }
            return 0 !== i ? this._createWord(e, i, 0,
                this._findEndOfWord(e, t, i, 0)) : null
          }, e._findEndOfWord = function (e, t, n, i) {
            for (var o = e.length, r = i; r < o; r++) {
              var s = e.charCodeAt(r), a = t.get(s);
              if (1 === a) {
                return r;
              }
              if (1 === n && 2 === a) {
                return r;
              }
              if (2 === n && 0 === a) {
                return r
              }
            }
            return o
          }, e._findNextWordOnLine = function (e, t, n) {
            var i = t.getLineContent(n.lineNumber);
            return this._doFindNextWordOnLine(i, e, n)
          }, e._doFindNextWordOnLine = function (e, t, n) {
            for (var i = 0, o = e.length, r = n.column - 1; r < o; r++) {
              var s = e.charCodeAt(r), a = t.get(s);
              if (0 === a) {
                if (2 === i) {
                  return this._createWord(e, i,
                      this._findStartOfWord(e, t, i, r - 1), r);
                }
                i = 1
              } else if (2 === a) {
                if (1 === i) {
                  return this._createWord(e, i,
                      this._findStartOfWord(e, t, i, r - 1), r);
                }
                i = 2
              } else if (1 === a && 0 !== i) {
                return this._createWord(e, i,
                    this._findStartOfWord(e, t, i, r - 1), r)
              }
            }
            return 0 !== i ? this._createWord(e, i,
                this._findStartOfWord(e, t, i, o - 1), o) : null
          }, e._findStartOfWord = function (e, t, n, i) {
            for (var o = i; o >= 0; o--) {
              var r = e.charCodeAt(o), s = t.get(r);
              if (1 === s) {
                return o + 1;
              }
              if (1 === n && 2 === s) {
                return o + 1;
              }
              if (2 === n && 0 === s) {
                return o + 1
              }
            }
            return 0
          }, e.moveWordLeft = function (t, n, o, r) {
            var s = o.lineNumber, a = o.column;
            1 === a && s > 1 && (s -= 1, a = n.getLineMaxColumn(s));
            var u = e._findPreviousWordOnLine(t, n, new i.Position(s, a));
            return 0 === r ? a = u ? u.start + 1 : 1 : (u && a <= u.end + 1
            && (u = e._findPreviousWordOnLine(t, n,
                new i.Position(s, u.start + 1))), a = u ? u.end + 1
                : 1), new i.Position(s, a)
          }, e.moveWordRight = function (t, n, o, r) {
            var s = o.lineNumber, a = o.column;
            a === n.getLineMaxColumn(s) && s < n.getLineCount()
            && (s += 1, a = 1);
            var u = e._findNextWordOnLine(t, n, new i.Position(s, a));
            return 1 === r ? a = u ? u.end + 1 : n.getLineMaxColumn(s) : (u && a
            >= u.start + 1 && (u = e._findNextWordOnLine(t, n,
                new i.Position(s, u.end + 1))), a = u ? u.start + 1
                : n.getLineMaxColumn(s)), new i.Position(s, a)
          }, e._deleteWordLeftWhitespace = function (e, t) {
            var n = e.getLineContent(t.lineNumber), i = t.column - 2,
                o = r.lastNonWhitespaceIndex(n, i);
            return o + 1 < i ? new s.Range(t.lineNumber, o + 2, t.lineNumber,
                t.column) : null
          }, e.deleteWordLeft = function (t, n, o, r, a) {
            if (!o.isEmpty()) {
              return o;
            }
            var u = new i.Position(o.positionLineNumber, o.positionColumn),
                l = u.lineNumber, c = u.column;
            if (1 === l && 1 === c) {
              return null;
            }
            if (r) {
              var d = this._deleteWordLeftWhitespace(n, u);
              if (d) {
                return d
              }
            }
            var h = e._findPreviousWordOnLine(t, n, u);
            return 0 === a ? h ? c = h.start + 1 : c > 1 ? c = 1
                : (l--, c = n.getLineMaxColumn(l)) : (h && c <= h.end + 1
            && (h = e._findPreviousWordOnLine(t, n,
                new i.Position(l, h.start + 1))), h ? c = h.end + 1 : c > 1
                ? c = 1 : (l--, c = n.getLineMaxColumn(l))), new s.Range(l, c,
                u.lineNumber, u.column)
          }, e._findFirstNonWhitespaceChar = function (e, t) {
            for (var n = e.length, i = t; i < n; i++) {
              var o = e.charAt(i);
              if (" " !== o && "\t" !== o) {
                return i
              }
            }
            return n
          }, e._deleteWordRightWhitespace = function (e, t) {
            var n = e.getLineContent(t.lineNumber), i = t.column - 1,
                o = this._findFirstNonWhitespaceChar(n, i);
            return i + 1 < o ? new s.Range(t.lineNumber, t.column, t.lineNumber,
                o + 1) : null
          }, e.deleteWordRight = function (t, n, o, r, a) {
            if (!o.isEmpty()) {
              return o;
            }
            var u = new i.Position(o.positionLineNumber, o.positionColumn),
                l = u.lineNumber, c = u.column, d = n.getLineCount(),
                h = n.getLineMaxColumn(l);
            if (l === d && c === h) {
              return null;
            }
            if (r) {
              var p = this._deleteWordRightWhitespace(n, u);
              if (p) {
                return p
              }
            }
            var f = e._findNextWordOnLine(t, n, u);
            return 1 === a ? f ? c = f.end + 1 : c < h || l === d ? c = h
                : (l++, c = (f = e._findNextWordOnLine(t, n,
                    new i.Position(l, 1))) ? f.start + 1 : n.getLineMaxColumn(
                    l)) : (f && c >= f.start + 1 && (f = e._findNextWordOnLine(
                t, n, new i.Position(l, f.end + 1))), f ? c = f.start + 1 : c
            < h || l === d ? c = h : (l++, c = (f = e._findNextWordOnLine(t, n,
                new i.Position(l, 1))) ? f.start + 1 : n.getLineMaxColumn(
                l))), new s.Range(l, c, u.lineNumber, u.column)
          }, e.word = function (t, r, a, u, l) {
            var c = o.getMapForWordSeparators(t.wordSeparators),
                d = e._findPreviousWordOnLine(c, r, l),
                h = d && 1 === d.wordType && d.start < l.column - 1 && l.column
                    - 1 <= d.end, p = e._findNextWordOnLine(c, r, l),
                f = p && 1 === p.wordType && p.start < l.column - 1 && l.column
                    - 1 <= p.end;
            if (!u || !a.hasSelection()) {
              var g, m;
              return h ? (g = d.start + 1, m = d.end + 1) : f ? (g = p.start
                  + 1, m = p.end + 1) : (g = d ? d.end + 1 : 1, m = p ? p.start
                  + 1 : r.getLineMaxColumn(
                  l.lineNumber)), new n.SingleCursorState(
                  new s.Range(l.lineNumber, g, l.lineNumber, m), 0,
                  new i.Position(l.lineNumber, m), 0)
            }
            var v, _;
            h ? (v = d.start + 1, _ = d.end + 1) : f ? (v = p.start
                + 1, _ = p.end + 1) : (v = l.column, _ = l.column);
            var y, C = l.lineNumber;
            if (l.isBeforeOrEqual(a.selectionStart.getStartPosition())) {
              y = v;
              b = new i.Position(C, y);
              a.selectionStart.containsPosition(b)
              && (y = a.selectionStart.endColumn)
            } else {
              y = _;
              var b = new i.Position(C, y);
              a.selectionStart.containsPosition(b)
              && (y = a.selectionStart.startColumn)
            }
            return a.move(a.hasSelection(), C, y, 0)
          }, e
        }();
        t.WordOperations = u
      }), define(d[173], h([1, 0, 39, 12, 2, 169, 172, 29]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var u = function () {
          function e() {
          }

          return e.addCursorDown = function (e, t) {
            for (var i = [], o = 0, s = 0, a = t.length; s < a; s++) {
              var u = t[s];
              i[o++] = new n.CursorState(u.modelState,
                  u.viewState), i[o++] = n.CursorState.fromViewState(
                  r.MoveOperations.translateDown(e.config, e.viewModel,
                      u.viewState))
            }
            return i
          }, e.addCursorUp = function (e, t) {
            for (var i = [], o = 0, s = 0, a = t.length; s < a; s++) {
              var u = t[s];
              i[o++] = new n.CursorState(u.modelState,
                  u.viewState), i[o++] = n.CursorState.fromViewState(
                  r.MoveOperations.translateUp(e.config, e.viewModel,
                      u.viewState))
            }
            return i
          }, e.moveToBeginningOfLine = function (e, t, n) {
            for (var i = [], o = 0, r = t.length; o < r; o++) {
              var s = t[o];
              i[o] = this._moveToLineStart(e, s, n)
            }
            return i
          }, e._moveToLineStart = function (e, t, n) {
            var i = t.viewState.position.column,
                o = i === t.modelState.position.column,
                r = t.viewState.position.lineNumber,
                s = i === e.viewModel.getLineFirstNonWhitespaceColumn(r);
            return o || s ? this._moveToLineStartByModel(e, t, n)
                : this._moveToLineStartByView(e, t, n)
          }, e._moveToLineStartByView = function (e, t, i) {
            return n.CursorState.fromViewState(
                r.MoveOperations.moveToBeginningOfLine(e.config, e.viewModel,
                    t.viewState, i))
          }, e._moveToLineStartByModel = function (e, t, i) {
            return n.CursorState.fromModelState(
                r.MoveOperations.moveToBeginningOfLine(e.config, e.model,
                    t.modelState, i))
          }, e.moveToEndOfLine = function (e, t, n) {
            for (var i = [], o = 0, r = t.length; o < r; o++) {
              var s = t[o];
              i[o] = this._moveToLineEnd(e, s, n)
            }
            return i
          }, e._moveToLineEnd = function (e, t, n) {
            var i = t.viewState.position,
                o = e.viewModel.getLineMaxColumn(i.lineNumber),
                r = i.column === o, s = t.modelState.position,
                a = e.model.getLineMaxColumn(s.lineNumber),
                u = o - i.column == a - s.column;
            return r || u ? this._moveToLineEndByModel(e, t, n)
                : this._moveToLineEndByView(e, t, n)
          }, e._moveToLineEndByView = function (e, t, i) {
            return n.CursorState.fromViewState(
                r.MoveOperations.moveToEndOfLine(e.config, e.viewModel,
                    t.viewState, i))
          }, e._moveToLineEndByModel = function (e, t, i) {
            return n.CursorState.fromModelState(
                r.MoveOperations.moveToEndOfLine(e.config, e.model,
                    t.modelState, i))
          }, e.expandLineSelection = function (e, t) {
            for (var r = [], s = 0, a = t.length; s < a; s++) {
              var u = t[s].viewState.selection, l = u.startLineNumber,
                  c = e.viewModel.getLineCount(), d = u.endLineNumber,
                  h = void 0;
              d === c ? h = e.viewModel.getLineMaxColumn(c)
                  : (d++, h = 1), r[s] = n.CursorState.fromViewState(
                  new n.SingleCursorState(new o.Range(l, 1, l, 1), 0,
                      new i.Position(d, h), 0))
            }
            return r
          }, e.moveToBeginningOfBuffer = function (e, t, i) {
            for (var o = [], s = 0, a = t.length; s < a; s++) {
              var u = t[s];
              o[s] = n.CursorState.fromModelState(
                  r.MoveOperations.moveToBeginningOfBuffer(e.config, e.model,
                      u.modelState, i))
            }
            return o
          }, e.moveToEndOfBuffer = function (e, t, i) {
            for (var o = [], s = 0, a = t.length; s < a; s++) {
              var u = t[s];
              o[s] = n.CursorState.fromModelState(
                  r.MoveOperations.moveToEndOfBuffer(e.config, e.model,
                      u.modelState, i))
            }
            return o
          }, e.selectAll = function (e, t) {
            if (e.model.hasEditableRange()) {
              var r = e.model.getEditableRange();
              if (!t.modelState.selection.equalsRange(
                  r)) {
                return n.CursorState.fromModelState(
                    new n.SingleCursorState(
                        new o.Range(r.startLineNumber, r.startColumn,
                            r.startLineNumber, r.startColumn), 0,
                        new i.Position(r.endLineNumber, r.endColumn), 0))
              }
            }
            var s = e.model.getLineCount(), a = e.model.getLineMaxColumn(s);
            return n.CursorState.fromModelState(
                new n.SingleCursorState(new o.Range(1, 1, 1, 1), 0,
                    new i.Position(s, a), 0))
          }, e.line = function (e, t, r, s, a) {
            var u = e.model.validatePosition(s), l = a ? e.validateViewPosition(
                    new i.Position(a.lineNumber, a.column), u)
                : e.convertModelPositionToViewPosition(u);
            if (!r || !t.modelState.hasSelection()) {
              var c = e.model.getLineCount(), d = u.lineNumber + 1, h = 1;
              return d > c && (d = c, h = e.model.getLineMaxColumn(
                  d)), n.CursorState.fromModelState(
                  new n.SingleCursorState(new o.Range(u.lineNumber, 1, d, h), 0,
                      new i.Position(d, h), 0))
            }
            var p = t.modelState.selectionStart.getStartPosition().lineNumber;
            if (u.lineNumber < p) {
              return n.CursorState.fromViewState(
                  t.viewState.move(t.modelState.hasSelection(), l.lineNumber, 1,
                      0));
            }
            if (u.lineNumber > p) {
              var c = e.viewModel.getLineCount(), f = l.lineNumber + 1, g = 1;
              return f > c && (f = c, g = e.viewModel.getLineMaxColumn(
                  f)), n.CursorState.fromViewState(
                  t.viewState.move(t.modelState.hasSelection(), f, g, 0))
            }
            var m = t.modelState.selectionStart.getEndPosition();
            return n.CursorState.fromModelState(
                t.modelState.move(t.modelState.hasSelection(), m.lineNumber,
                    m.column, 0))
          }, e.word = function (e, t, i, o) {
            var r = e.model.validatePosition(o);
            return n.CursorState.fromModelState(
                s.WordOperations.word(e.config, e.model, t.modelState, i, r))
          }, e.cancelSelection = function (e, t) {
            if (!t.modelState.hasSelection()) {
              return new n.CursorState(
                  t.modelState, t.viewState);
            }
            var r = t.viewState.position.lineNumber,
                s = t.viewState.position.column;
            return n.CursorState.fromViewState(
                new n.SingleCursorState(new o.Range(r, s, r, s), 0,
                    new i.Position(r, s), 0))
          }, e.moveTo = function (e, t, o, r, s) {
            var a = e.model.validatePosition(r), u = s ? e.validateViewPosition(
                    new i.Position(s.lineNumber, s.column), a)
                : e.convertModelPositionToViewPosition(a);
            return n.CursorState.fromViewState(
                t.viewState.move(o, u.lineNumber, u.column, 0))
          }, e.move = function (e, t, n) {
            var i = n.select, o = n.value;
            switch (n.direction) {
              case 0:
                return 4 === n.unit ? this._moveHalfLineLeft(e, t, i)
                    : this._moveLeft(e, t, i, o);
              case 1:
                return 4 === n.unit ? this._moveHalfLineRight(e, t, i)
                    : this._moveRight(e, t, i, o);
              case 2:
                return 2 === n.unit ? this._moveUpByViewLines(e, t, i, o)
                    : this._moveUpByModelLines(e, t, i, o);
              case 3:
                return 2 === n.unit ? this._moveDownByViewLines(e, t, i, o)
                    : this._moveDownByModelLines(e, t, i, o);
              case 4:
                return this._moveToViewMinColumn(e, t, i);
              case 5:
                return this._moveToViewFirstNonWhitespaceColumn(e, t, i);
              case 6:
                return this._moveToViewCenterColumn(e, t, i);
              case 7:
                return this._moveToViewMaxColumn(e, t, i);
              case 8:
                return this._moveToViewLastNonWhitespaceColumn(e, t, i);
              case 9:
                var r = t[0], s = e.getCompletelyVisibleModelRange(),
                    a = this._firstLineNumberInRange(e.model, s, o),
                    u = e.model.getLineFirstNonWhitespaceColumn(a);
                return [this._moveToModelPosition(e, r, i, a, u)];
              case 11:
                var r = t[0], s = e.getCompletelyVisibleModelRange(),
                    a = this._lastLineNumberInRange(e.model, s, o),
                    u = e.model.getLineFirstNonWhitespaceColumn(a);
                return [this._moveToModelPosition(e, r, i, a, u)];
              case 10:
                var r = t[0], s = e.getCompletelyVisibleModelRange(),
                    a = Math.round((s.startLineNumber + s.endLineNumber) / 2),
                    u = e.model.getLineFirstNonWhitespaceColumn(a);
                return [this._moveToModelPosition(e, r, i, a, u)];
              case 12:
                for (var l = e.getCompletelyVisibleViewRange(), c = [], d = 0,
                    h = t.length; d < h; d++) {
                  r = t[d];
                  c[d] = this.findPositionInViewportIfOutside(e, r, l, i)
                }
                return c
            }
            return null
          }, e.findPositionInViewportIfOutside = function (e, t, i, o) {
            var r = t.viewState.position.lineNumber;
            if (i.startLineNumber <= r && r <= i.endLineNumber
                - 1) {
              return new n.CursorState(t.modelState, t.viewState);
            }
            r > i.endLineNumber - 1 && (r = i.endLineNumber - 1), r
            < i.startLineNumber && (r = i.startLineNumber);
            var s = e.viewModel.getLineFirstNonWhitespaceColumn(r);
            return this._moveToViewPosition(e, t, o, r, s)
          }, e._firstLineNumberInRange = function (e, t, n) {
            var i = t.startLineNumber;
            return t.startColumn !== e.getLineMinColumn(i) && i++, Math.min(
                t.endLineNumber, i + n - 1)
          }, e._lastLineNumberInRange = function (e, t, n) {
            var i = t.startLineNumber;
            return t.startColumn !== e.getLineMinColumn(i) && i++, Math.max(i,
                t.endLineNumber - n + 1)
          }, e._moveLeft = function (e, t, i, o) {
            for (var s = [], a = 0, u = t.length; a < u; a++) {
              var l = t[a];
              s[a] = n.CursorState.fromViewState(
                  r.MoveOperations.moveLeft(e.config, e.viewModel, l.viewState,
                      i, o))
            }
            return s
          }, e._moveHalfLineLeft = function (e, t, i) {
            for (var o = [], s = 0, a = t.length; s < a; s++) {
              var u = t[s], l = u.viewState.position.lineNumber,
                  c = Math.round(e.viewModel.getLineContent(l).length / 2);
              o[s] = n.CursorState.fromViewState(
                  r.MoveOperations.moveLeft(e.config, e.viewModel, u.viewState,
                      i, c))
            }
            return o
          }, e._moveRight = function (e, t, i, o) {
            for (var s = [], a = 0, u = t.length; a < u; a++) {
              var l = t[a];
              s[a] = n.CursorState.fromViewState(
                  r.MoveOperations.moveRight(e.config, e.viewModel, l.viewState,
                      i, o))
            }
            return s
          }, e._moveHalfLineRight = function (e, t, i) {
            for (var o = [], s = 0, a = t.length; s < a; s++) {
              var u = t[s], l = u.viewState.position.lineNumber,
                  c = Math.round(e.viewModel.getLineContent(l).length / 2);
              o[s] = n.CursorState.fromViewState(
                  r.MoveOperations.moveRight(e.config, e.viewModel, u.viewState,
                      i, c))
            }
            return o
          }, e._moveDownByViewLines = function (e, t, i, o) {
            for (var s = [], a = 0, u = t.length; a < u; a++) {
              var l = t[a];
              s[a] = n.CursorState.fromViewState(
                  r.MoveOperations.moveDown(e.config, e.viewModel, l.viewState,
                      i, o))
            }
            return s
          }, e._moveDownByModelLines = function (e, t, i, o) {
            for (var s = [], a = 0, u = t.length; a < u; a++) {
              var l = t[a];
              s[a] = n.CursorState.fromModelState(
                  r.MoveOperations.moveDown(e.config, e.model, l.modelState, i,
                      o))
            }
            return s
          }, e._moveUpByViewLines = function (e, t, i, o) {
            for (var s = [], a = 0, u = t.length; a < u; a++) {
              var l = t[a];
              s[a] = n.CursorState.fromViewState(
                  r.MoveOperations.moveUp(e.config, e.viewModel, l.viewState, i,
                      o))
            }
            return s
          }, e._moveUpByModelLines = function (e, t, i, o) {
            for (var s = [], a = 0, u = t.length; a < u; a++) {
              var l = t[a];
              s[a] = n.CursorState.fromModelState(
                  r.MoveOperations.moveUp(e.config, e.model, l.modelState, i,
                      o))
            }
            return s
          }, e._moveToViewPosition = function (e, t, i, o, r) {
            return n.CursorState.fromViewState(t.viewState.move(i, o, r, 0))
          }, e._moveToModelPosition = function (e, t, i, o, r) {
            return n.CursorState.fromModelState(t.modelState.move(i, o, r, 0))
          }, e._moveToViewMinColumn = function (e, t, n) {
            for (var i = [], o = 0, r = t.length; o < r; o++) {
              var s = t[o], a = s.viewState.position.lineNumber,
                  u = e.viewModel.getLineMinColumn(a);
              i[o] = this._moveToViewPosition(e, s, n, a, u)
            }
            return i
          }, e._moveToViewFirstNonWhitespaceColumn = function (e, t, n) {
            for (var i = [], o = 0, r = t.length; o < r; o++) {
              var s = t[o], a = s.viewState.position.lineNumber,
                  u = e.viewModel.getLineFirstNonWhitespaceColumn(a);
              i[o] = this._moveToViewPosition(e, s, n, a, u)
            }
            return i
          }, e._moveToViewCenterColumn = function (e, t, n) {
            for (var i = [], o = 0, r = t.length; o < r; o++) {
              var s = t[o], a = s.viewState.position.lineNumber, u = Math.round(
                  (e.viewModel.getLineMaxColumn(a)
                      + e.viewModel.getLineMinColumn(a)) / 2);
              i[o] = this._moveToViewPosition(e, s, n, a, u)
            }
            return i
          }, e._moveToViewMaxColumn = function (e, t, n) {
            for (var i = [], o = 0, r = t.length; o < r; o++) {
              var s = t[o], a = s.viewState.position.lineNumber,
                  u = e.viewModel.getLineMaxColumn(a);
              i[o] = this._moveToViewPosition(e, s, n, a, u)
            }
            return i
          }, e._moveToViewLastNonWhitespaceColumn = function (e, t, n) {
            for (var i = [], o = 0, r = t.length; o < r; o++) {
              var s = t[o], a = s.viewState.position.lineNumber,
                  u = e.viewModel.getLineLastNonWhitespaceColumn(a);
              i[o] = this._moveToViewPosition(e, s, n, a, u)
            }
            return i
          }, e
        }();
        t.CursorMoveCommands = u;
        !function (e) {
          e.description = {
            description: "Move cursor to a logical position in the view",
            args: [{
              name: "Cursor move argument object",
              description: "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory logical position value providing where to move the cursor.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'left', 'right', 'up', 'down'\n\t\t\t\t\t\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n\t\t\t\t\t\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter',\n\t\t\t\t\t\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'character', 'halfLine'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'select': If 'true' makes the selection. Default is 'false'.\n\t\t\t\t",
              constraint: function (e) {
                if (!a.isObject(e)) {
                  return !1;
                }
                var t = e;
                return !(!a.isString(t.to) || !a.isUndefined(t.select)
                    && !a.isBoolean(t.select) || !a.isUndefined(t.by)
                    && !a.isString(t.by) || !a.isUndefined(t.value)
                    && !a.isNumber(t.value))
              }
            }]
          }, e.RawDirection = {
            Left: "left",
            Right: "right",
            Up: "up",
            Down: "down",
            WrappedLineStart: "wrappedLineStart",
            WrappedLineFirstNonWhitespaceCharacter: "wrappedLineFirstNonWhitespaceCharacter",
            WrappedLineColumnCenter: "wrappedLineColumnCenter",
            WrappedLineEnd: "wrappedLineEnd",
            WrappedLineLastNonWhitespaceCharacter: "wrappedLineLastNonWhitespaceCharacter",
            ViewPortTop: "viewPortTop",
            ViewPortCenter: "viewPortCenter",
            ViewPortBottom: "viewPortBottom",
            ViewPortIfOutside: "viewPortIfOutside"
          }, e.RawUnit = {
            Line: "line",
            WrappedLine: "wrappedLine",
            Character: "character",
            HalfLine: "halfLine"
          }, e.parse = function (t) {
            if (!t.to) {
              return null;
            }
            var n;
            switch (t.to) {
              case e.RawDirection.Left:
                n = 0;
                break;
              case e.RawDirection.Right:
                n = 1;
                break;
              case e.RawDirection.Up:
                n = 2;
                break;
              case e.RawDirection.Down:
                n = 3;
                break;
              case e.RawDirection.WrappedLineStart:
                n = 4;
                break;
              case e.RawDirection.WrappedLineFirstNonWhitespaceCharacter:
                n = 5;
                break;
              case e.RawDirection.WrappedLineColumnCenter:
                n = 6;
                break;
              case e.RawDirection.WrappedLineEnd:
                n = 7;
                break;
              case e.RawDirection.WrappedLineLastNonWhitespaceCharacter:
                n = 8;
                break;
              case e.RawDirection.ViewPortTop:
                n = 9;
                break;
              case e.RawDirection.ViewPortBottom:
                n = 11;
                break;
              case e.RawDirection.ViewPortCenter:
                n = 10;
                break;
              case e.RawDirection.ViewPortIfOutside:
                n = 12;
                break;
              default:
                return null
            }
            var i = 0;
            switch (t.by) {
              case e.RawUnit.Line:
                i = 1;
                break;
              case e.RawUnit.WrappedLine:
                i = 2;
                break;
              case e.RawUnit.Character:
                i = 3;
                break;
              case e.RawUnit.HalfLine:
                i = 4
            }
            return {
              direction: n,
              unit: i,
              select: !!t.select,
              value: t.value || 1
            }
          };
          !function (e) {
            e[e.Left = 0] = "Left", e[e.Right = 1] = "Right", e[e.Up = 2] = "Up", e[e.Down = 3] = "Down", e[e.WrappedLineStart = 4] = "WrappedLineStart", e[e.WrappedLineFirstNonWhitespaceCharacter = 5] = "WrappedLineFirstNonWhitespaceCharacter", e[e.WrappedLineColumnCenter = 6] = "WrappedLineColumnCenter", e[e.WrappedLineEnd = 7] = "WrappedLineEnd", e[e.WrappedLineLastNonWhitespaceCharacter = 8] = "WrappedLineLastNonWhitespaceCharacter", e[e.ViewPortTop = 9] = "ViewPortTop", e[e.ViewPortCenter = 10] = "ViewPortCenter", e[e.ViewPortBottom = 11] = "ViewPortBottom", e[e.ViewPortIfOutside = 12] = "ViewPortIfOutside"
          }(e.Direction || (e.Direction = {}));
          !function (e) {
            e[e.None = 0] = "None", e[e.Line = 1] = "Line", e[e.WrappedLine = 2] = "WrappedLine", e[e.Character = 3] = "Character", e[e.HalfLine = 4] = "HalfLine"
          }(e.Unit || (e.Unit = {}))
        }(t.CursorMove || (t.CursorMove = {}))
      }), define(d[317], h([1, 0, 39, 12, 2, 22]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      function e(e) {
        this._setState(e, new n.SingleCursorState(new o.Range(1, 1, 1, 1), 0,
                new i.Position(1, 1), 0),
            new n.SingleCursorState(new o.Range(1, 1, 1, 1), 0,
                new i.Position(1, 1), 0))
      }

      return e.prototype.dispose = function (e) {
        e.model._removeMarker(this._selStartMarker), e.model._removeMarker(
            this._selEndMarker)
      }, e.prototype.asCursorState = function () {
        return new n.CursorState(this.modelState, this.viewState)
      }, e.prototype.readSelectionFromMarkers = function (e) {
        var t = e.model._getMarker(this._selStartMarker),
            n = e.model._getMarker(this._selEndMarker);
        return this.modelState.selection.getDirection()
        === r.SelectionDirection.LTR ? new r.Selection(t.lineNumber, t.column,
            n.lineNumber, n.column) : new r.Selection(n.lineNumber, n.column,
            t.lineNumber, t.column)
      }, e.prototype.ensureValidState = function (e) {
        this._setState(e, this.modelState, this.viewState)
      }, e.prototype.setState = function (e, t, n) {
        this._setState(e, t, n)
      }, e.prototype._setState = function (e, t, r) {
        if (t) {
          var s = e.model.validateRange(t.selectionStart),
              a = t.selectionStart.equalsRange(s)
                  ? t.selectionStartLeftoverVisibleColumns : 0,
              u = e.model.validatePosition(t.position),
              l = t.position.equals(u) ? t.leftoverVisibleColumns : 0;
          t = new n.SingleCursorState(s, a, u, l)
        } else {
          var s = e.model.validateRange(
                  e.convertViewRangeToModelRange(r.selectionStart)),
              u = e.model.validatePosition(
                  e.convertViewPositionToModelPosition(r.position.lineNumber,
                      r.position.column));
          t = new n.SingleCursorState(s, r.selectionStartLeftoverVisibleColumns,
              u, r.leftoverVisibleColumns)
        }
        if (r) {
          var c = e.validateViewRange(r.selectionStart, t.selectionStart),
              d = e.validateViewPosition(r.position, t.position);
          r = new n.SingleCursorState(c, t.selectionStartLeftoverVisibleColumns,
              d, t.leftoverVisibleColumns)
        } else {
          var h = e.convertModelPositionToViewPosition(
                  new i.Position(t.selectionStart.startLineNumber,
                      t.selectionStart.startColumn)),
              p = e.convertModelPositionToViewPosition(
                  new i.Position(t.selectionStart.endLineNumber,
                      t.selectionStart.endColumn)),
              c = new o.Range(h.lineNumber, h.column, p.lineNumber, p.column),
              d = e.convertModelPositionToViewPosition(t.position);
          r = new n.SingleCursorState(c, t.selectionStartLeftoverVisibleColumns,
              d, t.leftoverVisibleColumns)
        }
        this.modelState && this.viewState && this.modelState.equals(t)
        && this.viewState.equals(r)
        || (this.modelState = t, this.viewState = r, this._selStartMarker = this._ensureMarker(
            e, this._selStartMarker, this.modelState.selection.startLineNumber,
            this.modelState.selection.startColumn,
            !0), this._selEndMarker = this._ensureMarker(e, this._selEndMarker,
            this.modelState.selection.endLineNumber,
            this.modelState.selection.endColumn, !1))
      }, e.prototype._ensureMarker = function (e, t, n, i, o) {
        return t ? (e.model._changeMarker(t, n,
            i), e.model._changeMarkerStickiness(t, o), t) : e.model._addMarker(
            0, n, i, o)
      }, e
    }();
    t.OneCursor = s
  }), define(d[318], h([1, 0, 317, 22, 39]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e(e) {
        this.context = e, this.primaryCursor = new n.OneCursor(
            e), this.secondaryCursors = [], this.lastAddedCursorIndex = 0
      }

      return e.prototype.dispose = function () {
        this.primaryCursor.dispose(this.context), this.killSecondaryCursors()
      }, e.prototype.updateContext = function (e) {
        this.context = e
      }, e.prototype.ensureValidState = function () {
        this.primaryCursor.ensureValidState(this.context);
        for (var e = 0, t = this.secondaryCursors.length; e < t;
            e++) {
          this.secondaryCursors[e].ensureValidState(this.context)
        }
      }, e.prototype.readSelectionFromMarkers = function () {
        var e = [];
        e[0] = this.primaryCursor.readSelectionFromMarkers(this.context);
        for (var t = 0, n = this.secondaryCursors.length; t < n; t++) {
          e[t
          + 1] = this.secondaryCursors[t].readSelectionFromMarkers(
              this.context);
        }
        return e
      }, e.prototype.getAll = function () {
        var e = [];
        e[0] = this.primaryCursor.asCursorState();
        for (var t = 0, n = this.secondaryCursors.length; t < n; t++) {
          e[t
          + 1] = this.secondaryCursors[t].asCursorState();
        }
        return e
      }, e.prototype.getViewPositions = function () {
        var e = [];
        e[0] = this.primaryCursor.viewState.position;
        for (var t = 0, n = this.secondaryCursors.length; t < n; t++) {
          e[t
          + 1] = this.secondaryCursors[t].viewState.position;
        }
        return e
      }, e.prototype.getSelections = function () {
        var e = [];
        e[0] = this.primaryCursor.modelState.selection;
        for (var t = 0, n = this.secondaryCursors.length; t < n; t++) {
          e[t
          + 1] = this.secondaryCursors[t].modelState.selection;
        }
        return e
      }, e.prototype.getViewSelections = function () {
        var e = [];
        e[0] = this.primaryCursor.viewState.selection;
        for (var t = 0, n = this.secondaryCursors.length; t < n; t++) {
          e[t
          + 1] = this.secondaryCursors[t].viewState.selection;
        }
        return e
      }, e.prototype.setSelections = function (e) {
        this.setStates(o.CursorState.fromModelSelections(e))
      }, e.prototype.getPrimaryCursor = function () {
        return this.primaryCursor.asCursorState()
      }, e.prototype.setStates = function (e) {
        null !== e && (this.primaryCursor.setState(this.context,
            e[0].modelState, e[0].viewState), this._setSecondaryStates(
            e.slice(1)))
      }, e.prototype._setSecondaryStates = function (e) {
        var t = this.secondaryCursors.length, n = e.length;
        if (t < n) {
          for (var i = n - t, o = 0; o < i;
              o++) {
            this._addSecondaryCursor();
          }
        } else if (t > n) {
          for (var r = t - n,
              o = 0; o < r; o++) {
            this._removeSecondaryCursor(
                this.secondaryCursors.length - 1);
          }
        }
        for (o = 0; o < n; o++) {
          this.secondaryCursors[o].setState(this.context,
              e[o].modelState, e[o].viewState)
        }
      }, e.prototype.killSecondaryCursors = function () {
        this._setSecondaryStates([])
      }, e.prototype._addSecondaryCursor = function () {
        this.secondaryCursors.push(new n.OneCursor(
            this.context)), this.lastAddedCursorIndex = this.secondaryCursors.length
      }, e.prototype.getLastAddedCursorIndex = function () {
        return 0 === this.secondaryCursors.length || 0
        === this.lastAddedCursorIndex ? 0 : this.lastAddedCursorIndex
      }, e.prototype._removeSecondaryCursor = function (e) {
        this.lastAddedCursorIndex >= e + 1
        && this.lastAddedCursorIndex--, this.secondaryCursors[e].dispose(
            this.context), this.secondaryCursors.splice(e, 1)
      }, e.prototype._getAll = function () {
        var e = [];
        e[0] = this.primaryCursor;
        for (var t = 0, n = this.secondaryCursors.length; t < n; t++) {
          e[t
          + 1] = this.secondaryCursors[t];
        }
        return e
      }, e.prototype.normalize = function () {
        if (0 !== this.secondaryCursors.length) {
          for (var e = this._getAll(), t = [], n = 0, r = e.length; n < r;
              n++) {
            t.push({
              index: n,
              selection: e[n].modelState.selection,
              viewSelection: e[n].viewState.selection
            });
          }
          t.sort(function (e, t) {
            return e.viewSelection.startLineNumber
            === t.viewSelection.startLineNumber ? e.viewSelection.startColumn
                - t.viewSelection.startColumn : e.viewSelection.startLineNumber
                - t.viewSelection.startLineNumber
          });
          for (var s = 0; s < t.length - 1; s++) {
            var a = t[s], u = t[s + 1], l = a.viewSelection,
                c = u.viewSelection;
            if (c.isEmpty() || l.isEmpty()
                ? c.getStartPosition().isBeforeOrEqual(l.getEndPosition())
                : c.getStartPosition().isBefore(l.getEndPosition())) {
              var d = a.index < u.index ? s : s + 1,
                  h = a.index < u.index ? s + 1 : s, p = t[h].index,
                  f = t[d].index, g = t[h].selection, m = t[d].selection;
              if (!g.equalsSelection(m)) {
                var v = g.plusRange(m),
                    _ = g.selectionStartLineNumber === g.startLineNumber
                        && g.selectionStartColumn === g.startColumn,
                    y = m.selectionStartLineNumber === m.startLineNumber
                        && m.selectionStartColumn === m.startColumn, C = void 0;
                p === this.lastAddedCursorIndex
                    ? (C = _, this.lastAddedCursorIndex = f) : C = y;
                var b = void 0;
                b = C ? new i.Selection(v.startLineNumber, v.startColumn,
                    v.endLineNumber, v.endColumn) : new i.Selection(
                    v.endLineNumber, v.endColumn, v.startLineNumber,
                    v.startColumn), t[d].selection = b;
                var w = o.CursorState.fromModelSelection(b);
                e[f].setState(this.context, w.modelState, w.viewState)
              }
              for (var S = 0; S < t.length; S++) {
                t[S].index > p && t[S].index--;
              }
              e.splice(p, 1), t.splice(h, 1), this._removeSecondaryCursor(
                  p - 1), s--
            }
          }
        }
      }, e
    }();
    t.CursorCollection = r
  }), define(d[319], h([1, 0, 9, 2, 22, 43, 167, 263, 60]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function () {
          function e(e, t, n) {
            this._selection = e, this._isMovingDown = t, this._autoIndent = n, this._moveEndLineSelectionShrink = !1
          }

          return e.prototype.getEditOperations = function (e, t) {
            var s = e.getLineCount();
            if ((!this._isMovingDown || this._selection.endLineNumber !== s)
                && (this._isMovingDown || 1
                    !== this._selection.startLineNumber)) {
              this._moveEndPositionDown = !1;
              var u = this._selection;
              u.startLineNumber < u.endLineNumber && 1 === u.endColumn
              && (this._moveEndPositionDown = !0, u = u.setEndPosition(
                  u.endLineNumber - 1,
                  e.getLineMaxColumn(u.endLineNumber - 1)));
              var l = e.getOptions().tabSize, c = e.getOptions().insertSpaces,
                  d = this.buildIndentConverter(l), h = {
                    getLineTokens: function (t) {
                      return e.getLineTokens(t)
                    }, getLanguageIdentifier: function () {
                      return e.getLanguageIdentifier()
                    }, getLanguageIdAtPosition: function (t, n) {
                      return e.getLanguageIdAtPosition(t, n)
                    }, getLineContent: null
                  };
              if (u.startLineNumber === u.endLineNumber && 1
                  === e.getLineMaxColumn(u.startLineNumber)) {
                var p = u.startLineNumber,
                    f = this._isMovingDown ? p + 1 : p - 1;
                1 === e.getLineMaxColumn(f) ? t.addEditOperation(
                    new i.Range(1, 1, 1, 1), null) : (t.addEditOperation(
                    new i.Range(p, 1, p, 1),
                    e.getLineContent(f)), t.addEditOperation(
                    new i.Range(f, 1, f, e.getLineMaxColumn(f)),
                    null)), u = new o.Selection(f, 1, f, 1)
              } else {
                var g, m;
                if (this._isMovingDown) {
                  g = u.endLineNumber + 1, m = e.getLineContent(
                      g), t.addEditOperation(
                      new i.Range(g - 1, e.getLineMaxColumn(g - 1), g,
                          e.getLineMaxColumn(g)), null);
                  var v = m;
                  if (this.isAutoIndent(e, u)) {
                    var _ = this.matchEnterRule(e, d, l, g,
                        u.startLineNumber - 1);
                    if (null !== _) {
                      var y = n.getLeadingWhitespace(e.getLineContent(g)),
                          C = _ + a.getSpaceCnt(y, l),
                          b = a.generateIndent(C, l, c);
                      v = b + this.trimLeft(m)
                    } else {
                      h.getLineContent = function (t) {
                        return t === u.startLineNumber ? e.getLineContent(g)
                            : e.getLineContent(t)
                      };
                      var w = r.LanguageConfigurationRegistry.getGoodIndentForLine(
                          h, e.getLanguageIdAtPosition(g, 1), u.startLineNumber,
                          d);
                      if (null !== w) {
                        y = n.getLeadingWhitespace(e.getLineContent(g));
                        if ((C = a.getSpaceCnt(w, l)) !== (N = a.getSpaceCnt(y,
                            l))) {
                          b = a.generateIndent(C, l, c);
                          v = b + this.trimLeft(m)
                        }
                      }
                    }
                    if (t.addEditOperation(
                        new i.Range(u.startLineNumber, 1, u.startLineNumber, 1),
                        v + "\n"), null !== (E = this.matchEnterRule(e, d, l,
                        u.startLineNumber, u.startLineNumber, v))) {
                      0 !== E
                      && this.getIndentEditsOfMovingBlock(e, t, u, l, c,
                          E);
                    } else {
                      h.getLineContent = function (t) {
                        return t === u.startLineNumber ? v : t
                        >= u.startLineNumber + 1 && t <= u.endLineNumber + 1
                            ? e.getLineContent(t - 1) : e.getLineContent(t)
                      };
                      var S = r.LanguageConfigurationRegistry.getGoodIndentForLine(
                          h, e.getLanguageIdAtPosition(g, 1),
                          u.startLineNumber + 1, d);
                      if (null !== S) {
                        y = n.getLeadingWhitespace(
                            e.getLineContent(u.startLineNumber));
                        if ((C = a.getSpaceCnt(S, l)) !== (N = a.getSpaceCnt(y,
                            l))) {
                          M = C - N;
                          this.getIndentEditsOfMovingBlock(e, t, u, l, c, M)
                        }
                      }
                    }
                  } else {
                    t.addEditOperation(
                        new i.Range(u.startLineNumber, 1, u.startLineNumber, 1),
                        v + "\n")
                  }
                } else if (g = u.startLineNumber - 1, m = e.getLineContent(
                    g), t.addEditOperation(new i.Range(g, 1, g + 1, 1),
                    null), t.addEditOperation(new i.Range(u.endLineNumber,
                        e.getLineMaxColumn(u.endLineNumber), u.endLineNumber,
                        e.getLineMaxColumn(u.endLineNumber)),
                    "\n" + m), this.isAutoIndent(e, u)) {
                  h.getLineContent = function (t) {
                    return t === g ? e.getLineContent(u.startLineNumber)
                        : e.getLineContent(t)
                  };
                  var E = this.matchEnterRule(e, d, l, u.startLineNumber,
                      u.startLineNumber - 2);
                  if (null !== E) {
                    0 !== E && this.getIndentEditsOfMovingBlock(e,
                        t, u, l, c, E);
                  } else {
                    var L = r.LanguageConfigurationRegistry.getGoodIndentForLine(
                        h, e.getLanguageIdAtPosition(u.startLineNumber, 1), g,
                        d);
                    if (null !== L) {
                      var x = n.getLeadingWhitespace(
                              e.getLineContent(u.startLineNumber)),
                          C = a.getSpaceCnt(L, l), N = a.getSpaceCnt(x, l);
                      if (C !== N) {
                        var M = C - N;
                        this.getIndentEditsOfMovingBlock(e, t, u, l, c, M)
                      }
                    }
                  }
                }
              }
              this._selectionId = t.trackSelection(u)
            }
          }, e.prototype.buildIndentConverter = function (e) {
            return {
              shiftIndent: function (t) {
                for (var n = s.ShiftCommand.shiftIndentCount(t, t.length + 1,
                    e), i = "", o = 0; o < n; o++) {
                  i += "\t";
                }
                return i
              }, unshiftIndent: function (t) {
                for (var n = s.ShiftCommand.unshiftIndentCount(t, t.length + 1,
                    e), i = "", o = 0; o < n; o++) {
                  i += "\t";
                }
                return i
              }
            }
          }, e.prototype.matchEnterRule = function (e, t, o, s, l, c) {
            for (var d = l; d >= 1;) {
              var h = void 0;
              if (h = d === l && void 0 !== c ? c : e.getLineContent(
                  d), n.lastNonWhitespaceIndex(h) >= 0) {
                break;
              }
              d--
            }
            if (d < 1 || s > e.getLineCount()) {
              return null;
            }
            var p = e.getLineMaxColumn(d),
                f = r.LanguageConfigurationRegistry.getEnterAction(e,
                    new i.Range(d, p, d, p));
            if (f) {
              var g = f.indentation, m = f.enterAction;
              m.indentAction === u.IndentAction.None ? g = f.indentation
                  + m.appendText : m.indentAction === u.IndentAction.Indent
                  ? g = f.indentation + m.appendText : m.indentAction
                  === u.IndentAction.IndentOutdent ? g = f.indentation
                      : m.indentAction === u.IndentAction.Outdent
                      && (g = t.unshiftIndent(f.indentation) + m.appendText);
              var v = e.getLineContent(s);
              if (this.trimLeft(v).indexOf(this.trimLeft(g)) >= 0) {
                var _ = n.getLeadingWhitespace(e.getLineContent(s)),
                    y = n.getLeadingWhitespace(g);
                return 2 & r.LanguageConfigurationRegistry.getIndentMetadata(e,
                    s) && (y = t.unshiftIndent(y)), a.getSpaceCnt(y, o)
                - a.getSpaceCnt(_, o)
              }
            }
            return null
          }, e.prototype.trimLeft = function (e) {
            return e.replace(/^\s+/, "")
          }, e.prototype.isAutoIndent = function (e, t) {
            if (!this._autoIndent) {
              return !1;
            }
            var n = e.getLanguageIdAtPosition(t.startLineNumber, 1);
            return n === e.getLanguageIdAtPosition(t.endLineNumber, 1) && null
                !== r.LanguageConfigurationRegistry.getIndentRulesSupport(n)
          }, e.prototype.getIndentEditsOfMovingBlock = function (e, t, o, r, s,
              u) {
            for (var l = o.startLineNumber; l <= o.endLineNumber; l++) {
              var c = e.getLineContent(l), d = n.getLeadingWhitespace(c),
                  h = a.getSpaceCnt(d, r) + u, p = a.generateIndent(h, r, s);
              p !== d && (t.addEditOperation(new i.Range(l, 1, l, d.length + 1),
                  p), l === o.endLineNumber && o.endColumn <= d.length + 1 && ""
              === p && (this._moveEndLineSelectionShrink = !0))
            }
          }, e.prototype.computeCursorState = function (e, t) {
            var n = t.getTrackedSelection(this._selectionId);
            return this._moveEndPositionDown && (n = n.setEndPosition(
                n.endLineNumber + 1, 1)), this._moveEndLineSelectionShrink
            && n.startLineNumber < n.endLineNumber && (n = n.setEndPosition(
                n.endLineNumber, 2)), n
          }, e
        }();
        t.MoveLinesCommand = l
      }), define(d[320], h([6, 8]), function (e, t) {
    return e.create("vs/editor/common/controller/cursor", t)
  }), define(d[321],
      h([1, 0, 320, 9, 10, 318, 2, 22, 20, 39, 43, 170, 119, 55, 54, 57, 11]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, v) {
        "use strict";

        function _(e) {
          for (var t = 0, n = e.length; t < n; t++) {
            if (6
                === e[t].type) {
              return !0;
            }
          }
          return !1
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var y = function () {
          return function (e, t, n) {
            this.selections = e, this.source = t, this.reason = n
          }
        }();
        t.CursorStateChangedEvent = y;
        var C = function () {
          function e(e, t) {
            this.modelVersionId = e.getVersionId(), this.cursorState = t.getAll()
          }

          return e.prototype.equals = function (e) {
            if (!e) {
              return !1;
            }
            if (this.modelVersionId !== e.modelVersionId) {
              return !1;
            }
            if (this.cursorState.length !== e.cursorState.length) {
              return !1;
            }
            for (var t = 0, n = this.cursorState.length; t < n;
                t++) {
              if (!this.cursorState[t].equals(
                  e.cursorState[t])) {
                return !1;
              }
            }
            return !0
          }, e
        }();
        t.CursorModelState = C;
        var b = function (e) {
          function t(t, n, i) {
            var o = e.call(this) || this;
            o._onDidChange = o._register(
                new v.Emitter), o.onDidChange = o._onDidChange.event, o._configuration = t, o._model = n, o._viewModel = i, o.context = new l.CursorContext(
                o._configuration, o._model,
                o._viewModel), o._cursors = new r.CursorCollection(
                o.context), o._isHandling = !1, o._isDoingComposition = !1, o._columnSelectData = null, o._register(
                o._model.addBulkListener(function (e) {
                  if (!o._isHandling) {
                    for (var t = !1, n = !1, i = 0, r = e.length; i < r; i++) {
                      var s = e[i];
                      if (s.type
                          === p.TextModelEventType.ModelRawContentChanged2) {
                        t = !0;
                        var a = s.data;
                        n = n || a.containsEvent(1)
                      }
                    }
                    t && o._onModelContentChanged(n)
                  }
                })), o._register(i.addEventListener(function (e) {
              _(e) && o.setStates("viewModel", g.CursorChangeReason.NotSet,
                  o.getAll())
            }));
            var s = function () {
              o.context = new l.CursorContext(o._configuration, o._model,
                  o._viewModel), o._cursors.updateContext(o.context)
            };
            return o._register(o._model.onDidChangeLanguage(function (e) {
              s()
            })), o._register(
                c.LanguageConfigurationRegistry.onDidChange(function () {
                  s()
                })), o._register(n.onDidChangeOptions(function () {
              s()
            })), o._register(o._configuration.onDidChange(function (e) {
              l.CursorConfiguration.shouldRecreate(e) && s()
            })), o
          }

          return f(t, e), t.prototype.dispose = function () {
            this._cursors.dispose(), e.prototype.dispose.call(this)
          }, t.prototype.getPrimaryCursor = function () {
            return this._cursors.getPrimaryCursor()
          }, t.prototype.getLastAddedCursorIndex = function () {
            return this._cursors.getLastAddedCursorIndex()
          }, t.prototype.getAll = function () {
            return this._cursors.getAll()
          }, t.prototype.setStates = function (e, t, n) {
            var i = new C(this._model, this);
            this._cursors.setStates(
                n), this._cursors.normalize(), this._columnSelectData = null, this._emitStateChangedIfNecessary(
                e, t, i)
          }, t.prototype.setColumnSelectData = function (e) {
            this._columnSelectData = e
          }, t.prototype.reveal = function (e, t) {
            this._revealRange(t, 0, e)
          }, t.prototype.revealRange = function (e, t, n) {
            this.emitCursorRevealRange(t, n, e)
          }, t.prototype.scrollTo = function (e) {
            this._viewModel.viewLayout.setScrollPosition({scrollTop: e})
          }, t.prototype.saveState = function () {
            for (var e = [], t = this._cursors.getSelections(), n = 0,
                i = t.length; n < i; n++) {
              var o = t[n];
              e.push({
                inSelectionMode: !o.isEmpty(),
                selectionStart: {
                  lineNumber: o.selectionStartLineNumber,
                  column: o.selectionStartColumn
                },
                position: {
                  lineNumber: o.positionLineNumber,
                  column: o.positionColumn
                }
              })
            }
            return e
          }, t.prototype.restoreState = function (e) {
            for (var t = [], n = 0, i = e.length; n < i; n++) {
              var o = e[n], r = 1, s = 1;
              o.position && o.position.lineNumber
              && (r = o.position.lineNumber), o.position && o.position.column
              && (s = o.position.column);
              var a = r, u = s;
              o.selectionStart && o.selectionStart.lineNumber
              && (a = o.selectionStart.lineNumber), o.selectionStart
              && o.selectionStart.column
              && (u = o.selectionStart.column), t.push({
                selectionStartLineNumber: a,
                selectionStartColumn: u,
                positionLineNumber: r,
                positionColumn: s
              })
            }
            this.setStates("restoreState", g.CursorChangeReason.NotSet,
                l.CursorState.fromModelSelections(t)), this.reveal(!0, 0)
          }, t.prototype._onModelContentChanged = function (e) {
            if (e) {
              this._cursors.dispose(), this._cursors = new r.CursorCollection(
                  this.context), this._emitStateChangedIfNecessary("model",
                  g.CursorChangeReason.ContentFlush, null);
            } else {
              var t = this._cursors.readSelectionFromMarkers();
              this.setStates("modelChange",
                  g.CursorChangeReason.RecoverFromMarkers,
                  l.CursorState.fromModelSelections(t))
            }
          }, t.prototype.getSelection = function () {
            return this._cursors.getPrimaryCursor().modelState.selection
          }, t.prototype.getColumnSelectData = function () {
            if (this._columnSelectData) {
              return this._columnSelectData;
            }
            var e = this._cursors.getPrimaryCursor().viewState.position;
            return {
              toViewLineNumber: e.lineNumber,
              toViewVisualColumn: l.CursorColumns.visibleColumnFromColumn2(
                  this.context.config, this.context.viewModel, e)
            }
          }, t.prototype.getSelections = function () {
            return this._cursors.getSelections()
          }, t.prototype.getViewSelections = function () {
            return this._cursors.getViewSelections()
          }, t.prototype.getPosition = function () {
            return this._cursors.getPrimaryCursor().modelState.position
          }, t.prototype.setSelections = function (e, t) {
            this.setStates(e, g.CursorChangeReason.NotSet,
                l.CursorState.fromModelSelections(t))
          }, t.prototype._executeEditOperation = function (e) {
            if (e && !this._configuration.editor.readOnly) {
              e.shouldPushStackElementBefore && this._model.pushStackElement();
              var t = w.executeCommands(this._model,
                  this._cursors.getSelections(), e.commands);
              t && this._interpretCommandResult(
                  t), e.shouldPushStackElementAfter
              && this._model.pushStackElement()
            }
          }, t.prototype._interpretCommandResult = function (e) {
            e && 0 !== e.length
            && (this._columnSelectData = null, this._cursors.setSelections(
                e), this._cursors.normalize())
          }, t.prototype._emitStateChangedIfNecessary = function (e, t, n) {
            var i = new C(this._model, this);
            if (i.equals(n)) {
              return !1;
            }
            var o = !0;
            this._model.hasEditableRange()
            && (this._model.getEditableRange().containsPosition(
                i.cursorState[0].modelState.position) || (o = !1));
            var r = this._cursors.getSelections(),
                s = this._cursors.getViewSelections();
            return this._emit([new m.ViewCursorStateChangedEvent(s, o,
                null)]), this._onDidChange.fire(
                new y(r, e || "keyboard", t)), !0
          }, t.prototype._revealRange = function (e, t, n) {
            var i = this._cursors.getViewPositions(), o = i[0];
            if (1 === e) {
              for (r = 1; r < i.length; r++) {
                i[r].isBefore(o)
                && (o = i[r]);
              }
            } else if (2 === e) {
              for (var r = 1; r < i.length;
                  r++) {
                o.isBeforeOrEqual(i[r]) && (o = i[r]);
              }
            } else if (i.length
                > 1) {
              return;
            }
            var a = new s.Range(o.lineNumber, o.column, o.lineNumber, o.column);
            this.emitCursorRevealRange(a, t, n)
          }, t.prototype.emitCursorRevealRange = function (e, t, n) {
            this._emit([new m.ViewRevealRangeRequestEvent(e, t, n)])
          }, t.prototype.trigger = function (e, t, n) {
            var i = u.Handler;
            if (t !== i.CompositionStart) {
              if (t !== i.CompositionEnd) {
                var r = new C(this._model, this),
                    s = g.CursorChangeReason.NotSet;
                this._cursors.ensureValidState(), this._isHandling = !0;
                try {
                  switch (t) {
                    case i.Type:
                      this._type(e, n.text);
                      break;
                    case i.ReplacePreviousChar:
                      this._replacePreviousChar(n.text, n.replaceCharCnt);
                      break;
                    case i.Paste:
                      s = g.CursorChangeReason.Paste, this._paste(n.text,
                          n.pasteOnNewLine);
                      break;
                    case i.Cut:
                      this._cut();
                      break;
                    case i.Undo:
                      s = g.CursorChangeReason.Undo, this._interpretCommandResult(
                          this._model.undo());
                      break;
                    case i.Redo:
                      s = g.CursorChangeReason.Redo, this._interpretCommandResult(
                          this._model.redo());
                      break;
                    case i.ExecuteCommand:
                      this._externalExecuteCommand(n);
                      break;
                    case i.ExecuteCommands:
                      this._externalExecuteCommands(n)
                  }
                } catch (e) {
                  o.onUnexpectedError(e)
                }
                this._isHandling = !1, this._emitStateChangedIfNecessary(e, s,
                    r)
                && this._revealRange(0, 0, !0)
              } else {
                this._isDoingComposition = !1;
              }
            } else {
              this._isDoingComposition = !0
            }
          }, t.prototype._type = function (e, t) {
            if (this._isDoingComposition || "keyboard"
                !== e) {
              this._executeEditOperation(
                  h.TypeOperations.typeWithoutInterceptors(this.context.config,
                      this.context.model, this.getSelections(),
                      t));
            } else {
              for (var n = 0, o = t.length; n < o; n++) {
                var r = t.charCodeAt(n), s = void 0;
                i.isHighSurrogate(r) && n + 1 < o ? (s = t.charAt(n) + t.charAt(
                    n + 1), n++) : s = t.charAt(n), this._executeEditOperation(
                    h.TypeOperations.typeWithInterceptors(this.context.config,
                        this.context.model, this.getSelections(), s))
              }
            }
          }, t.prototype._replacePreviousChar = function (e, t) {
            this._executeEditOperation(
                h.TypeOperations.replacePreviousChar(this.context.config,
                    this.context.model, this.getSelections(), e, t))
          }, t.prototype._paste = function (e, t) {
            this._executeEditOperation(
                h.TypeOperations.paste(this.context.config, this.context.model,
                    this.getSelections(), t, e))
          }, t.prototype._cut = function () {
            this._executeEditOperation(
                d.DeleteOperations.cut(this.context.config, this.context.model,
                    this.getSelections()))
          }, t.prototype._externalExecuteCommand = function (e) {
            this._cursors.killSecondaryCursors(), this._executeEditOperation(
                new l.EditOperationResult([e], {
                  shouldPushStackElementBefore: !1,
                  shouldPushStackElementAfter: !1
                }))
          }, t.prototype._externalExecuteCommands = function (e) {
            this._executeEditOperation(new l.EditOperationResult(e, {
              shouldPushStackElementBefore: !1,
              shouldPushStackElementAfter: !1
            }))
          }, t
        }(m.ViewEventEmitter);
        t.Cursor = b;
        var w = function () {
          function e() {
          }

          return e.executeCommands = function (e, t, n) {
            for (var i = {
              model: e,
              selectionsBefore: t,
              selectionStartMarkers: [],
              positionMarkers: []
            }, o = this._innerExecuteCommands(i, n), r = 0;
                r < i.selectionStartMarkers.length; r++) {
              i.model._removeMarker(
                  i.selectionStartMarkers[r]), i.model._removeMarker(
                  i.positionMarkers[r]);
            }
            return o
          }, e._innerExecuteCommands = function (e, t) {
            if (this._arrayIsEmpty(t)) {
              return null;
            }
            var n = this._getEditOperations(e, t);
            if (0 === n.operations.length) {
              return null;
            }
            for (var i = n.operations, o = e.model.getEditableRange(),
                r = o.getStartPosition(), s = o.getEndPosition(), u = 0,
                l = i.length; u < l; u++) {
              var c = i[u].range;
              if (!r.isBeforeOrEqual(c.getStartPosition())
                  || !c.getEndPosition().isBeforeOrEqual(s)) {
                return null
              }
            }
            var d = this._getLoserCursorMap(i);
            if (d.hasOwnProperty("0")) {
              return console.warn(
                  "Ignoring commands"), null;
            }
            for (var h = [], u = 0, l = i.length; u < l; u++) {
              d.hasOwnProperty(
                  i[u].identifier.major.toString()) || h.push(i[u]);
            }
            n.hadTrackedEditOperation && h.length > 0 && (h[0]._isTracked = !0);
            var p = e.model.pushEditOperations(e.selectionsBefore, h,
                function (n) {
                  for (var i = [], o = 0; o < e.selectionsBefore.length;
                      o++) {
                    i[o] = [];
                  }
                  for (o = 0; o < n.length; o++) {
                    var r = n[o];
                    r.identifier && i[r.identifier.major].push(r)
                  }
                  for (var s = function (e, t) {
                    return e.identifier.minor - t.identifier.minor
                  }, u = [], o = 0; o < e.selectionsBefore.length;
                      o++) {
                    !function (n) {
                      i[n].length > 0 ? (i[n].sort(
                          s), u[n] = t[n].computeCursorState(e.model, {
                        getInverseEditOperations: function () {
                          return i[n]
                        }, getTrackedSelection: function (t) {
                          var n = parseInt(t, 10), i = e.model._getMarker(
                                  e.selectionStartMarkers[n]),
                              o = e.model._getMarker(e.positionMarkers[n]);
                          return new a.Selection(i.lineNumber, i.column,
                              o.lineNumber, o.column)
                        }
                      })) : u[n] = e.selectionsBefore[n]
                    }(o);
                  }
                  return u
                }), f = [];
            for (var g in d) {
              d.hasOwnProperty(g) && f.push(parseInt(g, 10));
            }
            f.sort(function (e, t) {
              return t - e
            });
            for (u = 0; u < f.length; u++) {
              p.splice(f[u], 1);
            }
            return p
          }, e._arrayIsEmpty = function (e) {
            for (var t = 0, n = e.length; t < n; t++) {
              if (e[t]) {
                return !1;
              }
            }
            return !0
          }, e._getEditOperations = function (e, t) {
            for (var n = [], i = !1, o = 0, r = t.length; o < r;
                o++) {
              if (t[o]) {
                var s = this._getEditOperationsFromCommand(e, o, t[o]);
                n = n.concat(s.operations), i = i || s.hadTrackedEditOperation
              }
            }
            return {operations: n, hadTrackedEditOperation: i}
          }, e._getEditOperationsFromCommand = function (e, t, i) {
            var r = [], s = 0, u = function (e, n) {
              e.isEmpty() && "" === n || r.push({
                identifier: {major: t, minor: s++},
                range: e,
                text: n,
                forceMoveMarkers: !1,
                isAutoWhitespaceEdit: i.insertsAutoWhitespace
              })
            }, l = !1, c = {
              addEditOperation: u,
              addTrackedEditOperation: function (e, t) {
                l = !0, u(e, t)
              },
              trackSelection: function (t, n) {
                var i, o;
                if (t.isEmpty()) {
                  if ("boolean" == typeof n) {
                    i = n, o = n;
                  } else {
                    var r = e.model.getLineMaxColumn(t.startLineNumber);
                    t.startColumn === r ? (i = !0, o = !0) : (i = !1, o = !1)
                  }
                } else {
                  t.getDirection() === a.SelectionDirection.LTR
                      ? (i = !1, o = !0) : (i = !0, o = !1);
                }
                var s = e.selectionStartMarkers.length;
                return e.selectionStartMarkers[s] = e.model._addMarker(0,
                    t.selectionStartLineNumber, t.selectionStartColumn,
                    i), e.positionMarkers[s] = e.model._addMarker(0,
                    t.positionLineNumber, t.positionColumn, o), s.toString()
              }
            };
            try {
              i.getEditOperations(e.model, c)
            } catch (e) {
              return e.friendlyMessage = n.localize(0,
                  null), o.onUnexpectedError(e), {
                operations: [],
                hadTrackedEditOperation: !1
              }
            }
            return {operations: r, hadTrackedEditOperation: l}
          }, e._getLoserCursorMap = function (e) {
            (e = e.slice(0)).sort(function (e, t) {
              return -s.Range.compareRangesUsingEnds(e.range, t.range)
            });
            for (var t = {}, n = 1; n < e.length; n++) {
              var i = e[n - 1], o = e[n];
              if (i.range.getStartPosition().isBefore(
                  o.range.getEndPosition())) {
                var r = void 0;
                t[(r = i.identifier.major > o.identifier.major
                    ? i.identifier.major : o.identifier.major).toString()] = !0;
                for (var a = 0; a < e.length; a++) {
                  e[a].identifier.major === r
                  && (e.splice(a, 1), a < n && n--, a--);
                }
                n > 0 && n--
              }
            }
            return t
          }, e
        }()
      }), define(d[322], h([6, 8]), function (e, t) {
    return e.create("vs/editor/common/model/textModelWithTokens", t)
  }), define(d[323], h([1, 0, 322, 10, 426, 93, 17, 68, 91, 98, 43, 95, 55]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var p = function () {
          function e() {
            this._ranges = []
          }

          return e.prototype.registerChangedTokens = function (e) {
            var t = this._ranges, n = t.length, i = n > 0 ? t[n - 1] : null;
            i && i.toLineNumber === e - 1 ? i.toLineNumber++
                : t[n] = {fromLineNumber: e, toLineNumber: e}
          }, e.prototype.build = function () {
            return 0 === this._ranges.length ? null : {ranges: this._ranges}
          }, e
        }(), g = function (e) {
          function t(t, n, i) {
            var o = e.call(this, t, n) || this;
            return o._languageIdentifier = i
                || a.NULL_LANGUAGE_IDENTIFIER, o._tokenizationListener = s.TokenizationRegistry.onDidChange(
                function (e) {
                  -1 !== e.changedLanguages.indexOf(
                      o._languageIdentifier.language)
                  && (o._resetTokenizationState(), o.emitModelTokensChangedEvent(
                      {
                        ranges: [{
                          fromLineNumber: 1,
                          toLineNumber: o.getLineCount()
                        }]
                      }))
                }), o._revalidateTokensTimeout = -1, o._resetTokenizationState(), o
          }

          return f(t, e), t.prototype.dispose = function () {
            this._tokenizationListener.dispose(), this._clearTimers(), this._lastState = null, e.prototype.dispose.call(
                this)
          }, t.prototype._shouldAutoTokenize = function () {
            return !1
          }, t.prototype._resetValue = function (t) {
            e.prototype._resetValue.call(this,
                t), this._resetTokenizationState()
          }, t.prototype._resetTokenizationState = function () {
            this._clearTimers();
            for (var e = 0; e < this._lines.length;
                e++) {
              this._lines[e].resetTokenizationState();
            }
            if (this._tokenizationSupport = null, this._isTooLargeForTokenization
            || (this._tokenizationSupport = s.TokenizationRegistry.get(
                this._languageIdentifier.language)), this._tokenizationSupport) {
              var n = null;
              try {
                n = this._tokenizationSupport.getInitialState()
              } catch (e) {
                e.friendlyMessage = t.MODE_TOKENIZATION_FAILED_MSG, i.onUnexpectedError(
                    e), this._tokenizationSupport = null
              }
              n && this._lines[0].setState(n)
            }
            this._lastState = null, this._invalidLineStartIndex = 0, this._beginBackgroundTokenization()
          }, t.prototype._clearTimers = function () {
            -1 !== this._revalidateTokensTimeout && (clearTimeout(
                this._revalidateTokensTimeout), this._revalidateTokensTimeout = -1)
          }, t.prototype._withModelTokensChangedEventBuilder = function (e) {
            var t = new p, n = e(t);
            if (!this._isDisposing) {
              var i = t.build();
              i && this._eventEmitter.emit(
                  h.TextModelEventType.ModelTokensChanged, i)
            }
            return n
          }, t.prototype.forceTokenization = function (e) {
            var t = this;
            if (e < 1 || e > this.getLineCount()) {
              throw new Error(
                  "Illegal value " + e + " for `lineNumber`");
            }
            this._withModelTokensChangedEventBuilder(function (n) {
              t._updateTokensUntilLine(n, e)
            })
          }, t.prototype.getLineTokens = function (e) {
            if (e < 1 || e > this.getLineCount()) {
              throw new Error(
                  "Illegal value " + e + " for `lineNumber`");
            }
            return this._getLineTokens(e)
          }, t.prototype._getLineTokens = function (e) {
            return this._lines[e - 1].getTokens(this._languageIdentifier.id)
          }, t.prototype.getLanguageIdentifier = function () {
            return this._languageIdentifier
          }, t.prototype.getModeId = function () {
            return this._languageIdentifier.language
          }, t.prototype.setMode = function (e) {
            if (this._languageIdentifier.id !== e.id) {
              var t = {
                oldLanguage: this._languageIdentifier.language,
                newLanguage: e.language
              };
              this._languageIdentifier = e, this._resetTokenizationState(), this.emitModelTokensChangedEvent(
                  {
                    ranges: [{
                      fromLineNumber: 1,
                      toLineNumber: this.getLineCount()
                    }]
                  }), this._emitModelModeChangedEvent(t)
            }
          }, t.prototype.getLanguageIdAtPosition = function (e, t) {
            if (!this._tokenizationSupport) {
              return this._languageIdentifier.id;
            }
            var n = this.validatePosition({lineNumber: e, column: t}),
                i = n.lineNumber, o = n.column;
            return this._getLineTokens(i).findTokenAtOffset(o - 1).languageId
          }, t.prototype._invalidateLine = function (e) {
            this._lines[e].setIsInvalid(!0), e < this._invalidLineStartIndex
            && (this._invalidLineStartIndex < this._lines.length
            && this._lines[this._invalidLineStartIndex].setIsInvalid(
                !0), this._invalidLineStartIndex = e, this._beginBackgroundTokenization())
          }, t.prototype._beginBackgroundTokenization = function () {
            var e = this;
            this._shouldAutoTokenize() && -1 === this._revalidateTokensTimeout
            && (this._revalidateTokensTimeout = setTimeout(function () {
              e._revalidateTokensTimeout = -1, e._revalidateTokensNow()
            }, 0))
          }, t.prototype._warmUpTokens = function () {
            for (var e = Math.min(100, this.getLineCount()), t = e, n = 1;
                n <= e; n++) {
              if (this._lines[n - 1].text.length >= 200) {
                t = n - 1;
                break
              }
            }
            this._revalidateTokensNow(t), this._invalidLineStartIndex
            < this._lines.length && this._beginBackgroundTokenization()
          }, t.prototype._revalidateTokensNow = function (e) {
            var t = this;
            void 0 === e && (e = this._invalidLineStartIndex
                + 1e6), this._withModelTokensChangedEventBuilder(function (n) {
              e = Math.min(t._lines.length, e);
              for (var i, r = t._invalidLineStartIndex + 1, s = 0, a = 0, u = 0,
                  l = o.StopWatch.create(!1), c = r; c <= e; c++) {
                if ((i = l.elapsed()) > 20) {
                  e = c - 1;
                  break
                }
                if (a = t._lines[c - 1].text.length, s > 0 && (u = i / s * a, i
                + u > 20)) {
                  e = c - 1;
                  break
                }
                t._updateTokensUntilLine(n, c), s += a, c = Math.max(c,
                    t._invalidLineStartIndex + 1)
              }
              i = l.elapsed(), t._invalidLineStartIndex < t._lines.length
              && t._beginBackgroundTokenization()
            })
          }, t.prototype._updateTokensUntilLine = function (e, n) {
            if (this._tokenizationSupport) {
              for (var o = this._lines.length, r = n - 1,
                  s = this._invalidLineStartIndex; s <= r; s++) {
                var u = s + 1, l = null, c = this._lines[s].text;
                try {
                  var d = this._lines[s].getState().clone();
                  l = this._tokenizationSupport.tokenize2(this._lines[s].text,
                      d, 0)
                } catch (e) {
                  e.friendlyMessage = t.MODE_TOKENIZATION_FAILED_MSG, i.onUnexpectedError(
                      e)
                }
                if (l || (l = a.nullTokenize2(this._languageIdentifier.id, c,
                    this._lines[s].getState(), 0)), this._lines[s].setTokens(
                    this._languageIdentifier.id,
                    l.tokens), e.registerChangedTokens(
                    s + 1), this._lines[s].setIsInvalid(!1), u < o) {
                  if (null
                      !== this._lines[u].getState() && l.endState.equals(
                          this._lines[u].getState())) {
                    for (var h = s + 1; h < o && !this._lines[h].isInvalid();) {
                      if (h + 1 < o) {
                        if (null === this._lines[h + 1].getState()) {
                          break
                        }
                      } else if (null === this._lastState) {
                        break;
                      }
                      h++
                    }
                    this._invalidLineStartIndex = Math.max(
                        this._invalidLineStartIndex, h), s = h - 1
                  } else {
                    this._lines[u].setState(
                        l.endState);
                  }
                } else {
                  this._lastState = l.endState
                }
              }
              this._invalidLineStartIndex = Math.max(
                  this._invalidLineStartIndex, r + 1)
            } else {
              this._invalidLineStartIndex = this._lines.length
            }
          }, t.prototype.emitModelTokensChangedEvent = function (e) {
            this._isDisposing || this._eventEmitter.emit(
                h.TextModelEventType.ModelTokensChanged, e)
          }, t.prototype._emitModelModeChangedEvent = function (e) {
            this._isDisposing || this._eventEmitter.emit(
                h.TextModelEventType.ModelLanguageChanged, e)
          }, t.prototype.getWordAtPosition = function (e) {
            this._assertNotDisposed();
            var t = this.validatePosition(e),
                n = this.getLineContent(t.lineNumber);
            if (this._invalidLineStartIndex
                <= t.lineNumber) {
              return d.getWordAtText(t.column,
                  c.LanguageConfigurationRegistry.getWordDefinition(
                      this._languageIdentifier.id), n, 0);
            }
            var i = this._getLineTokens(t.lineNumber), o = t.column - 1,
                r = i.findTokenAtOffset(o), s = d.getWordAtText(t.column,
                    c.LanguageConfigurationRegistry.getWordDefinition(r.languageId),
                    n.substring(r.startOffset, r.endOffset), r.startOffset);
            if (!s && r.hasPrev && r.startOffset === o) {
              var a = r.prev();
              s = d.getWordAtText(t.column,
                  c.LanguageConfigurationRegistry.getWordDefinition(
                      a.languageId), n.substring(a.startOffset, a.endOffset),
                  a.startOffset)
            }
            return s
          }, t.prototype.getWordUntilPosition = function (e) {
            var t = this.getWordAtPosition(e);
            return t ? {
              word: t.word.substr(0, e.column - t.startColumn),
              startColumn: t.startColumn,
              endColumn: e.column
            } : {word: "", startColumn: e.column, endColumn: e.column}
          }, t.prototype.findMatchingBracketUp = function (e, t) {
            var n = e.toLowerCase(), i = this.validatePosition(t),
                o = this._getLineTokens(i.lineNumber).findTokenAtOffset(
                    i.column - 1),
                r = c.LanguageConfigurationRegistry.getBracketsSupport(
                    o.languageId);
            if (!r) {
              return null;
            }
            var s = r.textIsBracket[n];
            return s ? this._findMatchingBracketUp(s, i) : null
          }, t.prototype.matchBracket = function (e) {
            return this._matchBracket(this.validatePosition(e))
          }, t.prototype._matchBracket = function (e) {
            var t = e.lineNumber, n = this._getLineTokens(t),
                i = this._lines[t - 1].text,
                o = n.findTokenAtOffset(e.column - 1);
            if (!o) {
              return null;
            }
            var r = c.LanguageConfigurationRegistry.getBracketsSupport(
                o.languageId);
            if (r && !u.ignoreBracketsInToken(o.tokenType)) {
              var s = Math.max(o.startOffset,
                      e.column - 1 - r.maxBracketLength),
                  a = Math.min(o.endOffset, e.column - 1 + r.maxBracketLength);
              if ((f = l.BracketsUtils.findNextBracketInToken(r.forwardRegex, t,
                      i, e.column - 1, a)) && f.startColumn === e.column
                  && (g = (g = i.substring(f.startColumn - 1, f.endColumn
                      - 1)).toLowerCase(), m = this._matchFoundBracket(f,
                      r.textIsBracket[g], r.textIsOpenBracket[g]))) {
                return m;
              }
              for (; ;) {
                var d = l.BracketsUtils.findNextBracketInToken(r.forwardRegex,
                    t, i, s, a);
                if (!d) {
                  break;
                }
                if (d.startColumn <= e.column && e.column <= d.endColumn
                    && (g = (g = i.substring(d.startColumn - 1, d.endColumn
                        - 1)).toLowerCase(), m = this._matchFoundBracket(d,
                        r.textIsBracket[g], r.textIsOpenBracket[g]))) {
                  return m;
                }
                s = d.endColumn - 1
              }
            }
            if (o.hasPrev && o.startOffset === e.column - 1) {
              var h = o.prev(),
                  p = c.LanguageConfigurationRegistry.getBracketsSupport(
                      h.languageId);
              if (p && !u.ignoreBracketsInToken(h.tokenType)) {
                var s = Math.max(h.startOffset,
                        e.column - 1 - p.maxBracketLength), a = o.startOffset,
                    f = l.BracketsUtils.findPrevBracketInToken(p.reversedRegex,
                        t, i, s, a);
                if (f && f.startColumn <= e.column && e.column <= f.endColumn) {
                  var g = i.substring(f.startColumn - 1, f.endColumn - 1);
                  g = g.toLowerCase();
                  var m = this._matchFoundBracket(f, p.textIsBracket[g],
                      p.textIsOpenBracket[g]);
                  if (m) {
                    return m
                  }
                }
              }
            }
            return null
          }, t.prototype._matchFoundBracket = function (e, t, n) {
            if (n) {
              if (i = this._findMatchingBracketDown(t,
                  e.getEndPosition())) {
                return [e, i]
              }
            } else {
              var i = this._findMatchingBracketUp(t, e.getStartPosition());
              if (i) {
                return [e, i]
              }
            }
            return null
          }, t.prototype._findMatchingBracketUp = function (e, t) {
            for (var n = e.languageIdentifier.id, i = e.reversedRegex, o = -1,
                r = t.lineNumber; r >= 1; r--) {
              var s = this._getLineTokens(r), a = this._lines[r - 1].text,
                  c = void 0, d = void 0;
              for (r === t.lineNumber ? (c = s.findTokenAtOffset(
                  t.column - 1), d = t.column - 1) : (c = s.lastToken())
                  && (d = c.endOffset); c;) {
                if (c.languageId === n && !u.ignoreBracketsInToken(
                    c.tokenType)) {
                  for (; ;) {
                    var h = l.BracketsUtils.findPrevBracketInToken(i, r, a,
                        c.startOffset, d);
                    if (!h) {
                      break;
                    }
                    var p = a.substring(h.startColumn - 1, h.endColumn - 1);
                    if ((p = p.toLowerCase()) === e.open ? o++ : p === e.close
                        && o--, 0 === o) {
                      return h;
                    }
                    d = h.startColumn - 1
                  }
                }
                (c = c.prev()) && (d = c.endOffset)
              }
            }
            return null
          }, t.prototype._findMatchingBracketDown = function (e, t) {
            for (var n = e.languageIdentifier.id, i = e.forwardRegex, o = 1,
                r = t.lineNumber, s = this.getLineCount(); r <= s; r++) {
              var a = this._getLineTokens(r), c = this._lines[r - 1].text,
                  d = void 0, h = void 0;
              for (r === t.lineNumber ? (d = a.findTokenAtOffset(
                  t.column - 1), h = t.column - 1) : (d = a.firstToken())
                  && (h = d.startOffset); d;) {
                if (d.languageId === n && !u.ignoreBracketsInToken(
                    d.tokenType)) {
                  for (; ;) {
                    var p = l.BracketsUtils.findNextBracketInToken(i, r, c, h,
                        d.endOffset);
                    if (!p) {
                      break;
                    }
                    var f = c.substring(p.startColumn - 1, p.endColumn - 1);
                    if ((f = f.toLowerCase()) === e.open ? o++ : f === e.close
                        && o--, 0 === o) {
                      return p;
                    }
                    h = p.endColumn - 1
                  }
                }
                (d = d.next()) && (h = d.startOffset)
              }
            }
            return null
          }, t.prototype.findPrevBracket = function (e) {
            for (var t = this.validatePosition(e), n = -1, i = null,
                o = t.lineNumber; o >= 1; o--) {
              var r = this._getLineTokens(o), s = this._lines[o - 1].text,
                  a = void 0, d = void 0;
              for (o === t.lineNumber ? (a = r.findTokenAtOffset(
                  t.column - 1), d = t.column - 1) : (a = r.lastToken())
                  && (d = a.endOffset); a;) {
                if (n !== a.languageId
                && (n = a.languageId, i = c.LanguageConfigurationRegistry.getBracketsSupport(
                    n)), i && !u.ignoreBracketsInToken(a.tokenType)) {
                  var h = l.BracketsUtils.findPrevBracketInToken(
                      i.reversedRegex, o, s, a.startOffset, d);
                  if (h) {
                    return this._toFoundBracket(i, h)
                  }
                }
                (a = a.prev()) && (d = a.endOffset)
              }
            }
            return null
          }, t.prototype.findNextBracket = function (e) {
            for (var t = this.validatePosition(e), n = -1, i = null,
                o = t.lineNumber, r = this.getLineCount(); o <= r; o++) {
              var s = this._getLineTokens(o), a = this._lines[o - 1].text,
                  d = void 0, h = void 0;
              for (o === t.lineNumber ? (d = s.findTokenAtOffset(
                  t.column - 1), h = t.column - 1) : (d = s.firstToken())
                  && (h = d.startOffset); d;) {
                if (n !== d.languageId
                && (n = d.languageId, i = c.LanguageConfigurationRegistry.getBracketsSupport(
                    n)), i && !u.ignoreBracketsInToken(d.tokenType)) {
                  var p = l.BracketsUtils.findNextBracketInToken(i.forwardRegex,
                      o, a, h, d.endOffset);
                  if (p) {
                    return this._toFoundBracket(i, p)
                  }
                }
                (d = d.next()) && (h = d.startOffset)
              }
            }
            return null
          }, t.prototype._toFoundBracket = function (e, t) {
            if (!t) {
              return null;
            }
            var n = this.getValueInRange(t);
            n = n.toLowerCase();
            var i = e.textIsBracket[n];
            return i ? {
              range: t,
              open: i.open,
              close: i.close,
              isOpen: e.textIsOpenBracket[n]
            } : null
          }, t.MODE_TOKENIZATION_FAILED_MSG = n.localize(0, null), t
        }(r.TextModel);
        t.TextModelWithTokens = g
      }), define(d[324], h([1, 0, 108, 12, 118, 323]),
      function (e, t, n, i, o, r) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var s = 0, a = function (e) {
          function t(t, i, o) {
            var r = e.call(this, t, i, o) || this;
            return r._markerIdGenerator = new n.IdGenerator(
                ++s + ";"), r._markerIdToMarker = Object.create(null), r
          }

          return f(t, e), t.prototype.dispose = function () {
            this._markerIdToMarker = null, e.prototype.dispose.call(this)
          }, t.prototype._resetValue = function (t) {
            e.prototype._resetValue.call(this,
                t), this._markerIdToMarker = Object.create(null)
          }, t.prototype._addMarker = function (e, t, n, r) {
            var s = this.validatePosition(new i.Position(t, n)),
                a = new o.LineMarker(this._markerIdGenerator.nextId(), e, s, r);
            return this._markerIdToMarker[a.id] = a, this._lines[s.lineNumber
            - 1].addMarker(a), a.id
          }, t.prototype._addMarkers = function (e) {
            if (0 === e.length) {
              return [];
            }
            for (var t = [], n = 0, i = e.length; n < i; n++) {
              var r = e[n],
                  s = new o.LineMarker(this._markerIdGenerator.nextId(),
                      r.internalDecorationId, r.position,
                      r.stickToPreviousCharacter);
              this._markerIdToMarker[s.id] = s, t[n] = s
            }
            var a = t.slice(0);
            a.sort(function (e, t) {
              return e.position.lineNumber - t.position.lineNumber
            });
            for (var u = 0, l = [], c = 0, n = 0, i = a.length; n < i;
                n++) {
              (s = a[n]).position.lineNumber !== u && (0 !== u
              && this._lines[u - 1].addMarkers(
                  l), u = s.position.lineNumber, l.length = 0, c = 0), l[c++] = s;
            }
            return this._lines[u - 1].addMarkers(l), t
          }, t.prototype._changeMarker = function (e, t, n) {
            var o = this._markerIdToMarker[e];
            if (o) {
              var r = this.validatePosition(new i.Position(t, n));
              r.lineNumber !== o.position.lineNumber
              && (this._lines[o.position.lineNumber - 1].removeMarker(
                  o), this._lines[r.lineNumber - 1].addMarker(
                  o)), o.setPosition(r)
            }
          }, t.prototype._changeMarkerStickiness = function (e, t) {
            var n = this._markerIdToMarker[e];
            n && (n.stickToPreviousCharacter = t)
          }, t.prototype._getMarker = function (e) {
            var t = this._markerIdToMarker[e];
            return t ? t.position : null
          }, t.prototype._getMarkersCount = function () {
            return Object.keys(this._markerIdToMarker).length
          }, t.prototype._removeMarker = function (e) {
            var t = this._markerIdToMarker[e];
            t && (this._lines[t.position.lineNumber - 1].removeMarker(
                t), delete this._markerIdToMarker[e])
          }, t.prototype._removeMarkers = function (e) {
            e.sort(function (e, t) {
              return e.position.lineNumber - t.position.lineNumber
            });
            for (var t = 0, n = null, i = 0, o = e.length; i < o; i++) {
              var r = e[i];
              delete this._markerIdToMarker[r.id], r.position.lineNumber !== t
              && (0 !== t && this._lines[t - 1].removeMarkers(
                  n), t = r.position.lineNumber, n = Object.create(
                  null)), n[r.id] = !0
            }
            this._lines[t - 1].removeMarkers(n)
          }, t
        }(r.TextModelWithTokens);
        t.TextModelWithMarkers = a
      }), define(d[34], h([1, 0, 10, 133, 9, 2, 20, 118, 12, 324, 55]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";

        function d() {
          var e = v++;
          return (e %= 52) < 26 ? String.fromCharCode(97 + e)
              : String.fromCharCode(65 + e - 26)
        }

        function h(e) {
          return e.replace(/[^a-z0-9\-]/gi, " ")
        }

        function p(e) {
          return e instanceof b ? e : b.createDynamic(e)
        }

        Object.defineProperty(t, "__esModule", {value: !0}), t.ClassName = {
          EditorWarningDecoration: "greensquiggly",
          EditorErrorDecoration: "redsquiggly"
        };
        var g = function () {
          function e() {
            this.addedDecorations = [], this.addedDecorationsLen = 0, this.changedDecorations = [], this.changedDecorationsLen = 0, this.removedDecorations = [], this.removedDecorationsLen = 0
          }

          return e.prototype.addNewDecoration = function (e) {
            this.addedDecorations[this.addedDecorationsLen++] = e
          }, e.prototype.addRemovedDecoration = function (e) {
            this.removedDecorations[this.removedDecorationsLen++] = e
          }, e.prototype.addMovedDecoration = function (e) {
            this.changedDecorations[this.changedDecorationsLen++] = e
          }, e.prototype.addUpdatedDecoration = function (e) {
            this.changedDecorations[this.changedDecorationsLen++] = e
          }, e
        }(), m = function () {
          function e(e, t, n, i, o, r, s) {
            this.id = e, this.internalId = t, this.ownerId = n, this.range = i, this.startMarker = o, this.endMarker = r, this.setOptions(
                s)
          }

          return e.prototype.setOptions = function (e) {
            this.options = e, this.isForValidation = this.options.className
                === t.ClassName.EditorErrorDecoration || this.options.className
                === t.ClassName.EditorWarningDecoration
          }, e.prototype.setRange = function (e, t) {
            if (!this.range.equalsRange(t)) {
              var n = this.range.startLineNumber !== this.range.endLineNumber;
              this.range = t;
              var i = this.range.startLineNumber !== this.range.endLineNumber;
              n !== i && (i ? e[this.id] = this : delete e[this.id])
            }
          }, e
        }();
        t.InternalDecoration = m;
        var v = 0, _ = function (e) {
          function t(t, n, i) {
            var o = e.call(this, t, n, i) || this;
            return o._instanceId = d(), o._lastDecorationId = 0, o._currentDecorationsTracker = null, o._currentDecorationsTrackerCnt = 0, o._currentMarkersTracker = null, o._currentMarkersTrackerCnt = 0, o._decorations = Object.create(
                null), o._internalDecorations = Object.create(
                null), o._multiLineDecorationsMap = Object.create(null), o
          }

          return f(t, e), t.prototype.dispose = function () {
            this._decorations = null, this._internalDecorations = null, this._multiLineDecorationsMap = null, e.prototype.dispose.call(
                this)
          }, t.prototype._resetValue = function (t) {
            e.prototype._resetValue.call(this,
                t), this._decorations = Object.create(
                null), this._internalDecorations = Object.create(
                null), this._multiLineDecorationsMap = Object.create(null)
          }, t._shouldStartMarkerSticksToPreviousCharacter = function (e) {
            return e === s.TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges
                || e === s.TrackedRangeStickiness.GrowsOnlyWhenTypingBefore
          }, t._shouldEndMarkerSticksToPreviousCharacter = function (e) {
            return e === s.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges
                || e === s.TrackedRangeStickiness.GrowsOnlyWhenTypingBefore
          }, t.prototype._getTrackedRangesCount = function () {
            return Object.keys(this._decorations).length
          }, t.prototype.changeDecorations = function (e, t) {
            void 0 === t && (t = 0), this._assertNotDisposed();
            try {
              this._eventEmitter.beginDeferredEmit();
              var n = this._acquireDecorationsTracker();
              return this._changeDecorations(n, t, e)
            } finally {
              this._releaseDecorationsTracker(), this._eventEmitter.endDeferredEmit()
            }
          }, t.prototype._changeDecorations = function (e, t, i) {
            var o = this, r = {
              addDecoration: function (n, i) {
                return o._addDecorationImpl(e, t, o.validateRange(n), p(i))
              }, changeDecoration: function (t, n) {
                o._changeDecorationImpl(e, t, o.validateRange(n))
              }, changeDecorationOptions: function (t, n) {
                o._changeDecorationOptionsImpl(e, t, p(n))
              }, removeDecoration: function (t) {
                o._removeDecorationImpl(e, t)
              }, deltaDecorations: function (n, i) {
                return o._deltaDecorationsImpl(e, t, n,
                    o._normalizeDeltaDecorations(i))
              }
            }, s = null;
            try {
              s = i(r)
            } catch (e) {
              n.onUnexpectedError(e)
            }
            return r.addDecoration = null, r.changeDecoration = null, r.removeDecoration = null, r.deltaDecorations = null, s
          }, t.prototype.deltaDecorations = function (e, t, n) {
            return void 0 === n && (n = 0), this._assertNotDisposed(), e
            || (e = []), this.changeDecorations(function (n) {
              return n.deltaDecorations(e, t)
            }, n)
          }, t.prototype.removeAllDecorationsWithOwnerId = function (e) {
            var t = [];
            for (var n in this._decorations) {
              var i = this._decorations[n];
              i.ownerId === e && t.push(i.id)
            }
            this._removeDecorationsImpl(null, t)
          }, t.prototype.getDecorationOptions = function (e) {
            var t = this._decorations[e];
            return t ? t.options : null
          }, t.prototype.getDecorationRange = function (e) {
            var t = this._decorations[e];
            return t ? t.range : null
          }, t.prototype.getLineDecorations = function (e, t, n) {
            return void 0 === t && (t = 0), void 0 === n && (n = !1), e < 1 || e
            > this.getLineCount() ? [] : this.getLinesDecorations(e, e, t, n)
          }, t.prototype._getMultiLineDecorations = function (e, t, n) {
            var i = e.startLineNumber, o = e.startColumn, r = e.endLineNumber,
                s = e.endColumn, a = [];
            for (var u in this._multiLineDecorationsMap) {
              var l = this._multiLineDecorationsMap[u];
              if ((!t || !l.ownerId || l.ownerId === t) && (!n
                  || !l.isForValidation)) {
                var c = l.range;
                c.startLineNumber > r || c.startLineNumber === r
                && c.startColumn > s || c.endLineNumber < i || c.endLineNumber
                === i && c.endColumn < o || a.push(l)
              }
            }
            return a
          }, t.prototype._getDecorationsInRange = function (e, t, n) {
            for (var i = e.startLineNumber, o = e.startColumn,
                r = e.endLineNumber, s = e.endColumn,
                a = this._getMultiLineDecorations(e, t, n), u = {}, l = 0,
                c = a.length; l < c; l++) {
              u[a[l].id] = !0;
            }
            for (var d = i; d <= r; d++) {
              var h = this._lines[d - 1].getMarkers();
              if (null !== h) {
                for (var l = 0, c = h.length; l < c; l++) {
                  var p = h[l].internalDecorationId;
                  if (0 !== p) {
                    var f = this._internalDecorations[p];
                    if (!u.hasOwnProperty(f.id) && !(t && f.ownerId && f.ownerId
                        !== t || n && f.isForValidation)) {
                      var g = f.range;
                      g.startLineNumber > r || g.startLineNumber === r
                      && g.startColumn > s || g.endLineNumber < i
                      || g.endLineNumber === i && g.endColumn < o || (a.push(
                          f), u[f.id] = !0)
                    }
                  }
                }
              }
            }
            return a
          }, t.prototype.getLinesDecorations = function (e, t, n, i) {
            void 0 === n && (n = 0), void 0 === i && (i = !1);
            var o = this.getLineCount(), s = Math.min(o, Math.max(1, e)),
                a = Math.min(o, Math.max(1, t)), u = this.getLineMaxColumn(a);
            return this._getDecorationsInRange(new r.Range(s, 1, a, u), n, i)
          }, t.prototype.getDecorationsInRange = function (e, t, n) {
            var i = this.validateRange(e);
            return this._getDecorationsInRange(i, t, n)
          }, t.prototype.getAllDecorations = function (e, t) {
            void 0 === e && (e = 0), void 0 === t && (t = !1);
            var n = [];
            for (var i in this._decorations) {
              var o = this._decorations[i];
              e && o.ownerId && o.ownerId !== e || (t && o.isForValidation
                  || n.push(o))
            }
            return n
          }, t.prototype._acquireMarkersTracker = function () {
            return 0 === this._currentMarkersTrackerCnt
            && (this._currentMarkersTracker = new a.MarkersTracker), this._currentMarkersTrackerCnt++, this._currentMarkersTracker
          }, t.prototype._releaseMarkersTracker = function () {
            if (this._currentMarkersTrackerCnt--, 0
            === this._currentMarkersTrackerCnt) {
              var e = this._currentMarkersTracker;
              this._currentMarkersTracker = null, this._handleTrackedMarkers(e)
            }
          }, t.prototype._handleTrackedMarkers = function (e) {
            var n = e.getDecorationIds();
            if (0 !== n.length) {
              n.sort();
              for (var i = [], o = 0, r = 0, s = 0, a = n.length; s < a; s++) {
                var u = n[s];
                if (u !== r) {
                  r = u;
                  var l = this._internalDecorations[u];
                  if (l) {
                    var c = l.startMarker.position, d = l.endMarker.position,
                        h = t._createRangeFromMarkers(c, d);
                    l.setRange(this._multiLineDecorationsMap, h), i[o++] = l.id
                  }
                }
              }
              if (i.length > 0) {
                var p = {
                  addedDecorations: [],
                  changedDecorations: i,
                  removedDecorations: []
                };
                this.emitModelDecorationsChangedEvent(p)
              }
            }
          }, t._createRangeFromMarkers = function (e, t) {
            return t.isBefore(e) ? new r.Range(e.lineNumber, e.column,
                e.lineNumber, e.column) : new r.Range(e.lineNumber, e.column,
                t.lineNumber, t.column)
          }, t.prototype._acquireDecorationsTracker = function () {
            return 0 === this._currentDecorationsTrackerCnt
            && (this._currentDecorationsTracker = new g), this._currentDecorationsTrackerCnt++, this._currentDecorationsTracker
          }, t.prototype._releaseDecorationsTracker = function () {
            if (this._currentDecorationsTrackerCnt--, 0
            === this._currentDecorationsTrackerCnt) {
              var e = this._currentDecorationsTracker;
              this._currentDecorationsTracker = null, this._handleTrackedDecorations(
                  e)
            }
          }, t.prototype._handleTrackedDecorations = function (e) {
            if (0 !== e.addedDecorationsLen || 0 !== e.changedDecorationsLen
                || 0 !== e.removedDecorationsLen) {
              var t = {
                addedDecorations: e.addedDecorations,
                changedDecorations: e.changedDecorations,
                removedDecorations: e.removedDecorations
              };
              this.emitModelDecorationsChangedEvent(t)
            }
          }, t.prototype.emitModelDecorationsChangedEvent = function (e) {
            this._isDisposing || this._eventEmitter.emit(
                c.TextModelEventType.ModelDecorationsChanged, e)
          }, t.prototype._normalizeDeltaDecorations = function (e) {
            for (var t = [], n = 0, i = e.length; n < i; n++) {
              var o = e[n];
              t.push(new w(n, this.validateRange(o.range), p(o.options)))
            }
            return t
          }, t.prototype._externalDecorationId = function (e) {
            return this._instanceId + ";" + e
          }, t.prototype._addDecorationImpl = function (e, n, i, o) {
            var r = this.validateRange(i), s = ++this._lastDecorationId,
                a = this._externalDecorationId(s), l = this._addMarkers([{
                  internalDecorationId: s,
                  position: new u.Position(r.startLineNumber, r.startColumn),
                  stickToPreviousCharacter: t._shouldStartMarkerSticksToPreviousCharacter(
                      o.stickiness)
                }, {
                  internalDecorationId: s,
                  position: new u.Position(r.endLineNumber, r.endColumn),
                  stickToPreviousCharacter: t._shouldEndMarkerSticksToPreviousCharacter(
                      o.stickiness)
                }]), c = new m(a, s, n, r, l[0], l[1], o);
            return this._decorations[a] = c, this._internalDecorations[s] = c, r.startLineNumber
            !== r.endLineNumber
            && (this._multiLineDecorationsMap[a] = c), e.addNewDecoration(a), a
          }, t.prototype._addDecorationsImpl = function (e, n, i) {
            for (var o = [], r = [], s = [], a = 0, l = i.length; a < l; a++) {
              var c = (g = i[a]).range, d = g.options.stickiness,
                  h = ++this._lastDecorationId,
                  p = this._externalDecorationId(h);
              o[a] = h, r[a] = p, s[2 * a] = {
                internalDecorationId: h,
                position: new u.Position(c.startLineNumber, c.startColumn),
                stickToPreviousCharacter: t._shouldStartMarkerSticksToPreviousCharacter(
                    d)
              }, s[2 * a + 1] = {
                internalDecorationId: h,
                position: new u.Position(c.endLineNumber, c.endColumn),
                stickToPreviousCharacter: t._shouldEndMarkerSticksToPreviousCharacter(
                    d)
              }
            }
            for (var f = this._addMarkers(s), a = 0, l = i.length; a < l; a++) {
              var g = i[a], c = g.range, h = o[a], p = r[a], v = f[2 * a],
                  _ = f[2 * a + 1], y = new m(p, h, n, c, v, _, g.options);
              this._decorations[p] = y, this._internalDecorations[h] = y, c.startLineNumber
              !== c.endLineNumber
              && (this._multiLineDecorationsMap[p] = y), e.addNewDecoration(p)
            }
            return r
          }, t.prototype._changeDecorationImpl = function (e, t, n) {
            var i = this._decorations[t];
            if (i) {
              var o = i.startMarker;
              n.startLineNumber !== o.position.lineNumber
              && (this._lines[o.position.lineNumber - 1].removeMarker(
                  o), this._lines[n.startLineNumber - 1].addMarker(
                  o)), o.setPosition(
                  new u.Position(n.startLineNumber, n.startColumn));
              var r = i.endMarker;
              n.endLineNumber !== r.position.lineNumber
              && (this._lines[r.position.lineNumber - 1].removeMarker(
                  r), this._lines[n.endLineNumber - 1].addMarker(
                  r)), r.setPosition(
                  new u.Position(n.endLineNumber, n.endColumn)), i.setRange(
                  this._multiLineDecorationsMap, n), e.addMovedDecoration(t)
            }
          }, t.prototype._changeDecorationOptionsImpl = function (e, n, i) {
            var o = this._decorations[n];
            o && (o.options.stickiness !== i.stickiness
            && (o.startMarker.stickToPreviousCharacter = t._shouldStartMarkerSticksToPreviousCharacter(
                i.stickiness), o.endMarker.stickToPreviousCharacter = t._shouldEndMarkerSticksToPreviousCharacter(
                i.stickiness)), o.setOptions(i), e.addUpdatedDecoration(n))
          }, t.prototype._removeDecorationImpl = function (e, t) {
            var n = this._decorations[t];
            n && (this._removeMarkers([n.startMarker,
              n.endMarker]), delete this._multiLineDecorationsMap[t], delete this._decorations[t], delete this._internalDecorations[n.internalId], e
            && e.addRemovedDecoration(t))
          }, t.prototype._removeDecorationsImpl = function (e, t) {
            for (var n = [], i = 0, o = 0, r = t.length; o < r; o++) {
              var s = t[o], a = this._decorations[s];
              a && (e && e.addRemovedDecoration(
                  s), n[i++] = a.startMarker, n[i++] = a.endMarker, delete this._multiLineDecorationsMap[s], delete this._decorations[s], delete this._internalDecorations[a.internalId])
            }
            n.length > 0 && this._removeMarkers(n)
          }, t.prototype._resolveOldDecorations = function (e) {
            for (var t = [], n = 0, i = e.length; n < i; n++) {
              var o = e[n], r = this._decorations[o];
              r && t.push(r)
            }
            return t
          }, t.prototype._deltaDecorationsImpl = function (e, t, n, i) {
            if (0 === n.length) {
              return this._addDecorationsImpl(e, t, i);
            }
            if (0 === i.length) {
              return this._removeDecorationsImpl(e, n), [];
            }
            var o = this._resolveOldDecorations(n);
            o.sort(function (e, t) {
              return r.Range.compareRangesUsingStarts(e.range, t.range)
            }), i.sort(function (e, t) {
              return r.Range.compareRangesUsingStarts(e.range, t.range)
            });
            for (var s = [], a = 0, u = o.length, l = 0, c = i.length, d = [],
                h = []; a < u && l < c;) {
              var p = o[a], f = i[l],
                  g = r.Range.compareRangesUsingStarts(p.range, f.range);
              g < 0 ? (h.push(p.id), a++) : g > 0 ? (d.push(f), l++)
                  : p.options.equals(f.options) ? (s[f.index] = p.id, a++, l++)
                      : (h.push(p.id), a++)
            }
            for (; a < u;) {
              h.push(o[a].id), a++;
            }
            for (; l < c;) {
              d.push(i[l]), l++;
            }
            if (h.length > 0 && this._removeDecorationsImpl(e, h), d.length
            > 0) {
              for (var m = this._addDecorationsImpl(e, t, d), v = 0,
                  _ = d.length; v < _; v++) {
                s[d[v].index] = m[v];
              }
            }
            return s
          }, t
        }(l.TextModelWithMarkers);
        t.TextModelWithDecorations = _;
        var y = function () {
          function e(e) {
            this.color = o.empty, this.darkColor = o.empty, this.hcColor = o.empty, this.position = s.OverviewRulerLane.Center, e
            && e.color && (this.color = e.color), e && e.darkColor
            && (this.darkColor = e.darkColor, this.hcColor = e.darkColor), e
            && e.hcColor && (this.hcColor = e.hcColor), e && e.hasOwnProperty(
                "position") && (this.position = e.position)
          }

          return e.prototype.equals = function (e) {
            return this.color === e.color && this.darkColor === e.darkColor
                && this.hcColor === e.hcColor && this.position === e.position
          }, e
        }();
        t.ModelDecorationOverviewRulerOptions = y;
        var C = 0, b = function () {
          function e(e, t) {
            this.staticId = e, this.stickiness = t.stickiness
                || s.TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges, this.className = t.className
                ? h(t.className) : o.empty, this.hoverMessage = t.hoverMessage
                || [], this.glyphMarginHoverMessage = t.glyphMarginHoverMessage
                || o.empty, this.isWholeLine = t.isWholeLine
                || !1, this.showIfCollapsed = t.showIfCollapsed
                || !1, this.overviewRuler = new y(
                t.overviewRuler), this.glyphMarginClassName = t.glyphMarginClassName
                ? h(t.glyphMarginClassName)
                : o.empty, this.linesDecorationsClassName = t.linesDecorationsClassName
                ? h(t.linesDecorationsClassName)
                : o.empty, this.marginClassName = t.marginClassName ? h(
                    t.marginClassName)
                : o.empty, this.inlineClassName = t.inlineClassName ? h(
                    t.inlineClassName)
                : o.empty, this.beforeContentClassName = t.beforeContentClassName
                ? h(t.beforeContentClassName)
                : o.empty, this.afterContentClassName = t.afterContentClassName
                ? h(t.afterContentClassName) : o.empty, t.__extraOptions
            && (this.extraOptions = t.__extraOptions)
          }

          return e.register = function (t) {
            return new e(++C, t)
          }, e.createDynamic = function (t) {
            return new e(0, t)
          }, e.prototype.equals = function (e) {
            return this.staticId > 0 || e.staticId > 0 ? this.staticId
                === e.staticId : this.stickiness === e.stickiness
                && this.className === e.className && this.isWholeLine
                === e.isWholeLine && this.showIfCollapsed === e.showIfCollapsed
                && this.glyphMarginClassName === e.glyphMarginClassName
                && this.linesDecorationsClassName
                === e.linesDecorationsClassName && this.marginClassName
                === e.marginClassName && this.inlineClassName
                === e.inlineClassName && this.beforeContentClassName
                === e.beforeContentClassName && this.afterContentClassName
                === e.afterContentClassName && i.markedStringsEquals(
                    this.hoverMessage, e.hoverMessage) && i.markedStringsEquals(
                    this.glyphMarginHoverMessage, e.glyphMarginHoverMessage)
                && this.overviewRuler.equals(e.overviewRuler)
                && this.extraOptions === e.extraOptions
          }, e
        }();
        t.ModelDecorationOptions = b, b.EMPTY = b.register({});
        var w = function () {
          return function (e, t, n) {
            this.index = e, this.range = t, this.options = n
          }
        }()
      }), define(d[326], h([1, 0, 2, 20, 475, 34, 9, 33, 12, 101, 93, 55]),
      function (e, t, n, i, o, r, s, a, u, l, c, d) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var h = function (e) {
          function t(t, n, i) {
            var r = e.call(this, t, n, i) || this;
            return r._commandManager = new o.EditStack(
                r), r._isUndoing = !1, r._isRedoing = !1, r._hasEditableRange = !1, r._editableRangeId = null, r._trimAutoWhitespaceLines = null, r
          }

          return f(t, e), t.createFromString = function (e, n, i) {
            return void 0 === n
            && (n = c.TextModel.DEFAULT_CREATION_OPTIONS), void 0 === i
            && (i = null), new t(l.RawTextSource.fromString(e), n, i)
          }, t.prototype.onDidChangeRawContent = function (e) {
            return this._eventEmitter.addListener(
                d.TextModelEventType.ModelRawContentChanged2, e)
          }, t.prototype.onDidChangeContent = function (e) {
            return this._eventEmitter.addListener(
                d.TextModelEventType.ModelContentChanged, e)
          }, t.prototype.dispose = function () {
            this._commandManager = null, e.prototype.dispose.call(this)
          }, t.prototype._resetValue = function (t) {
            e.prototype._resetValue.call(this,
                t), this._commandManager = new o.EditStack(
                this), this._hasEditableRange = !1, this._editableRangeId = null, this._trimAutoWhitespaceLines = null
          }, t.prototype.pushStackElement = function () {
            this._commandManager.pushStackElement()
          }, t.prototype.pushEditOperations = function (e, t, n) {
            try {
              return this._eventEmitter.beginDeferredEmit(), this._pushEditOperations(
                  e, t, n)
            } finally {
              this._eventEmitter.endDeferredEmit()
            }
          }, t.prototype._pushEditOperations = function (e, t, i) {
            var o = this;
            if (this._options.trimAutoWhitespace
                && this._trimAutoWhitespaceLines) {
              for (var r = t.map(function (e) {
                return {range: o.validateRange(e.range), text: e.text}
              }), s = !0, a = 0, u = e.length; a < u; a++) {
                for (var l = e[a], c = !1, d = 0, h = r.length; d < h; d++) {
                  var p = (_ = r[d].range).startLineNumber > l.endLineNumber,
                      f = l.startLineNumber > _.endLineNumber;
                  if (!p && !f) {
                    c = !0;
                    break
                  }
                }
                if (!c) {
                  s = !1;
                  break
                }
              }
              if (s) {
                for (var a = 0, u = this._trimAutoWhitespaceLines.length;
                    a < u; a++) {
                  for (var g = this._trimAutoWhitespaceLines[a],
                      m = this.getLineMaxColumn(g), v = !0, d = 0, h = r.length;
                      d < h; d++) {
                    var _ = r[d].range, y = r[d].text;
                    if (!(g < _.startLineNumber || g > _.endLineNumber) && !(g
                        === _.startLineNumber && _.startColumn === m
                        && _.isEmpty() && y && y.length > 0 && "\n"
                        === y.charAt(
                            0))) {
                      v = !1;
                      break
                    }
                  }
                  v && t.push({
                    identifier: null,
                    range: new n.Range(g, 1, g, m),
                    text: null,
                    forceMoveMarkers: !1,
                    isAutoWhitespaceEdit: !1
                  })
                }
              }
              this._trimAutoWhitespaceLines = null
            }
            return this._commandManager.pushEditOperation(e, t, i)
          }, t.prototype._reduceOperations = function (e) {
            return e.length < 1e3 ? e : [this._toSingleEditOperation(e)]
          }, t.prototype._toSingleEditOperation = function (e) {
            for (var t = !1, i = e[0].range, o = e[e.length - 1].range,
                r = new n.Range(i.startLineNumber, i.startColumn,
                    o.endLineNumber, o.endColumn), s = i.startLineNumber,
                a = i.startColumn, u = [], l = 0, c = e.length; l < c; l++) {
              var d = e[l], h = d.range;
              t = t || d.forceMoveMarkers;
              for (var p = s; p < h.startLineNumber; p++) {
                p === s ? u.push(
                    this._lines[p - 1].text.substring(a - 1)) : (u.push(
                    "\n"), u.push(this._lines[p - 1].text));
              }
              if (h.startLineNumber === s ? u.push(
                  this._lines[h.startLineNumber - 1].text.substring(a - 1,
                      h.startColumn - 1)) : (u.push("\n"), u.push(
                  this._lines[h.startLineNumber - 1].text.substring(0,
                      h.startColumn - 1))), d.lines) {
                for (var f = 0,
                    g = d.lines.length; f < g; f++) {
                  0 !== f && u.push(
                      "\n"), u.push(d.lines[f]);
                }
              }
              s = d.range.endLineNumber, a = d.range.endColumn
            }
            return {
              sortIndex: 0,
              identifier: e[0].identifier,
              range: r,
              rangeLength: this.getValueLengthInRange(r),
              lines: u.join("").split("\n"),
              forceMoveMarkers: t,
              isAutoWhitespaceEdit: !1
            }
          }, t._sortOpsAscending = function (e, t) {
            var i = n.Range.compareRangesUsingEnds(e.range, t.range);
            return 0 === i ? e.sortIndex - t.sortIndex : i
          }, t._sortOpsDescending = function (e, t) {
            var i = n.Range.compareRangesUsingEnds(e.range, t.range);
            return 0 === i ? t.sortIndex - e.sortIndex : -i
          }, t.prototype.applyEdits = function (e) {
            try {
              this._eventEmitter.beginDeferredEmit();
              var t = this._acquireMarkersTracker();
              return this._applyEdits(t, e)
            } finally {
              this._releaseMarkersTracker(), this._eventEmitter.endDeferredEmit()
            }
          }, t.prototype._applyEdits = function (e, n) {
            if (0 === n.length) {
              return [];
            }
            for (var i = this._mightContainRTL,
                o = this._mightContainNonBasicASCII, r = !0, a = [], u = 0;
                u < n.length; u++) {
              y = n[u];
              r && y._isTracked && (r = !1);
              var l = this.validateRange(y.range);
              !i && y.text && (i = s.containsRTL(y.text)), !o && y.text
              && (o = !s.isBasicASCII(y.text)), a[u] = {
                sortIndex: u,
                identifier: y.identifier,
                range: l,
                rangeLength: this.getValueLengthInRange(l),
                lines: y.text ? y.text.split(/\r\n|\r|\n/) : null,
                forceMoveMarkers: y.forceMoveMarkers,
                isAutoWhitespaceEdit: y.isAutoWhitespaceEdit || !1
              }
            }
            a.sort(t._sortOpsAscending);
            for (var u = 0, c = a.length - 1; u < c; u++) {
              var d = a[u].range.getEndPosition();
              if (a[u + 1].range.getStartPosition().isBefore(
                  d)) {
                throw new Error("Overlapping ranges are not allowed!")
              }
            }
            r && (a = this._reduceOperations(a));
            for (var h = this.getEditableRange(), p = h.getStartPosition(),
                f = h.getEndPosition(), u = 0; u < a.length; u++) {
              var g = a[u].range;
              if (!p.isBeforeOrEqual(g.getStartPosition())
                  || !g.getEndPosition().isBeforeOrEqual(f)) {
                throw new Error(
                    "Editing outside of editable range not allowed!")
              }
            }
            for (var m = t._getInverseEditRanges(a), v = [], _ = [], u = 0;
                u < a.length; u++) {
              var y = a[u], C = m[u];
              if (v[u] = {
                identifier: y.identifier,
                range: C,
                text: this.getValueInRange(y.range),
                forceMoveMarkers: y.forceMoveMarkers
              }, this._options.trimAutoWhitespace && y.isAutoWhitespaceEdit
              && y.range.isEmpty()) {
                for (S = C.startLineNumber;
                    S <= C.endLineNumber; S++) {
                  var b = "";
                  S === C.startLineNumber && (b = this.getLineContent(
                      y.range.startLineNumber), -1
                  !== s.firstNonWhitespaceIndex(
                      b)) || _.push({lineNumber: S, oldContent: b})
                }
              }
            }
            if (this._mightContainRTL = i, this._mightContainNonBasicASCII = o, this._doApplyEdits(
                e,
                a), this._trimAutoWhitespaceLines = null, this._options.trimAutoWhitespace
            && _.length > 0) {
              _.sort(function (e, t) {
                return t.lineNumber - e.lineNumber
              }), this._trimAutoWhitespaceLines = [];
              for (var u = 0, w = _.length; u < w; u++) {
                var S = _[u].lineNumber;
                if (!(u > 0 && _[u - 1].lineNumber === S)) {
                  var E = _[u].oldContent, L = this.getLineContent(S);
                  0 !== L.length && L !== E && -1 === s.firstNonWhitespaceIndex(
                      L) && this._trimAutoWhitespaceLines.push(S)
                }
              }
            }
            return v
          }, t._getInverseEditRanges = function (e) {
            for (var t, i, o = [], r = null, s = 0, a = e.length; s < a; s++) {
              var u = e[s], l = void 0, c = void 0;
              r ? r.range.endLineNumber === u.range.startLineNumber
                      ? (l = t, c = i + (u.range.startColumn - r.range.endColumn))
                      : (l = t + (u.range.startLineNumber
                          - r.range.endLineNumber), c = u.range.startColumn)
                  : (l = u.range.startLineNumber, c = u.range.startColumn);
              var d = void 0;
              if (u.lines && u.lines.length > 0) {
                var h = u.lines.length, p = u.lines[0], f = u.lines[h - 1];
                d = 1 === h ? new n.Range(l, c, l, c + p.length) : new n.Range(
                    l, c, l + h - 1, f.length + 1)
              } else {
                d = new n.Range(l, c, l, c);
              }
              t = d.endLineNumber, i = d.endColumn, o.push(d), r = u
            }
            return o
          }, t.prototype._doApplyEdits = function (e, i) {
            var o = this, r = this._options.tabSize;
            i.sort(t._sortOpsDescending);
            for (var s = [], l = [], c = [], h = function () {
                  if (0 !== c.length) {
                    c.reverse();
                    for (var t = c[0].lineNumber, n = 0, i = 1, a = c.length; i < a;
                        i++) {
                      var u = c[i].lineNumber;
                      u !== t && (o._invalidateLine(t - 1), o._lines[t
                      - 1].applyEdits(e, c.slice(n, i), r), o._lineStarts
                      && o._lineStarts.changeValue(t - 1,
                          o._lines[t - 1].text.length + o._EOL.length), s.push(
                          new d.ModelRawLineChanged(t,
                              o._lines[t - 1].text)), t = u, n = i)
                    }
                    o._invalidateLine(t - 1), o._lines[t - 1].applyEdits(e,
                        c.slice(n, c.length), r), o._lineStarts
                    && o._lineStarts.changeValue(t - 1,
                        o._lines[t - 1].text.length + o._EOL.length), s.push(
                        new d.ModelRawLineChanged(t, o._lines[t - 1].text)), c = []
                  }
                }, p = i[i.length - 1].range.startLineNumber,
                f = i[0].range.endLineNumber + 1, g = 0, m = 0, v = i.length;
                m < v; m++) {
              var _ = i[m], y = _.range.startLineNumber,
                  C = _.range.startColumn, b = _.range.endLineNumber,
                  w = _.range.endColumn;
              if (y !== b || C !== w || _.lines && 0 !== _.lines.length) {
                var S = b - y, E = _.lines ? _.lines.length - 1 : 0,
                    L = Math.min(S, E);
                g += E - S;
                for (D = L; D >= 0; D--) {
                  var x = y + D;
                  !function (e) {
                    e.startColumn === e.endColumn && 0 === e.text.length
                    || c.push(e)
                  }({
                    lineNumber: x,
                    startColumn: x === y ? C : 1,
                    endColumn: x === b ? w : this.getLineMaxColumn(x),
                    text: _.lines ? _.lines[D] : "",
                    forceMoveMarkers: _.forceMoveMarkers
                  })
                }
                if (L < S) {
                  h();
                  var N = y + L, M = this.getLineMaxColumn(N),
                      T = this._lines[b - 1].split(e, w, !1, r);
                  this._invalidateLine(N - 1);
                  for (var k = b - N, I = [], D = 0; D < k; D++) {
                    var O = N + D, R = this._lines[O].getMarkers();
                    R && (I = I.concat(R))
                  }
                  this._lines.splice(N, k), this._lineStarts
                  && this._lineStarts.removeValues(N, k), this._lines[N
                  - 1].append(e, N, T, r), this._lineStarts
                  && this._lineStarts.changeValue(N - 1,
                      this._lines[N - 1].text.length + this._EOL.length);
                  for (var P = new u.Position(N, M), D = 0, A = I.length; D < A;
                      D++) {
                    I[D].updatePosition(e, P);
                  }
                  this._lines[N - 1].addMarkers(I), s.push(
                      new d.ModelRawLineChanged(N,
                          this._lines[N - 1].text)), s.push(
                      new d.ModelRawLinesDeleted(N + 1, N + k))
                }
                if (L < E) {
                  h();
                  var F = y + L, W = F === y ? C : 1;
                  _.lines && (W += _.lines[L].length);
                  var B = this._lines[F - 1].split(e, W, _.forceMoveMarkers, r);
                  this._lineStarts && this._lineStarts.changeValue(F - 1,
                      this._lines[F - 1].text.length
                      + this._EOL.length), s.push(new d.ModelRawLineChanged(F,
                      this._lines[F - 1].text)), this._invalidateLine(F - 1);
                  for (var V = [], H = [], z = new Uint32Array(E - L),
                      D = L + 1; D <= E; D++) {
                    V.push(
                        this._createModelLine(_.lines[D], r)), H.push(
                        _.lines[D]), z[D - L - 1] = _.lines[D].length
                        + this._EOL.length;
                  }
                  this._lines = a.arrayInsert(this._lines, y + L, V), H[H.length
                  - 1] += B.text, this._lineStarts
                  && this._lineStarts.insertValues(y + L, z), this._lines[y + E
                  - 1].append(e, y + E, B, r), this._lineStarts
                  && this._lineStarts.changeValue(y + E - 1,
                      this._lines[y + E - 1].text.length
                      + this._EOL.length), s.push(
                      new d.ModelRawLinesInserted(F + 1, y + E, H.join("\n")))
                }
                l.push({
                  range: new n.Range(y, C, b, w),
                  rangeLength: _.rangeLength,
                  text: _.lines ? _.lines.join(this.getEOL()) : ""
                })
              }
            }
            h(), f = Math.max(1, Math.min(this.getLineCount(), f + g)), 0 !== g
            && (f = this.getLineCount());
            for (var K = p; K <= f; K++) {
              this._lines[K - 1].updateLineNumber(e,
                  K);
            }
            if (0 !== s.length || 0 !== l.length) {
              this._increaseVersionId(), this._emitModelRawContentChangedEvent(
                  new d.ModelRawContentChangedEvent(s, this.getVersionId(),
                      this._isUndoing, this._isRedoing));
              var U = {
                changes: l,
                eol: this._EOL,
                versionId: this.getVersionId(),
                isUndoing: this._isUndoing,
                isRedoing: this._isRedoing,
                isFlush: !1
              };
              this._eventEmitter.emit(d.TextModelEventType.ModelContentChanged,
                  U)
            }
            this._resetIndentRanges()
          }, t.prototype._assertLineNumbersOK = function () {
            for (var e = 0, t = 0, n = this._lines.length; t < n; t++) {
              var i = t + 1, o = this._lines[t].getMarkers();
              if (null !== o) {
                for (var r = 0, s = o.length; r < s; r++) {
                  e++;
                  var a = o[r].id;
                  if (this._markerIdToMarker[a].position.lineNumber
                      !== i) {
                    throw new Error("Misplaced marker with id " + a)
                  }
                }
              }
            }
            if (Object.keys(this._markerIdToMarker).length
                !== e) {
              throw new Error("There are misplaced markers!")
            }
          }, t.prototype._undo = function () {
            this._isUndoing = !0;
            var e = this._commandManager.undo();
            return this._isUndoing = !1, e
                ? (this._overwriteAlternativeVersionId(
                    e.recordedVersionId), e.selections) : null
          }, t.prototype.undo = function () {
            try {
              return this._eventEmitter.beginDeferredEmit(), this._acquireMarkersTracker(), this._undo()
            } finally {
              this._releaseMarkersTracker(), this._eventEmitter.endDeferredEmit()
            }
          }, t.prototype._redo = function () {
            this._isRedoing = !0;
            var e = this._commandManager.redo();
            return this._isRedoing = !1, e
                ? (this._overwriteAlternativeVersionId(
                    e.recordedVersionId), e.selections) : null
          }, t.prototype.redo = function () {
            try {
              return this._eventEmitter.beginDeferredEmit(), this._acquireMarkersTracker(), this._redo()
            } finally {
              this._releaseMarkersTracker(), this._eventEmitter.endDeferredEmit()
            }
          }, t.prototype.setEditableRange = function (e) {
            var n = this;
            this._commandManager.clear(), (this._hasEditableRange || e)
            && this.changeDecorations(function (i) {
              n._hasEditableRange && (i.removeDecoration(
                  n._editableRangeId), n._editableRangeId = null, n._hasEditableRange = !1), e
              && (n._hasEditableRange = !0, n._editableRangeId = i.addDecoration(
                  e, t._DECORATION_OPTION))
            })
          }, t.prototype.hasEditableRange = function () {
            return this._hasEditableRange
          }, t.prototype.getEditableRange = function () {
            return this._hasEditableRange ? this.getDecorationRange(
                this._editableRangeId) : this.getFullModelRange()
          }, t._DECORATION_OPTION = r.ModelDecorationOptions.register(
              {stickiness: i.TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges}), t
        }(r.TextModelWithDecorations);
        t.EditableTextModel = h
      }), define(d[175], h([1, 0, 24, 326, 93, 101, 55]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = 0, u = function (e) {
          function t(t, i, o, r) {
            void 0 === r && (r = null);
            var s = e.call(this, t, i, o) || this;
            return a++, s.id = "$model" + a, s._associatedResource = void 0
            === r || null === r ? n.default.parse("inmemory://model/" + a)
                : r, s._attachedEditorCount = 0, s
          }

          return f(t, e), t.prototype.onDidChangeDecorations = function (e) {
            return this._eventEmitter.addListener(
                s.TextModelEventType.ModelDecorationsChanged, e)
          }, t.prototype.onDidChangeOptions = function (e) {
            return this._eventEmitter.addListener(
                s.TextModelEventType.ModelOptionsChanged, e)
          }, t.prototype.onWillDispose = function (e) {
            return this._eventEmitter.addListener(
                s.TextModelEventType.ModelDispose, e)
          }, t.prototype.onDidChangeLanguage = function (e) {
            return this._eventEmitter.addListener(
                s.TextModelEventType.ModelLanguageChanged, e)
          }, t.createFromString = function (e, n, i, s) {
            return void 0 === n
            && (n = o.TextModel.DEFAULT_CREATION_OPTIONS), void 0 === i
            && (i = null), void 0 === s && (s = null), new t(
                r.RawTextSource.fromString(e), n, i, s)
          }, t.prototype.destroy = function () {
            this.dispose()
          }, t.prototype.dispose = function () {
            this._isDisposing = !0, this._eventEmitter.emit(
                s.TextModelEventType.ModelDispose), e.prototype.dispose.call(
                this), this._isDisposing = !1
          }, t.prototype.onBeforeAttached = function () {
            this._attachedEditorCount++, this._warmUpTokens()
          }, t.prototype.onBeforeDetached = function () {
            this._attachedEditorCount--
          }, t.prototype._shouldAutoTokenize = function () {
            return this.isAttachedToEditor()
          }, t.prototype.isAttachedToEditor = function () {
            return this._attachedEditorCount > 0
          }, Object.defineProperty(t.prototype, "uri", {
            get: function () {
              return this._associatedResource
            }, enumerable: !0, configurable: !0
          }), t
        }(i.EditableTextModel);
        t.Model = u
      }), define(d[179], h([1, 0, 12, 22, 2, 104, 86, 57, 34]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";

        function l(e, t, n, i, o, r, s) {
          var a = e.createLineMapping(t, n, i, o, r);
          return null === a ? s ? p.INSTANCE : f.INSTANCE : new g(a, s)
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var c = function () {
          return function (e, t) {
            this.outputLineIndex = e, this.outputOffset = t
          }
        }();
        t.OutputPosition = c;
        var d = function () {
          function e(e) {
            this._lines = e
          }

          return e.prototype.convertViewPositionToModelPosition = function (e) {
            return this._lines.convertViewPositionToModelPosition(e.lineNumber,
                e.column)
          }, e.prototype.convertViewRangeToModelRange = function (e) {
            var t = this._lines.convertViewPositionToModelPosition(
                    e.startLineNumber, e.startColumn),
                n = this._lines.convertViewPositionToModelPosition(
                    e.endLineNumber, e.endColumn);
            return new o.Range(t.lineNumber, t.column, n.lineNumber, n.column)
          }, e.prototype.convertViewSelectionToModelSelection = function (e) {
            var t = this._lines.convertViewPositionToModelPosition(
                    e.selectionStartLineNumber, e.selectionStartColumn),
                n = this._lines.convertViewPositionToModelPosition(
                    e.positionLineNumber, e.positionColumn);
            return new i.Selection(t.lineNumber, t.column, n.lineNumber,
                n.column)
          }, e.prototype.validateViewPosition = function (e, t) {
            return this._lines.validateViewPosition(e.lineNumber, e.column, t)
          }, e.prototype.validateViewRange = function (e, t) {
            var n = this._lines.validateViewPosition(e.startLineNumber,
                    e.startColumn, t.getStartPosition()),
                i = this._lines.validateViewPosition(e.endLineNumber,
                    e.endColumn, t.getEndPosition());
            return new o.Range(n.lineNumber, n.column, i.lineNumber, i.column)
          }, e.prototype.convertModelPositionToViewPosition = function (e) {
            return this._lines.convertModelPositionToViewPosition(e.lineNumber,
                e.column)
          }, e.prototype.convertModelRangeToViewRange = function (e) {
            var t = this._lines.convertModelPositionToViewPosition(
                    e.startLineNumber, e.startColumn),
                n = this._lines.convertModelPositionToViewPosition(
                    e.endLineNumber, e.endColumn);
            return new o.Range(t.lineNumber, t.column, n.lineNumber, n.column)
          }, e.prototype.convertModelSelectionToViewSelection = function (e) {
            var t = this._lines.convertModelPositionToViewPosition(
                    e.selectionStartLineNumber, e.selectionStartColumn),
                n = this._lines.convertModelPositionToViewPosition(
                    e.positionLineNumber, e.positionColumn);
            return new i.Selection(t.lineNumber, t.column, n.lineNumber,
                n.column)
          }, e.prototype.modelPositionIsVisible = function (e) {
            return this._lines.modelPositionIsVisible(e.lineNumber, e.column)
          }, e
        }();
        t.CoordinatesConverter = d;
        var h = function () {
          function e(e, t, n, i, o, r) {
            this.model = e, this._validModelVersionId = -1, this.tabSize = n, this.wrappingColumn = i, this.columnsForFullWidthChar = o, this.wrappingIndent = r, this.linePositionMapperFactory = t, this._constructLines(
                !0)
          }

          return e.prototype.dispose = function () {
            this.hiddenAreasIds = this.model.deltaDecorations(
                this.hiddenAreasIds, [])
          }, e.prototype.createCoordinatesConverter = function () {
            return new d(this)
          }, e.prototype._ensureValidState = function () {
            if (this.model.getVersionId()
                !== this._validModelVersionId) {
              throw new Error(
                  "SplitLinesCollection: attempt to access a 'newer' model")
            }
          }, e.prototype._constructLines = function (e) {
            var t = this;
            this.lines = [], e && (this.hiddenAreasIds = []);
            for (var n = this.model.getLinesContent(), i = n.length,
                s = new Uint32Array(i),
                a = this.hiddenAreasIds.map(function (e) {
                  return t.model.getDecorationRange(e)
                }).sort(o.Range.compareRangesUsingStarts), u = 1, c = 0, d = -1,
                h = d + 1 < a.length ? c + 1 : i + 2, p = 0; p < i; p++) {
              var f = p + 1;
              f === h
              && (u = a[++d].startLineNumber, c = a[d].endLineNumber, h = d + 1
              < a.length ? c + 1 : i + 2);
              var g = f >= u && f <= c,
                  m = l(this.linePositionMapperFactory, n[p], this.tabSize,
                      this.wrappingColumn, this.columnsForFullWidthChar,
                      this.wrappingIndent, !g);
              s[p] = m.getViewLineCount(), this.lines[p] = m
            }
            this._validModelVersionId = this.model.getVersionId(), this.prefixSumComputer = new r.PrefixSumComputerWithCache(
                s)
          }, e.prototype.getHiddenAreas = function () {
            var e = this;
            return this.hiddenAreasIds.map(function (t) {
              return e.model.getDecorationRange(t)
            }).sort(o.Range.compareRangesUsingStarts)
          }, e.prototype._reduceRanges = function (e) {
            var t = this;
            if (0 === e.length) {
              return [];
            }
            for (var n = e.map(function (e) {
                  return t.model.validateRange(e)
                }).sort(o.Range.compareRangesUsingStarts), i = [],
                r = n[0].startLineNumber, s = n[0].endLineNumber, a = 1,
                u = n.length; a < u; a++) {
              var l = n[a];
              l.startLineNumber > s + 1 ? (i.push(new o.Range(r, 1, s,
                      1)), r = l.startLineNumber, s = l.endLineNumber)
                  : l.endLineNumber > s && (s = l.endLineNumber)
            }
            return i.push(new o.Range(r, 1, s, 1)), i
          }, e.prototype.setHiddenAreas = function (e) {
            var t = this, n = this._reduceRanges(e),
                i = this.hiddenAreasIds.map(function (e) {
                  return t.model.getDecorationRange(e)
                }).sort(o.Range.compareRangesUsingStarts);
            if (n.length === i.length) {
              for (var r = !1, s = 0; s < n.length; s++) {
                if (!n[s].equalsRange(
                    i[s])) {
                  r = !0;
                  break
                }
              }
              if (!r) {
                return !1
              }
            }
            for (var a = [], s = 0; s < n.length; s++) {
              a.push(
                  {range: n[s], options: u.ModelDecorationOptions.EMPTY});
            }
            this.hiddenAreasIds = this.model.deltaDecorations(
                this.hiddenAreasIds, a);
            for (var l = n, c = 1, d = 0, h = -1,
                p = h + 1 < l.length ? d + 1 : this.lines.length + 2, s = 0;
                s < this.lines.length; s++) {
              var f = s + 1;
              f === p
              && (c = l[++h].startLineNumber, d = l[h].endLineNumber, p = h + 1
              < l.length ? d + 1 : this.lines.length + 2);
              var g = !1;
              if (f >= c && f <= d ? this.lines[s].isVisible()
                  && (this.lines[s] = this.lines[s].setVisible(!1), g = !0)
                  : this.lines[s].isVisible()
                  || (this.lines[s] = this.lines[s].setVisible(
                      !0), g = !0), g) {
                var m = this.lines[s].getViewLineCount();
                this.prefixSumComputer.changeValue(s, m)
              }
            }
            return !0
          }, e.prototype.modelPositionIsVisible = function (e, t) {
            return !(e < 1 || e > this.lines.length) && this.lines[e
            - 1].isVisible()
          }, e.prototype.setTabSize = function (e) {
            return this.tabSize !== e
                && (this.tabSize = e, this._constructLines(!1), !0)
          }, e.prototype.setWrappingSettings = function (e, t, n) {
            return (this.wrappingIndent !== e || this.wrappingColumn !== t
                    || this.columnsForFullWidthChar !== n)
                && (this.wrappingIndent = e, this.wrappingColumn = t, this.columnsForFullWidthChar = n, this._constructLines(
                    !1), !0)
          }, e.prototype.onModelFlushed = function () {
            this._constructLines(!0)
          }, e.prototype.onModelLinesDeleted = function (e, t, n) {
            if (e <= this._validModelVersionId) {
              return null;
            }
            var i = 1 === t ? 1 : this.prefixSumComputer.getAccumulatedValue(
                    t - 2) + 1,
                o = this.prefixSumComputer.getAccumulatedValue(n - 1);
            return this.lines.splice(t - 1,
                n - t + 1), this.prefixSumComputer.removeValues(t - 1,
                n - t + 1), new a.ViewLinesDeletedEvent(i, o)
          }, e.prototype.onModelLinesInserted = function (e, t, i, o) {
            if (e <= this._validModelVersionId) {
              return null;
            }
            for (var r = this.getHiddenAreas(), s = !1,
                u = new n.Position(t, 1), c = 0; c < r.length;
                c++) {
              if (r[c].containsPosition(u)) {
                s = !0;
                break
              }
            }
            for (var d = 1 === t ? 1
                    : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1, h = 0,
                p = [], f = new Uint32Array(o.length), c = 0, g = o.length;
                c < g; c++) {
              var m = l(this.linePositionMapperFactory, o[c], this.tabSize,
                  this.wrappingColumn, this.columnsForFullWidthChar,
                  this.wrappingIndent, !s);
              p.push(m);
              var v = m.getViewLineCount();
              h += v, f[c] = v
            }
            return this.lines = this.lines.slice(0, t - 1).concat(p).concat(
                this.lines.slice(t - 1)), this.prefixSumComputer.insertValues(
                t - 1, f), new a.ViewLinesInsertedEvent(d, d + h - 1)
          }, e.prototype.onModelLineChanged = function (e, t, n) {
            if (e <= this._validModelVersionId) {
              return [!1, null, null, null];
            }
            var i = t - 1, o = this.lines[i].getViewLineCount(),
                r = this.lines[i].isVisible(),
                s = l(this.linePositionMapperFactory, n, this.tabSize,
                    this.wrappingColumn, this.columnsForFullWidthChar,
                    this.wrappingIndent, r);
            this.lines[i] = s;
            var u = this.lines[i].getViewLineCount(), c = !1, d = 0, h = -1,
                p = 0, f = -1, g = 0, m = -1;
            return o > u ? (m = (g = (h = (d = 1 === t ? 1
                    : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1) + u
                - 1) + 1) + (o - u) - 1, c = !0) : o < u ? (f = (p = (h = (d = 1
                === t ? 1 : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1)
                + o - 1) + 1) + (u - o) - 1, c = !0) : h = (d = 1 === t ? 1
                    : this.prefixSumComputer.getAccumulatedValue(t - 2) + 1) + u
                - 1, this.prefixSumComputer.changeValue(i, u), [c,
              d <= h ? new a.ViewLinesChangedEvent(d, h) : null,
              p <= f ? new a.ViewLinesInsertedEvent(p, f) : null,
              g <= m ? new a.ViewLinesDeletedEvent(g, m) : null]
          }, e.prototype.acceptVersionId = function (e) {
            this._validModelVersionId = e
          }, e.prototype.getViewLineCount = function () {
            return this._ensureValidState(), this.prefixSumComputer.getTotalValue()
          }, e.prototype._toValidViewLineNumber = function (e) {
            if (e < 1) {
              return 1;
            }
            var t = this.getViewLineCount();
            return e > t ? t : e
          }, e.prototype.warmUpLookupCache = function (e, t) {
            this.prefixSumComputer.warmUpCache(e - 1, t - 1)
          }, e.prototype.getViewLineIndentGuide = function (e) {
            this._ensureValidState(), e = this._toValidViewLineNumber(e);
            var t = this.prefixSumComputer.getIndexOf(e - 1);
            return this.model.getLineIndentGuide(t.index + 1)
          }, e.prototype.getViewLineContent = function (e) {
            this._ensureValidState(), e = this._toValidViewLineNumber(e);
            var t = this.prefixSumComputer.getIndexOf(e - 1), n = t.index,
                i = t.remainder;
            return this.lines[n].getViewLineContent(this.model, n + 1, i)
          }, e.prototype.getViewLineMinColumn = function (e) {
            this._ensureValidState(), e = this._toValidViewLineNumber(e);
            var t = this.prefixSumComputer.getIndexOf(e - 1), n = t.index,
                i = t.remainder;
            return this.lines[n].getViewLineMinColumn(this.model, n + 1, i)
          }, e.prototype.getViewLineMaxColumn = function (e) {
            this._ensureValidState(), e = this._toValidViewLineNumber(e);
            var t = this.prefixSumComputer.getIndexOf(e - 1), n = t.index,
                i = t.remainder;
            return this.lines[n].getViewLineMaxColumn(this.model, n + 1, i)
          }, e.prototype.getViewLineData = function (e) {
            this._ensureValidState(), e = this._toValidViewLineNumber(e);
            var t = this.prefixSumComputer.getIndexOf(e - 1), n = t.index,
                i = t.remainder;
            return this.lines[n].getViewLineData(this.model, n + 1, i)
          }, e.prototype.getViewLinesData = function (e, t, n) {
            this._ensureValidState(), e = this._toValidViewLineNumber(
                e), t = this._toValidViewLineNumber(t);
            for (var i = this.prefixSumComputer.getIndexOf(e - 1), o = e,
                r = i.index, s = i.remainder, a = [], u = r,
                l = this.model.getLineCount(); u < l; u++) {
              var c = this.lines[u];
              if (c.isVisible()) {
                var d = u === r ? s : 0, h = c.getViewLineCount() - d, p = !1;
                o + h > t && (p = !0, h = t - o + 1);
                var f = d + h;
                if (c.getViewLinesData(this.model, u + 1, d, f, o - e, n,
                    a), o += h, p) {
                  break
                }
              }
            }
            return a
          }, e.prototype.validateViewPosition = function (e, t, i) {
            this._ensureValidState(), e = this._toValidViewLineNumber(e);
            var o = this.prefixSumComputer.getIndexOf(e - 1), r = o.index,
                s = o.remainder, a = this.lines[r],
                u = a.getViewLineMinColumn(this.model, r + 1, s),
                l = a.getViewLineMaxColumn(this.model, r + 1, s);
            t < u && (t = u), t > l && (t = l);
            var c = a.getModelColumnOfViewPosition(s, t);
            return this.model.validatePosition(new n.Position(r + 1, c)).equals(
                i) ? new n.Position(e, t)
                : this.convertModelPositionToViewPosition(i.lineNumber,
                    i.column)
          }, e.prototype.convertViewPositionToModelPosition = function (e, t) {
            this._ensureValidState(), e = this._toValidViewLineNumber(e);
            var i = this.prefixSumComputer.getIndexOf(e - 1), o = i.index,
                r = i.remainder,
                s = this.lines[o].getModelColumnOfViewPosition(r, t);
            return this.model.validatePosition(new n.Position(o + 1, s))
          }, e.prototype.convertModelPositionToViewPosition = function (e, t) {
            this._ensureValidState();
            for (var i = this.model.validatePosition(new n.Position(e, t)),
                o = i.lineNumber, r = i.column, s = o - 1, a = !1;
                s > 0 && !this.lines[s].isVisible();) {
              s--, a = !0;
            }
            if (0 === s && !this.lines[s].isVisible()) {
              return new n.Position(1,
                  1);
            }
            var u = 1 + (0 === s ? 0
                : this.prefixSumComputer.getAccumulatedValue(s - 1));
            return a ? this.lines[s].getViewPositionOfModelPosition(u,
                this.model.getLineMaxColumn(s + 1)) : this.lines[o
            - 1].getViewPositionOfModelPosition(u, r)
          }, e
        }();
        t.SplitLinesCollection = h;
        var p = function () {
          function e() {
          }

          return e.prototype.isVisible = function () {
            return !0
          }, e.prototype.setVisible = function (e) {
            return e ? this : f.INSTANCE
          }, e.prototype.getViewLineCount = function () {
            return 1
          }, e.prototype.getViewLineContent = function (e, t, n) {
            return e.getLineContent(t)
          }, e.prototype.getViewLineMinColumn = function (e, t, n) {
            return e.getLineMinColumn(t)
          }, e.prototype.getViewLineMaxColumn = function (e, t, n) {
            return e.getLineMaxColumn(t)
          }, e.prototype.getViewLineData = function (e, t, n) {
            var i = e.getLineTokens(t), o = i.getLineContent();
            return new s.ViewLineData(o, 1, o.length + 1, i.inflate())
          }, e.prototype.getViewLinesData = function (e, t, n, i, o, r, s) {
            r[o] ? s[o] = this.getViewLineData(e, t, 0) : s[o] = null
          }, e.prototype.getModelColumnOfViewPosition = function (e, t) {
            return t
          }, e.prototype.getViewPositionOfModelPosition = function (e, t) {
            return new n.Position(e, t)
          }, e.INSTANCE = new e, e
        }(), f = function () {
          function e() {
          }

          return e.prototype.isVisible = function () {
            return !1
          }, e.prototype.setVisible = function (e) {
            return e ? p.INSTANCE : this
          }, e.prototype.getViewLineCount = function () {
            return 0
          }, e.prototype.getViewLineContent = function (e, t, n) {
            throw new Error("Not supported")
          }, e.prototype.getViewLineMinColumn = function (e, t, n) {
            throw new Error("Not supported")
          }, e.prototype.getViewLineMaxColumn = function (e, t, n) {
            throw new Error("Not supported")
          }, e.prototype.getViewLineData = function (e, t, n) {
            throw new Error("Not supported")
          }, e.prototype.getViewLinesData = function (e, t, n, i, o, r, s) {
            throw new Error("Not supported")
          }, e.prototype.getModelColumnOfViewPosition = function (e, t) {
            throw new Error("Not supported")
          }, e.prototype.getViewPositionOfModelPosition = function (e, t) {
            throw new Error("Not supported")
          }, e.INSTANCE = new e, e
        }(), g = function () {
          function e(e, t) {
            this.positionMapper = e, this.wrappedIndent = this.positionMapper.getWrappedLinesIndent(), this.wrappedIndentLength = this.wrappedIndent.length, this.outputLineCount = this.positionMapper.getOutputLineCount(), this._isVisible = t
          }

          return e.prototype.isVisible = function () {
            return this._isVisible
          }, e.prototype.setVisible = function (e) {
            return this._isVisible = e, this
          }, e.prototype.getViewLineCount = function () {
            return this._isVisible ? this.outputLineCount : 0
          }, e.prototype.getInputStartOffsetOfOutputLineIndex = function (e) {
            return this.positionMapper.getInputOffsetOfOutputPosition(e, 0)
          }, e.prototype.getInputEndOffsetOfOutputLineIndex = function (e, t,
              n) {
            return n + 1 === this.outputLineCount ? e.getLineMaxColumn(t) - 1
                : this.positionMapper.getInputOffsetOfOutputPosition(n + 1, 0)
          }, e.prototype.getViewLineContent = function (e, t, n) {
            if (!this._isVisible) {
              throw new Error("Not supported");
            }
            var i = this.getInputStartOffsetOfOutputLineIndex(n),
                o = this.getInputEndOffsetOfOutputLineIndex(e, t, n),
                r = e.getLineContent(t).substring(i, o);
            return n > 0 && (r = this.wrappedIndent + r), r
          }, e.prototype.getViewLineMinColumn = function (e, t, n) {
            if (!this._isVisible) {
              throw new Error("Not supported");
            }
            return n > 0 ? this.wrappedIndentLength + 1 : 1
          }, e.prototype.getViewLineMaxColumn = function (e, t, n) {
            if (!this._isVisible) {
              throw new Error("Not supported");
            }
            return this.getViewLineContent(e, t, n).length + 1
          }, e.prototype.getViewLineData = function (e, t, n) {
            if (!this._isVisible) {
              throw new Error("Not supported");
            }
            var i = this.getInputStartOffsetOfOutputLineIndex(n),
                o = this.getInputEndOffsetOfOutputLineIndex(e, t, n),
                r = e.getLineContent(t).substring(i, o);
            n > 0 && (r = this.wrappedIndent + r);
            var a = n > 0 ? this.wrappedIndentLength + 1 : 1, u = r.length + 1,
                l = 0;
            n > 0 && (l = this.wrappedIndentLength);
            var c = e.getLineTokens(t);
            return new s.ViewLineData(r, a, u, c.sliceAndInflate(i, o, l))
          }, e.prototype.getViewLinesData = function (e, t, n, i, o, r, s) {
            if (!this._isVisible) {
              throw new Error("Not supported");
            }
            for (var a = n; a < i; a++) {
              var u = o + a - n;
              r[u] ? s[u] = this.getViewLineData(e, t, a) : s[u] = null
            }
          }, e.prototype.getModelColumnOfViewPosition = function (e, t) {
            if (!this._isVisible) {
              throw new Error("Not supported");
            }
            var n = t - 1;
            return e > 0 && (n < this.wrappedIndentLength ? n = 0
                : n -= this.wrappedIndentLength), this.positionMapper.getInputOffsetOfOutputPosition(
                e, n) + 1
          }, e.prototype.getViewPositionOfModelPosition = function (e, t) {
            if (!this._isVisible) {
              throw new Error("Not supported");
            }
            var i = this.positionMapper.getOutputPositionOfInputOffset(t - 1),
                o = i.outputLineIndex, r = i.outputOffset + 1;
            return o > 0 && (r += this.wrappedIndentLength), new n.Position(
                e + o, r)
          }, e
        }();
        t.SplitLine = g;
        var m = function () {
          function e(e) {
            this._lines = e
          }

          return e.prototype._validPosition = function (e) {
            return this._lines.model.validatePosition(e)
          }, e.prototype._validRange = function (e) {
            return this._lines.model.validateRange(e)
          }, e.prototype._validSelection = function (e) {
            var t = this._validPosition(
                new n.Position(e.selectionStartLineNumber,
                    e.selectionStartColumn)), o = this._validPosition(
                new n.Position(e.positionLineNumber, e.positionColumn));
            return new i.Selection(t.lineNumber, t.column, o.lineNumber,
                o.column)
          }, e.prototype.convertViewPositionToModelPosition = function (e) {
            return this._validPosition(e)
          }, e.prototype.convertViewRangeToModelRange = function (e) {
            return this._validRange(e)
          }, e.prototype.convertViewSelectionToModelSelection = function (e) {
            return this._validSelection(e)
          }, e.prototype.validateViewPosition = function (e, t) {
            return this._validPosition(t)
          }, e.prototype.validateViewRange = function (e, t) {
            return this._validRange(t)
          }, e.prototype.convertModelPositionToViewPosition = function (e) {
            return this._validPosition(e)
          }, e.prototype.convertModelRangeToViewRange = function (e) {
            return this._validRange(e)
          }, e.prototype.convertModelSelectionToViewSelection = function (e) {
            return this._validSelection(e)
          }, e.prototype.modelPositionIsVisible = function (e) {
            var t = this._lines.model.getLineCount();
            return !(e.lineNumber < 1 || e.lineNumber > t)
          }, e
        }();
        t.IdentityCoordinatesConverter = m;
        var v = function () {
          function e(e) {
            this.model = e
          }

          return e.prototype.dispose = function () {
          }, e.prototype.createCoordinatesConverter = function () {
            return new m(this)
          }, e.prototype.setHiddenAreas = function (e) {
            return !1
          }, e.prototype.setTabSize = function (e) {
            return !1
          }, e.prototype.setWrappingSettings = function (e, t, n) {
            return !1
          }, e.prototype.onModelFlushed = function () {
          }, e.prototype.onModelLinesDeleted = function (e, t, n) {
            return new a.ViewLinesDeletedEvent(t, n)
          }, e.prototype.onModelLinesInserted = function (e, t, n, i) {
            return new a.ViewLinesInsertedEvent(t, n)
          }, e.prototype.onModelLineChanged = function (e, t, n) {
            return [!1, new a.ViewLinesChangedEvent(t, t), null, null]
          }, e.prototype.acceptVersionId = function (e) {
          }, e.prototype.getViewLineCount = function () {
            return this.model.getLineCount()
          }, e.prototype.warmUpLookupCache = function (e, t) {
          }, e.prototype.getViewLineIndentGuide = function (e) {
            return 0
          }, e.prototype.getViewLineContent = function (e) {
            return this.model.getLineContent(e)
          }, e.prototype.getViewLineMinColumn = function (e) {
            return this.model.getLineMinColumn(e)
          }, e.prototype.getViewLineMaxColumn = function (e) {
            return this.model.getLineMaxColumn(e)
          }, e.prototype.getViewLineData = function (e) {
            var t = this.model.getLineTokens(e), n = t.getLineContent();
            return new s.ViewLineData(n, 1, n.length + 1, t.inflate())
          }, e.prototype.getViewLinesData = function (e, t, n) {
            var i = this.model.getLineCount();
            e = Math.min(Math.max(1, e), i), t = Math.min(Math.max(1, t), i);
            for (var o = [], r = e; r <= t; r++) {
              var s = r - e;
              n[s] || (o[s] = null), o[s] = this.getViewLineData(r)
            }
            return o
          }, e
        }();
        t.IdentityLinesCollection = v
      }), define(d[329], h([1, 0, 9, 104, 179, 89, 96, 49]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var u;
        !function (e) {
          e[e.NONE = 0] = "NONE", e[e.BREAK_BEFORE = 1] = "BREAK_BEFORE", e[e.BREAK_AFTER = 2] = "BREAK_AFTER", e[e.BREAK_OBTRUSIVE = 3] = "BREAK_OBTRUSIVE", e[e.BREAK_IDEOGRAPHIC = 4] = "BREAK_IDEOGRAPHIC"
        }(u || (u = {}));
        var l = function (e) {
          function t(t, n, i) {
            for (var o = e.call(this, 0) || this, r = 0; r < t.length;
                r++) {
              o.set(t.charCodeAt(r), 1);
            }
            for (r = 0; r < n.length; r++) {
              o.set(n.charCodeAt(r), 2);
            }
            for (r = 0; r < i.length; r++) {
              o.set(i.charCodeAt(r), 3);
            }
            return o
          }

          return f(t, e), t.prototype.get = function (t) {
            return t >= 12352 && t <= 12543 || t >= 13312 && t <= 19903 || t
            >= 19968 && t <= 40959 ? 4 : e.prototype.get.call(this, t)
          }, t
        }(r.CharacterClassifier), c = function () {
          function e(e, t, n) {
            this.classifier = new l(e, t, n)
          }

          return e.nextVisibleColumn = function (e, t, n, i) {
            return e = +e, t = +t, i = +i, n ? e + (t - e % t) : e + i
          }, e.prototype.createLineMapping = function (t, o, r, u, l) {
            if (-1 === r) {
              return null;
            }
            o = +o, r = +r, u = +u;
            var c = 0, h = "", p = -1;
            if ((l = +l) !== a.WrappingIndent.None && -1
                !== (p = n.firstNonWhitespaceIndex(t))) {
              h = t.substring(0, p);
              for (E = 0; E < p; E++) {
                c = e.nextVisibleColumn(c, o,
                    9 === t.charCodeAt(E), 1);
              }
              l === a.WrappingIndent.Indent
              && (h += "\t", c = e.nextVisibleColumn(c, o, !0, 1)), c > .5 * r
              && (h = "", c = 0)
            }
            for (var f = this.classifier, g = 0, m = [], v = 0, _ = 0, y = -1,
                C = 0, b = -1, w = 0, S = t.length, E = 0; E < S; E++) {
              var L = t.charCodeAt(E), x = 9 === L, N = f.get(L);
              if (1 === N && (y = E, C = c), 4 === N && E > 0) {
                var M = t.charCodeAt(E - 1);
                1 !== f.get(M) && (y = E, C = c)
              }
              var T = 1;
              if (n.isFullWidthCharacter(L)
              && (T = u), (_ = e.nextVisibleColumn(_, o, x, T)) > r && 0
              !== E) {
                var k = void 0, I = void 0;
                -1 !== y && C <= r ? (k = y, I = C) : -1 !== b && w <= r
                    ? (k = b, I = w) : (k = E, I = c), m[v++] = k
                    - g, g = k, _ = e.nextVisibleColumn(I, o, x,
                    T), y = -1, C = 0, b = -1, w = 0
              }
              if (-1 !== y && (C = e.nextVisibleColumn(C, o, x, T)), -1 !== b
              && (w = e.nextVisibleColumn(w, o, x, T)), 2 === N && (l
                  === a.WrappingIndent.None || E >= p) && (y = E + 1, C = c), 4
              === N && E < S - 1) {
                var D = t.charCodeAt(E + 1);
                2 !== f.get(D) && (y = E + 1, C = c)
              }
              3 === N && (b = E + 1, w = c)
            }
            return 0 === v ? null : (m[v++] = S - g, new d(
                new i.PrefixSumComputer(s.toUint32Array(m)), h))
          }, e
        }();
        t.CharacterHardWrappingLineMapperFactory = c;
        var d = function () {
          function e(e, t) {
            this._prefixSums = e, this._wrappedLinesIndent = t
          }

          return e.prototype.getOutputLineCount = function () {
            return this._prefixSums.getCount()
          }, e.prototype.getWrappedLinesIndent = function () {
            return this._wrappedLinesIndent
          }, e.prototype.getInputOffsetOfOutputPosition = function (e, t) {
            return 0 === e ? t : this._prefixSums.getAccumulatedValue(e - 1) + t
          }, e.prototype.getOutputPositionOfInputOffset = function (e) {
            var t = this._prefixSums.getIndexOf(e);
            return new o.OutputPosition(t.index, t.remainder)
          }, e
        }();
        t.CharacterHardWrappingLineMapping = d
      }), define(d[330],
      h([1, 0, 9, 12, 2, 20, 17, 122, 240, 86, 179, 57, 111, 55, 329, 239]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var v = !0, _ = function (e) {
          function t(t, n, i) {
            var o = e.call(this) || this;
            if (o.editorId = t, o.configuration = n, o.model = i, v
            && o.model.isTooLargeForTokenization()) {
              o.lines = new c.IdentityLinesCollection(
                  o.model);
            } else {
              var r = o.configuration.editor,
                  s = new g.CharacterHardWrappingLineMapperFactory(
                      r.wrappingInfo.wordWrapBreakBeforeCharacters,
                      r.wrappingInfo.wordWrapBreakAfterCharacters,
                      r.wrappingInfo.wordWrapBreakObtrusiveCharacters);
              o.lines = new c.SplitLinesCollection(o.model, s,
                  o.model.getOptions().tabSize, r.wrappingInfo.wrappingColumn,
                  r.fontInfo.typicalFullwidthCharacterWidth
                  / r.fontInfo.typicalHalfwidthCharacterWidth,
                  r.wrappingInfo.wrappingIndent)
            }
            return o.coordinatesConverter = o.lines.createCoordinatesConverter(), o.viewLayout = o._register(
                new m.ViewLayout(o.configuration,
                    o.getLineCount())), o._register(
                o.viewLayout.onDidScroll(function (e) {
                  o._emit([new d.ViewScrollChangedEvent(e)])
                })), o._isDisposing = !1, o._centeredViewLine = -1, o.decorations = new u.ViewModelDecorations(
                o.editorId, o.model, o.configuration,
                o.coordinatesConverter), o._register(
                o.model.addBulkListener(function (e) {
                  if (!o._isDisposing) {
                    var t = new l.ViewEventsCollector;
                    o._onModelEvents(t, e), o._emit(t.finalize())
                  }
                })), o._register(o.configuration.onDidChange(function (e) {
              var t = new l.ViewEventsCollector;
              o._onConfigurationChanged(t, e), o._emit(t.finalize())
            })), o._register(
                h.MinimapTokensColorTracker.getInstance().onDidChange(
                    function () {
                      o._emit([new d.ViewTokensColorsChangedEvent])
                    })), o
          }

          return f(t, e), t.prototype.dispose = function () {
            this._isDisposing = !0, this.decorations.dispose(), this.lines.dispose(), e.prototype.dispose.call(
                this)
          }, t.prototype._onConfigurationChanged = function (e, t) {
            var n = this.getCenteredRangeInViewport(), i = !1,
                o = this.configuration.editor;
            if (this.lines.setWrappingSettings(o.wrappingInfo.wrappingIndent,
                o.wrappingInfo.wrappingColumn,
                o.fontInfo.typicalFullwidthCharacterWidth
                / o.fontInfo.typicalHalfwidthCharacterWidth) && (e.emit(
                new d.ViewFlushedEvent), e.emit(
                new d.ViewLineMappingChangedEvent), e.emit(
                new d.ViewDecorationsChangedEvent), this.decorations.onLineMappingChanged(), this.viewLayout.onFlushed(
                this.getLineCount()), 0 !== this.viewLayout.getScrollTop()
            && (i = !0)), t.readOnly && (this.decorations.reset(), e.emit(
                new d.ViewDecorationsChangedEvent)), e.emit(
                new d.ViewConfigurationChangedEvent(
                    t)), this.viewLayout.onConfigurationChanged(t), i && n) {
              var r = this.coordinatesConverter.convertModelRangeToViewRange(n);
              e.emit(new d.ViewRevealRangeRequestEvent(r, 1, !1))
            }
          }, t.prototype._onModelEvents = function (e, t) {
            for (var n = 0, o = t.length; n < o; n++) {
              if (t[n].type
                  === p.TextModelEventType.ModelRawContentChanged2) {
                this._centeredViewLine = -1, this.configuration.setMaxLineNumber(
                    this.model.getLineCount());
                break
              }
            }
            for (var r = !1, s = !1, n = 0, o = t.length; n < o; n++) {
              var a = t[n], u = a.type, l = a.data;
              switch (u) {
                case p.TextModelEventType.ModelRawContentChanged2:
                  for (var c = (x = l).changes, h = x.versionId, f = 0,
                      g = c.length; f < g; f++) {
                    var m = c[f];
                    switch (m.changeType) {
                      case 1:
                        this.lines.onModelFlushed(), e.emit(
                            new d.ViewFlushedEvent), this.decorations.reset(), this.viewLayout.onFlushed(
                            this.getLineCount()), r = !0;
                        break;
                      case 3:
                        null !== (b = this.lines.onModelLinesDeleted(h,
                            m.fromLineNumber, m.toLineNumber)) && (e.emit(
                            b), this.viewLayout.onLinesDeleted(b.fromLineNumber,
                            b.toLineNumber)), r = !0;
                        break;
                      case 4:
                        null !== (C = this.lines.onModelLinesInserted(h,
                            m.fromLineNumber, m.toLineNumber,
                            m.detail.split("\n"))) && (e.emit(
                            C), this.viewLayout.onLinesInserted(
                            C.fromLineNumber, C.toLineNumber)), r = !0;
                        break;
                      case 2:
                        var v = this.lines.onModelLineChanged(h, m.lineNumber,
                            m.detail), _ = v[0], y = v[1], C = v[2], b = v[3];
                        s = _, y && e.emit(y), C && (e.emit(
                            C), this.viewLayout.onLinesInserted(
                            C.fromLineNumber, C.toLineNumber)), b && (e.emit(
                            b), this.viewLayout.onLinesDeleted(b.fromLineNumber,
                            b.toLineNumber))
                    }
                  }
                  this.lines.acceptVersionId(h);
                  break;
                case p.TextModelEventType.ModelTokensChanged:
                  for (var w = [], f = 0, g = (x = l).ranges.length; f < g;
                      f++) {
                    var S = x.ranges[f],
                        E = this.coordinatesConverter.convertModelPositionToViewPosition(
                            new i.Position(S.fromLineNumber, 1)).lineNumber,
                        L = this.coordinatesConverter.convertModelPositionToViewPosition(
                            new i.Position(S.toLineNumber,
                                this.model.getLineMaxColumn(
                                    S.toLineNumber))).lineNumber;
                    w[f] = {fromLineNumber: E, toLineNumber: L}
                  }
                  e.emit(new d.ViewTokensChangedEvent(w));
                  break;
                case p.TextModelEventType.ModelLanguageChanged:
                case p.TextModelEventType.ModelContentChanged:
                  break;
                case p.TextModelEventType.ModelOptionsChanged:
                  this.lines.setTabSize(this.model.getOptions().tabSize)
                  && (e.emit(new d.ViewFlushedEvent), e.emit(
                      new d.ViewLineMappingChangedEvent), e.emit(
                      new d.ViewDecorationsChangedEvent), this.decorations.onLineMappingChanged(), this.viewLayout.onFlushed(
                      this.getLineCount()));
                  break;
                case p.TextModelEventType.ModelDecorationsChanged:
                  var x = l;
                  this.decorations.onModelDecorationsChanged(x), e.emit(
                      new d.ViewDecorationsChangedEvent);
                  break;
                case p.TextModelEventType.ModelDispose:
                  break;
                default:
                  console.info("View received unknown event: "), console.info(u,
                      l)
              }
            }
            !r && s && (e.emit(new d.ViewLineMappingChangedEvent), e.emit(
                new d.ViewDecorationsChangedEvent), this.decorations.onLineMappingChanged())
          }, t.prototype.setHiddenAreas = function (e) {
            var t = new l.ViewEventsCollector;
            this.lines.setHiddenAreas(e) && (t.emit(
                new d.ViewFlushedEvent), t.emit(
                new d.ViewLineMappingChangedEvent), t.emit(
                new d.ViewDecorationsChangedEvent), this.decorations.onLineMappingChanged(), this.viewLayout.onFlushed(
                this.getLineCount())), this._emit(t.finalize())
          }, t.prototype.getCenteredRangeInViewport = function () {
            if (-1 === this._centeredViewLine) {
              return null;
            }
            var e = this._centeredViewLine,
                t = new o.Range(e, this.getLineMinColumn(e), e,
                    this.getLineMaxColumn(e));
            return this.coordinatesConverter.convertViewRangeToModelRange(t)
          }, t.prototype.getCompletelyVisibleViewRange = function () {
            var e = this.viewLayout.getLinesViewportData(),
                t = e.completelyVisibleStartLineNumber,
                n = e.completelyVisibleEndLineNumber;
            return new o.Range(t, this.getLineMinColumn(t), n,
                this.getLineMaxColumn(n))
          }, t.prototype.getCompletelyVisibleViewRangeAtScrollTop = function (e) {
            var t = this.viewLayout.getLinesViewportDataAtScrollTop(e),
                n = t.completelyVisibleStartLineNumber,
                i = t.completelyVisibleEndLineNumber;
            return new o.Range(n, this.getLineMinColumn(n), i,
                this.getLineMaxColumn(i))
          }, t.prototype.getTabSize = function () {
            return this.model.getOptions().tabSize
          }, t.prototype.getLineCount = function () {
            return this.lines.getViewLineCount()
          }, t.prototype.setViewport = function (e, t, n) {
            this._centeredViewLine = n, this.lines.warmUpLookupCache(e, t)
          }, t.prototype.getLineIndentGuide = function (e) {
            return this.lines.getViewLineIndentGuide(e)
          }, t.prototype.getLineContent = function (e) {
            return this.lines.getViewLineContent(e)
          }, t.prototype.getLineMinColumn = function (e) {
            return this.lines.getViewLineMinColumn(e)
          }, t.prototype.getLineMaxColumn = function (e) {
            return this.lines.getViewLineMaxColumn(e)
          }, t.prototype.getLineFirstNonWhitespaceColumn = function (e) {
            var t = n.firstNonWhitespaceIndex(this.getLineContent(e));
            return -1 === t ? 0 : t + 1
          }, t.prototype.getLineLastNonWhitespaceColumn = function (e) {
            var t = n.lastNonWhitespaceIndex(this.getLineContent(e));
            return -1 === t ? 0 : t + 2
          }, t.prototype.getDecorationsInViewport = function (e) {
            return this.decorations.getDecorationsViewportData(e).decorations
          }, t.prototype.getViewLineRenderingData = function (e, t) {
            var n = this.model.mightContainRTL(),
                i = this.model.mightContainNonBasicASCII(),
                o = this.getTabSize(), r = this.lines.getViewLineData(t),
                s = this.decorations.getDecorationsViewportData(
                    e).inlineDecorations[t - e.startLineNumber];
            return new l.ViewLineRenderingData(r.minColumn, r.maxColumn,
                r.content, n, i, r.tokens, s, o)
          }, t.prototype.getMinimapLinesRenderingData = function (e, t, n) {
            var i = this.lines.getViewLinesData(e, t, n);
            return new l.MinimapLinesRenderingData(this.getTabSize(), i)
          }, t.prototype.getAllOverviewRulerDecorations = function () {
            return this.decorations.getAllOverviewRulerDecorations()
          }, t.prototype.getValueInRange = function (e, t) {
            var n = this.coordinatesConverter.convertViewRangeToModelRange(e);
            return this.model.getValueInRange(n, t)
          }, t.prototype.getModelLineMaxColumn = function (e) {
            return this.model.getLineMaxColumn(e)
          }, t.prototype.validateModelPosition = function (e) {
            return this.model.validatePosition(e)
          }, t.prototype.getPlainTextToCopy = function (e, t) {
            var n = this.model.getEOL();
            if (1 === e.length) {
              var s = e[0];
              if (s.isEmpty()) {
                if (t) {
                  var a = this.coordinatesConverter.convertViewPositionToModelPosition(
                      new i.Position(s.startLineNumber, 1)).lineNumber;
                  return this.model.getLineContent(a) + n
                }
                return ""
              }
              return this.getValueInRange(s, r.EndOfLinePreference.TextDefined)
            }
            e = e.slice(0).sort(o.Range.compareRangesUsingStarts);
            for (var u = [], l = 0; l < e.length; l++) {
              u.push(
                  this.getValueInRange(e[l],
                      r.EndOfLinePreference.TextDefined));
            }
            return u.join(n)
          }, t.prototype.getHTMLToCopy = function (e, t) {
            if (1 === this.model.getLanguageIdentifier().id) {
              return null;
            }
            if (1 !== e.length) {
              return null;
            }
            var n = this.coordinatesConverter.convertViewRangeToModelRange(
                e[0]);
            if (n.isEmpty()) {
              if (!t) {
                return null;
              }
              var i = n.startLineNumber;
              n = new o.Range(i, this.model.getLineMinColumn(i), i,
                  this.model.getLineMaxColumn(i))
            }
            var r = this.configuration.editor.fontInfo, s = this._getColorMap();
            return '<div style="color: ' + s[1] + ";background-color: " + s[2]
                + ";font-family: " + r.fontFamily + ";font-weight: "
                + r.fontWeight + ";font-size: " + r.fontSize
                + "px;line-height: " + r.lineHeight + 'px;white-space: pre;">'
                + this._getHTMLToCopy(n, s) + "</div>"
          }, t.prototype._getHTMLToCopy = function (e, t) {
            for (var n = e.startLineNumber, i = e.startColumn,
                o = e.endLineNumber, r = e.endColumn, s = this.getTabSize(),
                u = "", l = n; l <= o; l++) {
              var c = this.model.getLineTokens(l), d = c.getLineContent(),
                  h = l === n ? i - 1 : 0, p = l === o ? r - 1 : d.length;
              u += "" === d ? "<br>" : a.tokenizeLineToHTML(d, c.inflate(), t,
                  h, p, s)
            }
            return u
          }, t.prototype._getColorMap = function () {
            for (var e = s.TokenizationRegistry.getColorMap(), t = [null],
                n = 1, i = e.length; n < i; n++) {
              t[n] = e[n].toRGBHex();
            }
            return t
          }, t
        }(d.ViewEventEmitter);
        t.ViewModel = _
      }), define(d[331], h([1, 0, 20, 34]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e(e) {
        this._editor = e, this._decorations = [], this._findScopeDecorationId = null, this._rangeHighlightDecorationId = null, this._highlightedDecorationId = null, this._startPosition = this._editor.getPosition()
      }

      return e.prototype.dispose = function () {
        this._editor.deltaDecorations(this._allDecorations(),
            []), this._editor = null, this._decorations = [], this._findScopeDecorationId = null, this._rangeHighlightDecorationId = null, this._highlightedDecorationId = null, this._startPosition = null
      }, e.prototype.reset = function () {
        this._decorations = [], this._findScopeDecorationId = null, this._rangeHighlightDecorationId = null, this._highlightedDecorationId = null
      }, e.prototype.getCount = function () {
        return this._decorations.length
      }, e.prototype.getFindScope = function () {
        return this._findScopeDecorationId
            ? this._editor.getModel().getDecorationRange(
                this._findScopeDecorationId) : null
      }, e.prototype.getStartPosition = function () {
        return this._startPosition
      }, e.prototype.setStartPosition = function (e) {
        this._startPosition = e, this.setCurrentFindMatch(null)
      }, e.prototype.getCurrentMatchesPosition = function (e) {
        for (var t = 0, n = this._decorations.length; t < n; t++) {
          var i = this._editor.getModel().getDecorationRange(
              this._decorations[t]);
          if (e.equalsRange(i)) {
            return t + 1
          }
        }
        return 1
      }, e.prototype.setCurrentFindMatch = function (t) {
        var n = this, i = null, o = 0;
        if (t) {
          for (var r = 0, s = this._decorations.length; r < s; r++) {
            var a = this._editor.getModel().getDecorationRange(
                this._decorations[r]);
            if (t.equalsRange(a)) {
              i = this._decorations[r], o = r + 1;
              break
            }
          }
        }
        return null === this._highlightedDecorationId && null === i
        || this._editor.changeDecorations(function (t) {
          if (null !== n._highlightedDecorationId && (t.changeDecorationOptions(
              n._highlightedDecorationId, e.createFindMatchDecorationOptions(
                  !1)), n._highlightedDecorationId = null), null !== i
          && (n._highlightedDecorationId = i, t.changeDecorationOptions(
              n._highlightedDecorationId,
              e.createFindMatchDecorationOptions(!0))), null
          !== n._rangeHighlightDecorationId && (t.removeDecoration(
              n._rangeHighlightDecorationId), n._rangeHighlightDecorationId = null), null
          !== i) {
            var o = n._editor.getModel().getDecorationRange(i);
            n._rangeHighlightDecorationId = t.addDecoration(o,
                e._RANGE_HIGHLIGHT_DECORATION)
          }
        }), o
      }, e.prototype.set = function (t, n) {
        var i = t.map(function (t) {
          return {range: t, options: e.createFindMatchDecorationOptions(!1)}
        });
        n && i.unshift({range: n, options: e._FIND_SCOPE_DECORATION});
        var o = this._editor.deltaDecorations(this._allDecorations(), i);
        this._findScopeDecorationId = n ? o.shift()
            : null, this._decorations = o, this._rangeHighlightDecorationId = null, this._highlightedDecorationId = null
      }, e.prototype._allDecorations = function () {
        var e = [];
        return e = e.concat(this._decorations), this._findScopeDecorationId
        && e.push(this._findScopeDecorationId), this._rangeHighlightDecorationId
        && e.push(this._rangeHighlightDecorationId), e
      }, e.createFindMatchDecorationOptions = function (e) {
        return e ? this._CURRENT_FIND_MATCH_DECORATION
            : this._FIND_MATCH_DECORATION
      }, e._CURRENT_FIND_MATCH_DECORATION = i.ModelDecorationOptions.register({
        stickiness: n.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
        className: "currentFindMatch",
        showIfCollapsed: !0,
        overviewRuler: {
          color: "rgba(246, 185, 77, 0.7)",
          darkColor: "rgba(246, 185, 77, 0.7)",
          position: n.OverviewRulerLane.Center
        }
      }), e._FIND_MATCH_DECORATION = i.ModelDecorationOptions.register({
        stickiness: n.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
        className: "findMatch",
        showIfCollapsed: !0,
        overviewRuler: {
          color: "rgba(246, 185, 77, 0.7)",
          darkColor: "rgba(246, 185, 77, 0.7)",
          position: n.OverviewRulerLane.Center
        }
      }), e._RANGE_HIGHLIGHT_DECORATION = i.ModelDecorationOptions.register({
        stickiness: n.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
        className: "rangeHighlight",
        isWholeLine: !0
      }), e._FIND_SCOPE_DECORATION = i.ModelDecorationOptions.register(
          {className: "findScope", isWholeLine: !0}), e
    }();
    t.FindDecorations = o
  }), define(d[121],
      h([1, 0, 18, 3, 255, 73, 12, 2, 20, 331, 254, 22, 158, 54]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p) {
        "use strict";
        Object.defineProperty(t, "__esModule",
            {value: !0}), t.ToggleCaseSensitiveKeybinding = {
          primary: 545,
          mac: {primary: 2593}
        }, t.ToggleWholeWordKeybinding = {
          primary: 565,
          mac: {primary: 2613}
        }, t.ToggleRegexKeybinding = {
          primary: 560,
          mac: {primary: 2608}
        }, t.ToggleSearchScopeKeybinding = {
          primary: 554,
          mac: {primary: 2602}
        }, t.ShowPreviousFindTermKeybinding = {primary: 528}, t.ShowNextFindTermKeybinding = {primary: 530}, t.FIND_IDS = {
          StartFindAction: "actions.find",
          NextMatchFindAction: "editor.action.nextMatchFindAction",
          PreviousMatchFindAction: "editor.action.previousMatchFindAction",
          NextSelectionMatchFindAction: "editor.action.nextSelectionMatchFindAction",
          PreviousSelectionMatchFindAction: "editor.action.previousSelectionMatchFindAction",
          AddSelectionToNextFindMatchAction: "editor.action.addSelectionToNextFindMatch",
          AddSelectionToPreviousFindMatchAction: "editor.action.addSelectionToPreviousFindMatch",
          MoveSelectionToNextFindMatchAction: "editor.action.moveSelectionToNextFindMatch",
          MoveSelectionToPreviousFindMatchAction: "editor.action.moveSelectionToPreviousFindMatch",
          StartFindReplaceAction: "editor.action.startFindReplaceAction",
          CloseFindWidgetCommand: "closeFindWidget",
          ToggleCaseSensitiveCommand: "toggleFindCaseSensitive",
          ToggleWholeWordCommand: "toggleFindWholeWord",
          ToggleRegexCommand: "toggleFindRegex",
          ToggleSearchScopeCommand: "toggleFindInSelection",
          ReplaceOneAction: "editor.action.replaceOne",
          ReplaceAllAction: "editor.action.replaceAll",
          SelectAllMatchesAction: "editor.action.selectAllMatches",
          ShowPreviousFindTermAction: "find.history.showPrevious",
          ShowNextFindTermAction: "find.history.showNext"
        }, t.MATCHES_LIMIT = 999;
        var f = function () {
          function e(e, t) {
            var i = this;
            this._editor = e, this._state = t, this._toDispose = [], this._isDisposed = !1, this._decorations = new l.FindDecorations(
                e), this._toDispose.push(
                this._decorations), this._updateDecorationsScheduler = new n.RunOnceScheduler(
                function () {
                  return i.research(!1)
                }, 100), this._toDispose.push(
                this._updateDecorationsScheduler), this._toDispose.push(
                this._editor.onDidChangeCursorPosition(function (e) {
                  e.reason !== p.CursorChangeReason.Explicit && e.reason
                  !== p.CursorChangeReason.Undo && e.reason
                  !== p.CursorChangeReason.Redo
                  || i._decorations.setStartPosition(i._editor.getPosition())
                })), this._ignoreModelContentChanged = !1, this._toDispose.push(
                this._editor.onDidChangeModelContent(function (e) {
                  i._ignoreModelContentChanged || (e.isFlush
                  && i._decorations.reset(), i._decorations.setStartPosition(
                      i._editor.getPosition()), i._updateDecorationsScheduler.schedule())
                })), this._toDispose.push(
                this._state.addChangeListener(function (e) {
                  return i._onStateChanged(e)
                })), this.research(!1, this._state.searchScope)
          }

          return e.prototype.dispose = function () {
            this._isDisposed = !0, this._toDispose = i.dispose(this._toDispose)
          }, e.prototype._onStateChanged = function (e) {
            this._isDisposed || (e.searchString || e.isReplaceRevealed
                || e.isRegex || e.wholeWord || e.matchCase || e.searchScope)
            && (e.searchScope ? this.research(e.moveCursor,
                this._state.searchScope) : this.research(e.moveCursor))
          }, e._getSearchRange = function (e, t, n) {
            var i;
            return i = t ? e.getEditableRange() : e.getFullModelRange(), n
            && (i = i.intersectRanges(n)), i
          }, e.prototype.research = function (e, n) {
            var i = null;
            null !== (i = void 0 !== n ? n : this._decorations.getFindScope())
            && i.startLineNumber !== i.endLineNumber && (i = new a.Range(
                i.startLineNumber, 1, i.endLineNumber,
                this._editor.getModel().getLineMaxColumn(i.endLineNumber)));
            var o = this._findMatches(i, !1, t.MATCHES_LIMIT);
            this._decorations.set(o.map(function (e) {
              return e.range
            }), i), this._state.changeMatchInfo(
                this._decorations.getCurrentMatchesPosition(
                    this._editor.getSelection()), this._decorations.getCount(),
                void 0), e && this._moveToNextMatch(
                this._decorations.getStartPosition())
          }, e.prototype._hasMatches = function () {
            return this._state.matchesCount > 0
          }, e.prototype._cannotFind = function () {
            if (!this._hasMatches()) {
              var e = this._decorations.getFindScope();
              return e && this._editor.revealRangeInCenterIfOutsideViewport(
                  e), !0
            }
            return !1
          }, e.prototype._setCurrentFindMatch = function (e) {
            var t = this._decorations.setCurrentFindMatch(e);
            this._state.changeMatchInfo(t, this._decorations.getCount(),
                e), this._editor.setSelection(
                e), this._editor.revealRangeInCenterIfOutsideViewport(e)
          }, e.prototype._moveToPrevMatch = function (t, n) {
            if (void 0 === n && (n = !1), !this._cannotFind()) {
              var i = this._decorations.getFindScope(),
                  o = e._getSearchRange(this._editor.getModel(),
                      this._state.isReplaceRevealed, i);
              o.getEndPosition().isBefore(t)
              && (t = o.getEndPosition()), t.isBefore(o.getStartPosition())
              && (t = o.getEndPosition());
              var r = t.lineNumber, a = t.column, u = this._editor.getModel(),
                  l = new s.Position(r, a),
                  c = u.findPreviousMatch(this._state.searchString, l,
                      this._state.isRegex, this._state.matchCase,
                      this._state.wholeWord
                          ? this._editor.getConfiguration().wordSeparators
                          : null, !1);
              return c && c.range.isEmpty()
              && c.range.getStartPosition().equals(l) && (this._state.isRegex
              && (this._state.searchString.indexOf("^") >= 0
                  || this._state.searchString.indexOf("$") >= 0) || 1 === a ? (1
                  === r ? r = u.getLineCount() : r--, a = u.getLineMaxColumn(r))
                  : a--, l = new s.Position(r, a), c = u.findPreviousMatch(
                  this._state.searchString, l, this._state.isRegex,
                  this._state.matchCase, this._state.wholeWord
                      ? this._editor.getConfiguration().wordSeparators : null,
                  !1)), c ? n || o.containsRange(c.range)
                  ? void this._setCurrentFindMatch(c.range)
                  : this._moveToPrevMatch(c.range.getStartPosition(), !0) : null
            }
          }, e.prototype.moveToPrevMatch = function () {
            this._moveToPrevMatch(
                this._editor.getSelection().getStartPosition())
          }, e.prototype._moveToNextMatch = function (e) {
            var t = this._getNextMatch(e, !1, !0);
            t && this._setCurrentFindMatch(t.range)
          }, e.prototype._getNextMatch = function (t, n, i, o) {
            if (void 0 === o && (o = !1), this._cannotFind()) {
              return null;
            }
            var r = this._decorations.getFindScope(),
                a = e._getSearchRange(this._editor.getModel(),
                    this._state.isReplaceRevealed, r);
            a.getEndPosition().isBefore(t)
            && (t = a.getStartPosition()), t.isBefore(a.getStartPosition())
            && (t = a.getStartPosition());
            var u = t.lineNumber, l = t.column, c = this._editor.getModel(),
                d = new s.Position(u, l),
                h = c.findNextMatch(this._state.searchString, d,
                    this._state.isRegex, this._state.matchCase,
                    this._state.wholeWord
                        ? this._editor.getConfiguration().wordSeparators : null,
                    n);
            return i && h && h.range.isEmpty()
            && h.range.getStartPosition().equals(d) && (this._state.isRegex
            && (this._state.searchString.indexOf("^") >= 0
                || this._state.searchString.indexOf("$") >= 0) || l
            === c.getLineMaxColumn(u) ? (u === c.getLineCount() ? u = 1
                : u++, l = 1) : l++, d = new s.Position(u,
                l), h = c.findNextMatch(this._state.searchString, d,
                this._state.isRegex, this._state.matchCase,
                this._state.wholeWord
                    ? this._editor.getConfiguration().wordSeparators : null,
                n)), h ? o || a.containsRange(h.range) ? h : this._getNextMatch(
                h.range.getEndPosition(), n, i, !0) : null
          }, e.prototype.moveToNextMatch = function () {
            this._moveToNextMatch(this._editor.getSelection().getEndPosition())
          }, e.prototype._getReplacePattern = function () {
            return this._state.isRegex ? o.parseReplaceString(
                this._state.replaceString) : o.ReplacePattern.fromStaticValue(
                this._state.replaceString)
          }, e.prototype.replace = function () {
            if (this._hasMatches()) {
              var e = this._getReplacePattern(),
                  t = this._editor.getSelection(),
                  n = this._getNextMatch(t.getStartPosition(),
                      e.hasReplacementPatterns, !1);
              if (n) {
                if (t.equalsRange(n.range)) {
                  var i = e.buildReplaceString(n.matches),
                      o = new r.ReplaceCommand(t, i);
                  this._executeEditorCommand("replace",
                      o), this._decorations.setStartPosition(
                      new s.Position(t.startLineNumber,
                          t.startColumn + i.length)), this.research(!0)
                } else {
                  this._decorations.setStartPosition(
                      this._editor.getPosition()), this._setCurrentFindMatch(
                      n.range)
                }
              }
            }
          }, e.prototype._findMatches = function (t, n, i) {
            var o = e._getSearchRange(this._editor.getModel(),
                this._state.isReplaceRevealed, t);
            return this._editor.getModel().findMatches(this._state.searchString,
                o, this._state.isRegex, this._state.matchCase,
                this._state.wholeWord
                    ? this._editor.getConfiguration().wordSeparators : null, n,
                i)
          }, e.prototype.replaceAll = function () {
            if (this._hasMatches()) {
              var e = this._decorations.getFindScope();
              null === e && this._state.matchesCount >= t.MATCHES_LIMIT
                  ? this._largeReplaceAll() : this._regularReplaceAll(
                      e), this.research(!1)
            }
          }, e.prototype._largeReplaceAll = function () {
            var e = new h.SearchParams(this._state.searchString,
                this._state.isRegex, this._state.matchCase,
                this._state.wholeWord
                    ? this._editor.getConfiguration().wordSeparators
                    : null).parseSearchRequest();
            if (e) {
              var t, n = this._editor.getModel(),
                  i = n.getValue(u.EndOfLinePreference.LF),
                  o = n.getFullModelRange(), s = this._getReplacePattern();
              t = s.hasReplacementPatterns ? i.replace(e.regex, function () {
                return s.buildReplaceString(arguments)
              }) : i.replace(e.regex, s.buildReplaceString(null));
              var a = new r.ReplaceCommandThatPreservesSelection(o, t,
                  this._editor.getSelection());
              this._executeEditorCommand("replaceAll", a)
            }
          }, e.prototype._regularReplaceAll = function (e) {
            for (var t = this._getReplacePattern(),
                n = this._findMatches(e, t.hasReplacementPatterns, 1073741824),
                i = [], o = 0, r = n.length; o < r;
                o++) {
              i[o] = t.buildReplaceString(n[o].matches);
            }
            var s = new c.ReplaceAllCommand(this._editor.getSelection(),
                n.map(function (e) {
                  return e.range
                }), i);
            this._executeEditorCommand("replaceAll", s)
          }, e.prototype.selectAllMatches = function () {
            if (this._hasMatches()) {
              for (var e = this._decorations.getFindScope(),
                  t = this._findMatches(e, !1, 1073741824).map(function (e) {
                    return new d.Selection(e.range.startLineNumber,
                        e.range.startColumn, e.range.endLineNumber,
                        e.range.endColumn)
                  }), n = this._editor.getSelection(), i = 0, o = t.length;
                  i < o; i++) {
                if (t[i].equalsRange(n)) {
                  t = [n].concat(t.slice(0, i)).concat(t.slice(i + 1));
                  break
                }
              }
              this._editor.setSelections(t)
            }
          }, e.prototype._executeEditorCommand = function (e, t) {
            try {
              this._ignoreModelContentChanged = !0, this._editor.pushUndoStop(), this._editor.executeCommand(
                  e, t), this._editor.pushUndoStop()
            } finally {
              this._ignoreModelContentChanged = !1
            }
          }, e
        }();
        t.FindModelBoundToEditorModel = f
      }), define(d[333], h([1, 0, 20, 2, 34]), function (e, t, n, i, o) {
    "use strict";

    function r(e, t, n) {
      for (var i = null, o = 0, r = e.length; o < r; o++) {
        var s = e[o], l = s.getDecorationRange(t);
        if (l && (a(l, n) && (i = s), u(l, n))) {
          break
        }
      }
      return i
    }

    function s(e, t, n, i) {
      for (var o = e.indexOf(n) + 1; o < e.length; o++) {
        var r = e[o], s = r.getDecorationRange(t);
        if (s && u(s, i)) {
          if (!c(n.foldingRange, s)) {
            return null;
          }
          if (r.isCollapsed) {
            return r
          }
        }
      }
      return null
    }

    function a(e, t) {
      return t >= e.startLineNumber && t <= e.endLineNumber
    }

    function u(e, t) {
      return t < e.startLineNumber
    }

    function l(e, t) {
      return t > e.endLineNumber
    }

    function c(e, t) {
      return e instanceof i.Range && t instanceof i.Range ? e.containsRange(t)
          : e.startLineNumber <= t.startLineNumber && e.endLineNumber
          >= t.endLineNumber
    }

    function d(e, t, n, i, o) {
      return (o ? new f(e, t, n) : new p(e, t, n)).getRegionsTill(i)
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.toString = function (e) {
      return (e ? e.startLineNumber + "/" + e.endLineNumber : "null")
          + (e.isCollapsed ? " (collapsed)" : "") + " - " + e.indent
    };
    var h = function () {
      function e(e, t, n) {
        this.decorationIds = [], this.update(e, t, n)
      }

      return Object.defineProperty(e.prototype, "isCollapsed", {
        get: function () {
          return this._isCollapsed
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "isExpanded", {
        get: function () {
          return !this._isCollapsed
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "indent", {
        get: function () {
          return this._indent
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "foldingRange", {
        get: function () {
          return this._lastRange
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "startLineNumber", {
        get: function () {
          return this._lastRange ? this._lastRange.startLineNumber : void 0
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "endLineNumber", {
        get: function () {
          return this._lastRange ? this._lastRange.endLineNumber : void 0
        }, enumerable: !0, configurable: !0
      }), e.prototype.setCollapsed = function (e, t) {
        this._isCollapsed = e, this.decorationIds.length > 0
        && t.changeDecorationOptions(this.decorationIds[0],
            this.getVisualDecorationOptions())
      }, e.prototype.getDecorationRange = function (e) {
        return this.decorationIds.length > 0 ? e.getDecorationRange(
            this.decorationIds[1]) : null
      }, e.prototype.getVisualDecorationOptions = function () {
        return this._isCollapsed ? e._COLLAPSED_VISUAL_DECORATION
            : e._EXPANDED_VISUAL_DECORATION
      }, e.prototype.getRangeDecorationOptions = function () {
        return e._RANGE_DECORATION
      }, e.prototype.update = function (e, t, n) {
        this._lastRange = e, this._isCollapsed = !!e.isCollapsed, this._indent = e.indent;
        var i = [], o = t.getLineMaxColumn(e.startLineNumber), r = {
          startLineNumber: e.startLineNumber,
          startColumn: o - 1,
          endLineNumber: e.startLineNumber,
          endColumn: o
        };
        i.push({range: r, options: this.getVisualDecorationOptions()});
        var s = {
          startLineNumber: e.startLineNumber,
          startColumn: 1,
          endLineNumber: e.endLineNumber,
          endColumn: t.getLineMaxColumn(e.endLineNumber)
        };
        i.push({
          range: s,
          options: this.getRangeDecorationOptions()
        }), this.decorationIds = n.deltaDecorations(this.decorationIds, i)
      }, e.prototype.dispose = function (e) {
        this._lastRange = null, this.decorationIds = e.deltaDecorations(
            this.decorationIds, [])
      }, e.prototype.toString = function () {
        var e = this.isCollapsed ? "collapsed " : "expanded ";
        return this._lastRange ? e += this._lastRange.startLineNumber + "/"
            + this._lastRange.endLineNumber : e += "no range", e
      }, e._COLLAPSED_VISUAL_DECORATION = o.ModelDecorationOptions.register({
        stickiness: n.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
        afterContentClassName: "inline-folded",
        linesDecorationsClassName: "folding collapsed"
      }), e._EXPANDED_VISUAL_DECORATION = o.ModelDecorationOptions.register({
        stickiness: n.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
        linesDecorationsClassName: "folding"
      }), e._RANGE_DECORATION = o.ModelDecorationOptions.register(
          {stickiness: n.TrackedRangeStickiness.GrowsOnlyWhenTypingBefore}), e
    }();
    t.CollapsibleRegion = h, t.getCollapsibleRegionsToFoldAtLine = function (e,
        t, n, i, o) {
      var s = r(e, t, n);
      return s ? 1 === i ? [s] : d(s, e, t, i, o).filter(function (e) {
        return !e.isCollapsed
      }) : []
    }, t.getCollapsibleRegionsToUnfoldAtLine = function (e, t, n, i) {
      var o = r(e, t, n);
      if (!o) {
        return [];
      }
      if (1 === i) {
        var a = o.isCollapsed ? o : s(e, t, o, n);
        return a ? [a] : []
      }
      return d(o, e, t, i, !1).filter(function (e) {
        return e.isCollapsed
      })
    }, t.doesLineBelongsToCollapsibleRegion = a;
    var p = function () {
      function e(e, t, n) {
        this.region = e, this.children = [];
        for (var i = t.indexOf(e) + 1; i < t.length; i++) {
          var o = t[i], r = o.getDecorationRange(n);
          if (r && (c(e.foldingRange, r) && (i = this.processChildRegion(o, t,
              n, i)), u(r, e.foldingRange.endLineNumber))) {
            break
          }
        }
      }

      return e.prototype.processChildRegion = function (t, n, i, o) {
        var r = new e(t, n, i);
        return this.children.push(r), this.lastChildIndex = o, r.children.length
        > 0 ? r.lastChildIndex : o
      }, e.prototype.getRegionsTill = function (e) {
        var t = [this.region];
        return e > 1 && this.children.forEach(function (n) {
          return t = t.concat(n.getRegionsTill(e - 1))
        }), t
      }, e
    }(), f = function () {
      function e(t, n, i) {
        this.region = t;
        for (var o = n.indexOf(t) - 1; o >= 0; o--) {
          var r = n[o], s = r.getDecorationRange(i);
          if (s) {
            if (c(s, t.foldingRange)) {
              this.parent = new e(r, n, i);
              break
            }
            if (l(s, t.foldingRange.endLineNumber)) {
              break
            }
          }
        }
      }

      return e.prototype.getRegionsTill = function (e) {
        var t = [this.region];
        return this.parent && e > 1 && (t = t.concat(
            this.parent.getRegionsTill(e - 1))), t
      }, e
    }()
  }), define(d[334], h([1, 0, 9, 20, 59, 142, 22, 2, 33, 3, 271, 34, 394]),
      function (e, t, n, i, o, r, s, a, u, l, c, d) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var h = function () {
          function e(e, t, n) {
            this._nestingLevel = 1, this._editor = e, this._snippet = t, this._offset = n, this._placeholderGroups = u.groupBy(
                t.placeholders,
                r.Placeholder.compareByIndex), this._placeholderGroupsIdx = -1
          }

          return e.prototype.dispose = function () {
            var e = this;
            this._placeholderDecorations && this._editor.changeDecorations(
                function (t) {
                  return e._placeholderDecorations.forEach(function (e) {
                    return t.removeDecoration(e)
                  })
                }), this._placeholderGroups.length = 0
          }, e.prototype._initDecorations = function () {
            var t = this;
            if (!this._placeholderDecorations) {
              this._placeholderDecorations = new Map;
              var n = this._editor.getModel();
              this._editor.changeDecorations(function (i) {
                for (var o = 0, r = t._snippet.placeholders; o < r.length;
                    o++) {
                  var s = r[o], u = t._snippet.offset(s),
                      l = t._snippet.fullLen(s),
                      c = a.Range.fromPositions(n.getPositionAt(t._offset + u),
                          n.getPositionAt(t._offset + u + l)),
                      d = s.isFinalTabstop ? e._decor.inactiveFinal
                          : e._decor.inactive, h = i.addDecoration(c, d);
                  t._placeholderDecorations.set(s, h)
                }
              })
            }
          }, e.prototype.move = function (t) {
            var n = this;
            return this._initDecorations(), !0 === t
            && this._placeholderGroupsIdx < this._placeholderGroups.length - 1
                ? this._placeholderGroupsIdx += 1 : !1 === t
                && this._placeholderGroupsIdx > 0
                && (this._placeholderGroupsIdx -= 1), this._editor.getModel().changeDecorations(
                function (t) {
                  for (var i = new Set, o = [], r = 0,
                      a = n._placeholderGroups[n._placeholderGroupsIdx];
                      r < a.length; r++) {
                    var u = a[r], l = n._placeholderDecorations.get(u),
                        c = n._editor.getModel().getDecorationRange(l);
                    o.push(new s.Selection(c.startLineNumber, c.startColumn,
                        c.endLineNumber,
                        c.endColumn)), t.changeDecorationOptions(l,
                        u.isFinalTabstop ? e._decor.activeFinal
                            : e._decor.active), i.add(u);
                    for (var d = 0, h = n._snippet.enclosingPlaceholders(u);
                        d < h.length; d++) {
                      var p = h[d], f = n._placeholderDecorations.get(p);
                      t.changeDecorationOptions(f,
                          p.isFinalTabstop ? e._decor.activeFinal
                              : e._decor.active), i.add(p)
                    }
                  }
                  return n._placeholderDecorations.forEach(function (n, o) {
                    i.has(o) || t.changeDecorationOptions(n,
                        o.isFinalTabstop ? e._decor.inactiveFinal
                            : e._decor.inactive)
                  }), o
                })
          }, Object.defineProperty(e.prototype, "isAtFirstPlaceholder", {
            get: function () {
              return this._placeholderGroupsIdx <= 0 || 0
                  === this._placeholderGroups.length
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "isAtLastPlaceholder", {
            get: function () {
              return this._placeholderGroupsIdx
                  === this._placeholderGroups.length - 1
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "hasPlaceholder", {
            get: function () {
              return this._snippet.placeholders.length > 0
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "placeholderRanges", {
            get: function () {
              var e = this, t = [];
              return this._placeholderDecorations.forEach(function (n, i) {
                if (!i.isFinalTabstop) {
                  var o = e._editor.getModel().getDecorationRange(n);
                  o && t.push(o)
                }
              }), t
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "choice", {
            get: function () {
              return this._placeholderGroups[this._placeholderGroupsIdx][0].choice
            }, enumerable: !0, configurable: !0
          }), e.prototype.merge = function (t) {
            var n = this, i = this._editor.getModel();
            this._nestingLevel *= 10, this._editor.changeDecorations(
                function (o) {
                  for (var s = 0,
                      l = n._placeholderGroups[n._placeholderGroupsIdx];
                      s < l.length; s++) {
                    var c = l[s], d = t.shift();
                    console.assert(!d._placeholderDecorations);
                    for (var h = 0, p = d._snippet.placeholders; h < p.length;
                        h++) {
                      var f = p[h];
                      f.isFinalTabstop ? f.index = c.index
                              + d._snippet.placeholders.length / n._nestingLevel
                          : f.index = c.index + f.index / n._nestingLevel
                    }
                    n._snippet.replace(c, d._snippet.children);
                    var g = n._placeholderDecorations.get(c);
                    o.removeDecoration(g), n._placeholderDecorations.delete(c);
                    for (var m = 0, v = d._snippet.placeholders; m < v.length;
                        m++) {
                      var _ = v[m], y = d._snippet.offset(_),
                          C = d._snippet.fullLen(_), b = a.Range.fromPositions(
                              i.getPositionAt(d._offset + y),
                              i.getPositionAt(d._offset + y + C)),
                          w = o.addDecoration(b, e._decor.inactive);
                      n._placeholderDecorations.set(_, w)
                    }
                  }
                  n._placeholderGroups = u.groupBy(n._snippet.placeholders,
                      r.Placeholder.compareByIndex)
                })
          }, e._decor = {
            active: d.ModelDecorationOptions.register({
              stickiness: i.TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges,
              className: "snippet-placeholder"
            }),
            inactive: d.ModelDecorationOptions.register({
              stickiness: i.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
              className: "snippet-placeholder"
            }),
            activeFinal: d.ModelDecorationOptions.register({
              stickiness: i.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
              className: "finish-snippet-placeholder"
            }),
            inactiveFinal: d.ModelDecorationOptions.register({
              stickiness: i.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
              className: "finish-snippet-placeholder"
            })
          }, e
        }();
        t.OneSnippet = h;
        var p = function () {
          function e(e, t, n, i) {
            void 0 === n && (n = 0), void 0 === i
            && (i = 0), this._snippets = [], this._editor = e, this._template = t, this._overwriteBefore = n, this._overwriteAfter = i
          }

          return e.adjustWhitespace = function (e, t, i) {
            for (var o = e.getLineContent(t.lineNumber),
                r = n.getLeadingWhitespace(o, 0, t.column - 1),
                s = i.split(/\r\n|\r|\n/), a = 1; a < s.length; a++) {
              var u = n.getLeadingWhitespace(s[a]);
              s[a] = e.normalizeIndentation(r + u) + s[a].substr(u.length)
            }
            return s.join(e.getEOL())
          }, e.adjustSelection = function (e, t, n, i) {
            if (0 !== n || 0 !== i) {
              var o = t.startLineNumber, r = t.startColumn, u = t.endLineNumber,
                  l = t.endColumn;
              r -= n, l += i;
              var c = e.validateRange(a.Range.plusRange(t, {
                startLineNumber: o,
                startColumn: r,
                endLineNumber: u,
                endColumn: l
              }));
              t = s.Selection.createWithDirection(c.startLineNumber,
                  c.startColumn, c.endLineNumber, c.endColumn, t.getDirection())
            }
            return t
          }, e.createEditsAndSnippets = function (t, n, i, s, u) {
            for (var l = t.getModel(), d = [], p = [], f = 0,
                g = l.getValueInRange(
                    e.adjustSelection(l, t.getSelection(), i, 0)),
                m = l.getValueInRange(
                    e.adjustSelection(l, t.getSelection(), 0, s)), v = 0,
                _ = t.getSelections().map(function (e, t) {
                  return {selection: e, idx: t}
                }).sort(function (e, t) {
                  return a.Range.compareRangesUsingStarts(e.selection,
                      t.selection)
                }); v < _.length; v++) {
              var y = _[v], C = y.selection, b = y.idx,
                  w = e.adjustSelection(l, C, i, 0),
                  S = e.adjustSelection(l, C, 0, s);
              g !== l.getValueInRange(w) && (w = C), m !== l.getValueInRange(S)
              && (S = C);
              var E = C.setStartPosition(w.startLineNumber,
                      w.startColumn).setEndPosition(S.endLineNumber, S.endColumn),
                  L = E.getStartPosition(), x = e.adjustWhitespace(l, L, n),
                  N = (new r.SnippetParser).parse(x, !0, u).resolveVariables(
                      new c.EditorSnippetVariableResolver(l, C)),
                  M = l.getOffsetAt(L) + f;
              f += N.toString().length - l.getValueLengthInRange(
                  E), d[b] = o.EditOperation.replace(E,
                  N.toString()), p[b] = new h(t, N, M)
            }
            return {edits: d, snippets: p}
          }, e.prototype.dispose = function () {
            l.dispose(this._snippets)
          }, e.prototype.insert = function () {
            var t = this, n = this._editor.getModel(),
                i = e.createEditsAndSnippets(this._editor, this._template,
                    this._overwriteBefore, this._overwriteAfter, !1),
                o = i.edits, r = i.snippets;
            this._snippets = r, this._editor.setSelections(
                n.pushEditOperations(this._editor.getSelections(), o,
                    function (e) {
                      return t._snippets[0].hasPlaceholder ? t._move(!0)
                          : e.map(function (e) {
                            return s.Selection.fromPositions(
                                e.range.getEndPosition())
                          })
                    }))
          }, e.prototype.merge = function (t, n, i) {
            var o = this;
            void 0 === n && (n = 0), void 0 === i && (i = 0);
            var r = e.createEditsAndSnippets(this._editor, t, n, i, !0),
                a = r.edits, u = r.snippets;
            this._editor.setSelections(
                this._editor.getModel().pushEditOperations(
                    this._editor.getSelections(), a, function (e) {
                      for (var t = 0, n = o._snippets; t < n.length;
                          t++) {
                        n[t].merge(u);
                      }
                      return console.assert(
                          0 === u.length), o._snippets[0].hasPlaceholder
                          ? o._move(void 0) : e.map(function (e) {
                            return s.Selection.fromPositions(
                                e.range.getEndPosition())
                          })
                    }))
          }, e.prototype.next = function () {
            var e = this._move(!0);
            this._editor.setSelections(e)
          }, e.prototype.prev = function () {
            var e = this._move(!1);
            this._editor.setSelections(e)
          }, e.prototype._move = function (e) {
            for (var t = [], n = 0, i = this._snippets; n < i.length; n++) {
              var o = i[n].move(e);
              t.push.apply(t, o)
            }
            return t
          }, Object.defineProperty(e.prototype, "isAtFirstPlaceholder", {
            get: function () {
              return this._snippets[0].isAtFirstPlaceholder
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "isAtLastPlaceholder", {
            get: function () {
              return this._snippets[0].isAtLastPlaceholder
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "hasPlaceholder", {
            get: function () {
              return this._snippets[0].hasPlaceholder
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "choice", {
            get: function () {
              return this._snippets[0].choice
            }, enumerable: !0, configurable: !0
          }), e.prototype.isSelectionWithinPlaceholders = function () {
            if (!this.hasPlaceholder) {
              return !1;
            }
            var e = this._editor.getSelections();
            if (e.length < this._snippets.length) {
              return !1;
            }
            for (var t = [], n = 0, i = this._snippets; n < i.length; n++) {
              var o = i[n];
              t.push.apply(t, o.placeholderRanges)
            }
            if (e.length > t.length) {
              return !1;
            }
            e.sort(a.Range.compareRangesUsingStarts), t.sort(
                a.Range.compareRangesUsingStarts);
            e:for (var r = 0, s = e; r < s.length; r++) {
              for (var u = s[r], l = void 0;
                  l = t.shift();) {
                if (l.containsRange(u)) {
                  continue e;
                }
              }
              return !1
            }
            return !0
          }, e
        }();
        t.SnippetSession = p
      }), define(d[183], h([1, 0, 3, 41, 26, 4, 99, 2, 32, 34, 108, 399]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d = u.Color.fromRGBA(new u.RGBA(0, 122, 204)), h = {
          showArrow: !0,
          showFrame: !0,
          className: "",
          frameColor: d,
          arrowColor: d
        }, p = function () {
          function e(e, t, n, i, o, r) {
            this.domNode = e, this.afterLineNumber = t, this.afterColumn = n, this.heightInLines = i, this._onDomNodeTop = o, this._onComputedHeight = r
          }

          return e.prototype.onDomNodeTop = function (e) {
            this._onDomNodeTop(e)
          }, e.prototype.onComputedHeight = function (e) {
            this._onComputedHeight(e)
          }, e
        }();
        t.ViewZoneDelegate = p;
        var g = function () {
          function e(e, t) {
            this._id = e, this._domNode = t
          }

          return e.prototype.getId = function () {
            return this._id
          }, e.prototype.getDomNode = function () {
            return this._domNode
          }, e.prototype.getPosition = function () {
            return null
          }, e
        }();
        t.OverlayWidgetDelegate = g;
        var m = function () {
          function e(t) {
            this._editor = t, this._ruleName = e._IdGenerator.nextId(), this._decorations = []
          }

          return e.prototype.dispose = function () {
            this.hide(), r.removeCSSRulesContainingSelector(this._ruleName)
          }, Object.defineProperty(e.prototype, "color", {
            set: function (e) {
              this._color !== e && (this._color = e, this._updateStyle())
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "height", {
            set: function (e) {
              this._height !== e && (this._height = e, this._updateStyle())
            }, enumerable: !0, configurable: !0
          }), e.prototype._updateStyle = function () {
            r.removeCSSRulesContainingSelector(this._ruleName), r.createCSSRule(
                ".monaco-editor " + this._ruleName,
                "border-style: solid; border-color: transparent; border-bottom-color: "
                + this._color + "; border-width: " + this._height
                + "px; bottom: -" + this._height + "px; margin-left: -"
                + this._height + "px; ")
          }, e.prototype.show = function (e) {
            this._decorations = this._editor.deltaDecorations(this._decorations,
                [{
                  range: a.Range.fromPositions(e),
                  options: {className: this._ruleName}
                }])
          }, e.prototype.hide = function () {
            this._editor.deltaDecorations(this._decorations, [])
          }, e._IdGenerator = new c.IdGenerator(".arrow-decoration-"), e
        }(), v = function (e) {
          function t(t, n) {
            void 0 === n && (n = {});
            var i = e.call(this) || this;
            return i._positionMarkerId = [], i._disposables = [], i._isShowing = !1, i.editor = t, i.options = o.clone(
                n), o.mixin(i.options, h,
                !1), i.domNode = document.createElement(
                "div"), i.options.isAccessible || (i.domNode.setAttribute(
                "aria-hidden", "true"), i.domNode.setAttribute("role",
                "presentation")), i._disposables.push(
                i.editor.onDidLayoutChange(function (e) {
                  var t = i._getWidth(e);
                  i.domNode.style.width = t + "px", i._onWidth(t)
                })), i
          }

          return f(t, e), t.prototype.dispose = function () {
            var e = this;
            n.dispose(this._disposables), this._overlayWidget
            && (this.editor.removeOverlayWidget(
                this._overlayWidget), this._overlayWidget = null), this._viewZone
            && this.editor.changeViewZones(function (t) {
              t.removeZone(e._viewZone.id), e._viewZone = null
            }), this.editor.deltaDecorations(this._positionMarkerId, [])
          }, t.prototype.create = function () {
            r.addClass(this.domNode, "zone-widget"), r.addClass(this.domNode,
                this.options.className), this.container = document.createElement(
                "div"), r.addClass(this.container,
                "zone-widget-container"), this.domNode.appendChild(
                this.container), this.options.showArrow && (this._arrow = new m(
                this.editor), this._disposables.push(
                this._arrow)), this._fillContainer(
                this.container), this._initSash(), this._applyStyles()
          }, t.prototype.style = function (e) {
            e.frameColor
            && (this.options.frameColor = e.frameColor), e.arrowColor
            && (this.options.arrowColor = e.arrowColor), this._applyStyles()
          }, t.prototype._applyStyles = function () {
            if (this.container) {
              var e = this.options.frameColor.toString();
              this.container.style.borderTopColor = e, this.container.style.borderBottomColor = e
            }
            if (this._arrow) {
              var t = this.options.arrowColor.toString();
              this._arrow.color = t
            }
          }, t.prototype._getWidth = function (e) {
            return void 0 === e && (e = this.editor.getLayoutInfo()), e.width
            - e.minimapWidth - e.verticalScrollbarWidth
          }, t.prototype._onViewZoneTop = function (e) {
            this.domNode.style.top = e + "px"
          }, t.prototype._onViewZoneHeight = function (e) {
            this.domNode.style.height = e + "px";
            var t = e - this._decoratingElementsHeight();
            this.container.style.height = t + "px", this._doLayout(t,
                this._getWidth()), this._resizeSash.layout()
          }, Object.defineProperty(t.prototype, "position", {
            get: function () {
              var e = this._positionMarkerId[0];
              if (e) {
                return this.editor.getModel().getDecorationRange(
                    e).getStartPosition()
              }
            }, enumerable: !0, configurable: !0
          }), t.prototype.show = function (e, t) {
            var n = a.Range.isIRange(e) ? e : new a.Range(e.lineNumber,
                e.column, e.lineNumber, e.column);
            this._isShowing = !0, this._showImpl(n,
                t), this._isShowing = !1, this._positionMarkerId = this.editor.deltaDecorations(
                this._positionMarkerId,
                [{range: n, options: l.ModelDecorationOptions.EMPTY}])
          }, t.prototype.hide = function () {
            var e = this;
            this._viewZone && (this.editor.changeViewZones(function (t) {
              t.removeZone(e._viewZone.id)
            }), this._viewZone = null), this._overlayWidget
            && (this.editor.removeOverlayWidget(
                this._overlayWidget), this._overlayWidget = null), this._arrow
            && this._arrow.hide()
          }, t.prototype._decoratingElementsHeight = function () {
            var e = this.editor.getConfiguration().lineHeight, t = 0;
            return this.options.showArrow && (t += 2 * Math.round(
                e / 3)), this.options.showFrame && (t += 2 * Math.round(
                e / 9)), t
          }, t.prototype._showImpl = function (e, t) {
            var n = this,
                i = {lineNumber: e.startLineNumber, column: e.startColumn},
                o = this._getWidth();
            this.domNode.style.width = o + "px";
            var r = document.createElement("div");
            r.style.overflow = "hidden";
            var s = this.editor.getConfiguration().lineHeight,
                a = this.editor.getLayoutInfo().height / s * .8;
            t >= a && (t = a);
            var u = 0, l = 0;
            if (this.options.showArrow && (u = Math.round(
                s / 3), this._arrow.height = u, this._arrow.show(
                i)), this.options.showFrame && (l = Math.round(
                s / 9)), this.editor.changeViewZones(function (e) {
              n._viewZone && e.removeZone(n._viewZone.id), n._overlayWidget
              && (n.editor.removeOverlayWidget(
                  n._overlayWidget), n._overlayWidget = null), n.domNode.style.top = "-1000px", n._viewZone = new p(
                  r, i.lineNumber, i.column, t, function (e) {
                    return n._onViewZoneTop(e)
                  }, function (e) {
                    return n._onViewZoneHeight(e)
                  }), n._viewZone.id = e.addZone(
                  n._viewZone), n._overlayWidget = new g(
                  "vs.editor.contrib.zoneWidget" + n._viewZone.id,
                  n.domNode), n.editor.addOverlayWidget(n._overlayWidget)
            }), this.options.showFrame) {
              var c = this.options.frameWidth ? this.options.frameWidth : l;
              this.container.style.borderTopWidth = c
                  + "px", this.container.style.borderBottomWidth = c + "px"
            }
            var d = t * s - this._decoratingElementsHeight();
            this.container.style.top = u + "px", this.container.style.height = d
                + "px", this.container.style.overflow = "hidden", this._doLayout(
                d, o), this.editor.setSelection(e);
            var h = Math.min(this.editor.getModel().getLineCount(),
                Math.max(1, e.endLineNumber + 1));
            this.editor.revealLine(h)
          }, t.prototype.setCssClass = function (e, t) {
            t && this.container.classList.remove(t), r.addClass(this.container,
                e)
          }, t.prototype._onWidth = function (e) {
          }, t.prototype._doLayout = function (e, t) {
          }, t.prototype._relayout = function (e) {
            var t = this;
            this._viewZone.heightInLines !== e && this.editor.changeViewZones(
                function (n) {
                  t._viewZone.heightInLines = e, n.layoutZone(t._viewZone.id)
                })
          }, t.prototype._initSash = function () {
            var e = this;
            this._resizeSash = new s.Sash(this.domNode, this,
                {orientation: s.Orientation.HORIZONTAL}), this.options.isResizeable
            || (this._resizeSash.hide(), this._resizeSash.disable());
            var t;
            this._disposables.push(
                this._resizeSash.addListener("start", function (n) {
                  e._viewZone && (t = {
                    startY: n.startY,
                    heightInLines: e._viewZone.heightInLines
                  })
                })), this._disposables.push(
                this._resizeSash.addListener("end", function () {
                  t = void 0
                })), this._disposables.push(
                this._resizeSash.addListener("change", function (n) {
                  if (t) {
                    var i = (n.currentY - t.startY)
                            / e.editor.getConfiguration().lineHeight,
                        o = i < 0 ? Math.ceil(i) : Math.floor(i),
                        r = t.heightInLines + o;
                    r > 5 && r < 35 && e._relayout(r)
                  }
                }))
          }, t.prototype.getHorizontalSashLeft = function () {
            return 0
          }, t.prototype.getHorizontalSashTop = function () {
            return parseInt(this.domNode.style.height)
                - this._decoratingElementsHeight() / 2
          }, t.prototype.getHorizontalSashWidth = function () {
            var e = this.editor.getLayoutInfo();
            return e.width - e.minimapWidth
          }, t
        }(i.Widget);
        t.ZoneWidget = v
      }), define(d[336], h([6, 8]), function (e, t) {
    return e.create("vs/editor/common/modes/modesRegistry", t)
  }), define(d[337], h([6, 8]), function (e, t) {
    return e.create("vs/editor/common/services/bulkEdit", t)
  }), define(d[338], h([1, 0, 337, 33, 157, 3, 24, 7, 59, 2, 22]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";

        function d(e, t, i) {
          function r() {
            for (var e, t = 0, i = u; t < i.length; t++) {
              var o = i[t];
              l.hasChanged(o.resource) && (e || (e = []), e.push(
                  o.resource.fsPath))
            }
            if (e) {
              return n.localize(0, null, e.join(", "))
            }
          }

          var s, u = [], l = new h(i).start();
          return {
            progress: function (e) {
              s = e
            }, add: function (e) {
              u.push.apply(u, e)
            }, finish: function () {
              if (0 === u.length) {
                return a.TPromise.as(void 0);
              }
              var n = r();
              if (n) {
                return a.TPromise.wrapError(new Error(n));
              }
              var i, o;
              t && t.getModel()
              && (i = t.getModel().uri, o = t.getSelections());
              var c = new m(e, i, o, u, s);
              return c.prepare().then(function (e) {
                var t = r();
                if (t) {
                  throw new Error(t);
                }
                l.stop();
                var n = c.apply();
                return c.dispose(), n
              })
            }, ariaMessage: function () {
              var e = u.length, t = o.size(o.groupBy(u, function (e) {
                return e.resource.toString()
              }));
              return 0 === e ? n.localize(1, null) : e > 1 && t > 1
                  ? n.localize(2, null, e, t) : n.localize(3, null, e, t)
            }
          }
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var h = function () {
          function e(e) {
            this._fileService = e
          }

          return e.prototype.start = function () {
            var e, t = Object.create(null);
            return this._fileService && (e = this._fileService.onFileChanges(
                function (e) {
                  e.changes.forEach(function (e) {
                    var n = String(e.resource), i = t[n];
                    i || (t[n] = i = []), i.push(e)
                  })
                })), {
              stop: function () {
                return e && e.dispose()
              }, hasChanged: function (e) {
                return !!t[e.toString()]
              }, allChanges: function () {
                return i.flatten(o.values(t))
              }
            }
          }, e
        }(), p = function () {
          function e(e) {
            this._endCursorSelection = null, this._modelReference = e, this._edits = []
          }

          return Object.defineProperty(e.prototype, "_model", {
            get: function () {
              return this._modelReference.object.textEditorModel
            }, enumerable: !0, configurable: !0
          }), e.prototype.addEdit = function (e) {
            if ("number" == typeof e.newEol
            && (this._newEol = e.newEol), e.range || e.newText) {
              var t = void 0;
              t = e.range ? l.Range.lift(e.range)
                  : this._model.getFullModelRange(), this._edits.push(
                  u.EditOperation.replaceMove(t, e.newText))
            }
          }, e.prototype.apply = function () {
            var e = this;
            this._edits.length > 0 && (this._edits = this._edits.map(
                function (e, t) {
                  return {value: e, index: t}
                }).sort(function (e, t) {
              var n = l.Range.compareRangesUsingStarts(e.value.range,
                  t.value.range);
              return 0 === n && (n = e.index - t.index), n
            }).map(function (e) {
              return e.value
            }), this._initialSelections = this._getInitialSelections(), this._model.pushEditOperations(
                this._initialSelections, this._edits, function (t) {
                  return e._getEndCursorSelections(t)
                })), void 0 !== this._newEol && this._model.setEOL(this._newEol)
          }, e.prototype._getInitialSelections = function () {
            var e = this._edits[0].range;
            return [new c.Selection(e.startLineNumber, e.startColumn,
                e.endLineNumber, e.endColumn)]
          }, e.prototype._getEndCursorSelections = function (e) {
            for (var t = 0, n = 0; n < e.length; n++) {
              for (var i = e[n].range,
                  o = 0; o < this._initialSelections.length; o++) {
                var r = this._initialSelections[o];
                if (l.Range.areIntersectingOrTouching(i, r)) {
                  t = n;
                  break
                }
              }
            }
            var s = e[t].range;
            return this._endCursorSelection = new c.Selection(s.endLineNumber,
                s.endColumn, s.endLineNumber,
                s.endColumn), [this._endCursorSelection]
          }, e.prototype.getEndCursorSelection = function () {
            return this._endCursorSelection
          }, e.prototype.dispose = function () {
            this._model
            && (this._modelReference.dispose(), this._modelReference = null)
          }, e
        }(), g = function (e) {
          function t(t, n) {
            var i = e.call(this, t) || this;
            return i._knownInitialSelections = n, i
          }

          return f(t, e), t.prototype._getInitialSelections = function () {
            return this._knownInitialSelections
          }, t
        }(p), m = function () {
          function e(e, t, n, i, o) {
            void 0 === o
            && (o = null), this.progress = o, this._numberOfResourcesToModify = 0, this._numberOfChanges = 0, this._edits = Object.create(
                null), this._textModelResolverService = e, this._sourceModel = t, this._sourceSelections = n, this._sourceModelTask = null;
            for (var r = 0, s = i; r < s.length; r++) {
              var a = s[r];
              this._addEdit(a)
            }
          }

          return e.prototype.resourcesCount = function () {
            return this._numberOfResourcesToModify
          }, e.prototype.changeCount = function () {
            return this._numberOfChanges
          }, e.prototype._addEdit = function (e) {
            var t = this._edits[e.resource.toString()];
            t
            || (this._edits[e.resource.toString()] = t = [], this._numberOfResourcesToModify += 1), this._numberOfChanges += 1, t.push(
                e)
          }, e.prototype.prepare = function () {
            var e = this;
            if (this._tasks) {
              throw new Error(
                  "illegal state - already prepared");
            }
            this._tasks = [];
            var t = [];
            return this.progress && this.progress.total(
                2 * this._numberOfResourcesToModify), o.forEach(this._edits,
                function (n) {
                  var i = e._textModelResolverService.createModelReference(
                      s.default.parse(n.key)).then(function (t) {
                    var i = t.object;
                    if (!i || !i.textEditorModel) {
                      throw new Error(
                          "Cannot load file " + n.key);
                    }
                    var o, r = i.textEditorModel;
                    e._sourceModel && r.uri.toString()
                    === e._sourceModel.toString() ? (e._sourceModelTask = new g(
                            t, e._sourceSelections), o = e._sourceModelTask)
                        : o = new p(t), n.value.forEach(function (e) {
                      return o.addEdit(e)
                    }), e._tasks.push(o), e.progress && e.progress.worked(1)
                  });
                  t.push(i)
                }), a.TPromise.join(t).then(function (t) {
              return e
            })
          }, e.prototype.apply = function () {
            var e = this;
            this._tasks.forEach(function (t) {
              return e.applyTask(t)
            });
            var t = null;
            return this._sourceModelTask
            && (t = this._sourceModelTask.getEndCursorSelection()), t
          }, e.prototype.applyTask = function (e) {
            e.apply(), this.progress && this.progress.worked(1)
          }, e.prototype.dispose = function () {
            this._tasks = r.dispose(this._tasks)
          }, e
        }();
        t.bulkEdit = function (e, t, n, i, o) {
          void 0 === o && (o = null);
          var r = d(e, t, i);
          return r.add(n), r.progress(o), r.finish()
        }, t.createBulkEdit = d
      }), define(d[339], h([6, 8]), function (e, t) {
    return e.create("vs/editor/common/services/modelServiceImpl", t)
  }), define(d[340], h([6, 8]), function (e, t) {
    return e.create("vs/editor/common/view/editorColorRegistry", t)
  }), define(d[341], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/bracketMatching/common/bracketMatching",
        t)
  }), define(d[342], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/caretOperations/common/caretOperations",
        t)
  }), define(d[343], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/caretOperations/common/transpose", t)
  }), define(d[344], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/clipboard/browser/clipboard", t)
  }), define(d[345], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/comment/common/comment", t)
  }), define(d[346], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/contextmenu/browser/contextmenu", t)
  }), define(d[347], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/find/browser/findWidget", t)
  }), define(d[348], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/find/common/findController", t)
  }), define(d[349], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/folding/browser/folding", t)
  }), define(d[350], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/format/browser/formatActions", t)
  }), define(d[351], h([6, 8]), function (e, t) {
    return e.create(
        "vs/editor/contrib/goToDeclaration/browser/goToDeclarationCommands", t)
  }), define(d[352], h([6, 8]), function (e, t) {
    return e.create(
        "vs/editor/contrib/goToDeclaration/browser/goToDeclarationMouse", t)
  }), define(d[353], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/gotoError/browser/gotoError", t)
  }), define(d[354], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/hover/browser/hover", t)
  }), define(d[355], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/hover/browser/modesContentHover", t)
  }), define(d[356], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/inPlaceReplace/common/inPlaceReplace", t)
  }), define(d[357], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/linesOperations/common/linesOperations",
        t)
  }), define(d[358], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/links/browser/links", t)
  }), define(d[359], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/multicursor/common/multicursor", t)
  }), define(d[360], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/parameterHints/browser/parameterHints",
        t)
  }), define(d[361], h([6, 8]), function (e, t) {
    return e.create(
        "vs/editor/contrib/parameterHints/browser/parameterHintsWidget", t)
  }), define(d[362], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/quickFix/browser/quickFixCommands", t)
  }), define(d[363], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/referenceSearch/browser/referenceSearch",
        t)
  }), define(d[364], h([6, 8]), function (e, t) {
    return e.create(
        "vs/editor/contrib/referenceSearch/browser/referencesController", t)
  }), define(d[365], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/referenceSearch/browser/referencesModel",
        t)
  }), define(d[125], h([1, 0, 365, 38, 11, 45, 3, 9, 108, 7, 2]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function () {
          function e(e, t, n) {
            this._parent = e, this._range = t, this._eventBus = n, this._id = u.defaultGenerator.nextId()
          }

          return Object.defineProperty(e.prototype, "id", {
            get: function () {
              return this._id
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "model", {
            get: function () {
              return this._parent
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "parent", {
            get: function () {
              return this._parent
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "uri", {
            get: function () {
              return this._parent.uri
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "name", {
            get: function () {
              return this._parent.name
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "directory", {
            get: function () {
              return this._parent.directory
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "range", {
            get: function () {
              return this._range
            }, set: function (e) {
              this._range = e, this._eventBus.emit("ref/changed", this)
            }, enumerable: !0, configurable: !0
          }), e.prototype.getAriaMessage = function () {
            return n.localize(0, null, r.basename(this.uri.fsPath),
                this.range.startLineNumber, this.range.startColumn)
          }, e
        }();
        t.OneReference = d;
        var h = function () {
          function e(e) {
            this._modelReference = e
          }

          return Object.defineProperty(e.prototype, "_model", {
            get: function () {
              return this._modelReference.object.textEditorModel
            }, enumerable: !0, configurable: !0
          }), e.prototype.preview = function (e, t) {
            void 0 === t && (t = 8);
            var n = this._model;
            if (n) {
              var i = e.startLineNumber, o = e.startColumn, r = e.endColumn,
                  s = n.getWordUntilPosition({lineNumber: i, column: o - t}),
                  u = new c.Range(i, s.startColumn, i, o),
                  l = new c.Range(i, r, i, Number.MAX_VALUE);
              return {
                before: n.getValueInRange(u).replace(/^\s+/, a.empty),
                inside: n.getValueInRange(e),
                after: n.getValueInRange(l).replace(/\s+$/, a.empty)
              }
            }
          }, e.prototype.dispose = function () {
            this._modelReference
            && (this._modelReference.dispose(), this._modelReference = null)
          }, e
        }();
        t.FilePreview = h;
        var p = function () {
          function e(e, t) {
            this._parent = e, this._uri = t, this._children = []
          }

          return Object.defineProperty(e.prototype, "id", {
            get: function () {
              return this._uri.toString()
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "parent", {
            get: function () {
              return this._parent
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "children", {
            get: function () {
              return this._children
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "uri", {
            get: function () {
              return this._uri
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "name", {
            get: function () {
              return r.basename(this.uri.fsPath)
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "directory", {
            get: function () {
              return r.dirname(this.uri.fsPath)
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "preview", {
            get: function () {
              return this._preview
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "failure", {
            get: function () {
              return this._loadFailure
            }, enumerable: !0, configurable: !0
          }), e.prototype.getAriaMessage = function () {
            var e = this.children.length;
            return 1 === e ? n.localize(1, null, r.basename(this.uri.fsPath),
                this.uri.fsPath) : n.localize(2, null, e,
                r.basename(this.uri.fsPath), this.uri.fsPath)
          }, e.prototype.resolve = function (e) {
            var t = this;
            return this._resolved ? l.TPromise.as(this)
                : e.createModelReference(this._uri).then(function (e) {
                  if (!e.object) {
                    throw e.dispose(), new Error;
                  }
                  return t._preview = new h(e), t._resolved = !0, t
                }, function (e) {
                  return t._children = [], t._resolved = !0, t._loadFailure = e, t
                })
          }, e.prototype.dispose = function () {
            this._preview && (this._preview.dispose(), this._preview = null)
          }, e
        }();
        t.FileReferences = p;
        var f = function () {
          function e(t) {
            this._groups = [], this._references = [], this._eventBus = new i.EventEmitter, this.onDidChangeReferenceRange = o.fromEventEmitter(
                this._eventBus, "ref/changed"), t.sort(e._compareReferences);
            for (var n, r = 0, s = t; r < s.length; r++) {
              var a = s[r];
              if (n && n.uri.toString() === a.uri.toString() || (n = new p(this,
                  a.uri), this.groups.push(n)), 0 === n.children.length
              || !c.Range.equalsRange(a.range,
                  n.children[n.children.length - 1].range)) {
                var u = new d(n, a.range, this._eventBus);
                this._references.push(u), n.children.push(u)
              }
            }
          }

          return Object.defineProperty(e.prototype, "empty", {
            get: function () {
              return 0 === this._groups.length
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "references", {
            get: function () {
              return this._references
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "groups", {
            get: function () {
              return this._groups
            }, enumerable: !0, configurable: !0
          }), e.prototype.getAriaMessage = function () {
            return this.empty ? n.localize(3, null) : 1
            === this.references.length ? n.localize(4, null,
                this.references[0].uri.fsPath) : 1 === this.groups.length
                ? n.localize(5, null, this.references.length,
                    this.groups[0].uri.fsPath) : n.localize(6, null,
                    this.references.length, this.groups.length)
          }, e.prototype.nextReference = function (e) {
            var t = e.parent.children.indexOf(e), n = e.parent.children.length,
                i = e.parent.parent.groups.length;
            return t + 1 < n || 1 === i ? e.parent.children[(t + 1) % n]
                : (t = e.parent.parent.groups.indexOf(e.parent), t = (t + 1)
                    % i, e.parent.parent.groups[t].children[0])
          }, e.prototype.nearestReference = function (e, t) {
            var n = this._references.map(function (n, i) {
              return {
                idx: i,
                prefixLen: a.commonPrefixLength(n.uri.toString(), e.toString()),
                offsetDist: 100 * Math.abs(
                    n.range.startLineNumber - t.lineNumber) + Math.abs(
                    n.range.startColumn - t.column)
              }
            }).sort(function (e, t) {
              return e.prefixLen > t.prefixLen ? -1 : e.prefixLen < t.prefixLen
                  ? 1 : e.offsetDist < t.offsetDist ? -1 : e.offsetDist
                  > t.offsetDist ? 1 : 0
            })[0];
            if (n) {
              return this._references[n.idx]
            }
          }, e.prototype.dispose = function () {
            this._groups = s.dispose(this._groups)
          }, e._compareReferences = function (e, t) {
            var n = e.uri.toString(), i = t.uri.toString();
            return n < i ? -1 : n > i ? 1 : c.Range.compareRangesUsingStarts(
                e.range, t.range)
          }, e
        }();
        t.ReferencesModel = f
      }), define(d[367], h([6, 8]), function (e, t) {
    return e.create(
        "vs/editor/contrib/referenceSearch/browser/referencesWidget", t)
  }), define(d[368], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/rename/browser/rename", t)
  }), define(d[369], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/rename/browser/renameInputField", t)
  }),define(d[370], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/smartSelect/common/smartSelect", t)
  }),define(d[371], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/suggest/browser/suggestController", t)
  }),define(d[372], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/suggest/browser/suggestWidget", t)
  }),define(d[373], h([6, 8]), function (e, t) {
    return e.create(
        "vs/editor/contrib/toggleTabFocusMode/common/toggleTabFocusMode", t)
  }),define(d[374], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/wordHighlighter/common/wordHighlighter",
        t)
  }),define(d[375], h([6, 8]), function (e, t) {
    return e.create("vs/editor/contrib/zoneWidget/browser/peekViewWidget", t)
  }),define(d[376], h([6, 8]), function (e, t) {
    return e.create("vs/editor/standalone/browser/inspectTokens/inspectTokens",
        t)
  }),define(d[377], h([6, 8]), function (e, t) {
    return e.create("vs/editor/standalone/browser/quickOpen/gotoLine", t)
  }),define(d[378], h([6, 8]), function (e, t) {
    return e.create("vs/editor/standalone/browser/quickOpen/quickCommand", t)
  }),define(d[379], h([6, 8]), function (e, t) {
    return e.create("vs/editor/standalone/browser/quickOpen/quickOutline", t)
  }),define(d[380], h([6, 8]), function (e, t) {
    return e.create("vs/editor/standalone/browser/standaloneCodeEditor", t)
  }),define(d[381], h([6, 8]), function (e, t) {
    return e.create(
        "vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast", t)
  }),define(d[382], h([6, 8]), function (e, t) {
    return e.create("vs/platform/configuration/common/configurationRegistry", t)
  }),define(d[383], h([6, 8]), function (e, t) {
    return e.create("vs/platform/keybinding/common/abstractKeybindingService",
        t)
  }),define(d[384], h([6, 8]), function (e, t) {
    return e.create("vs/platform/message/common/message", t)
  }),define(d[385], h([6, 8]), function (e, t) {
    return e.create("vs/platform/theme/common/colorRegistry", t)
  }),define(d[386], h([1, 0, 52, 3, 47, 53, 281, 79, 36, 409]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function () {
          function e(e, t, n, i) {
            var o = this;
            this.setContainer(
                e), this.contextViewService = t, this.telemetryService = n, this.messageService = i, this.actionRunner = new r.ActionRunner, this.menuContainerElement = null, this.toDispose = [];
            var s = !1;
            this.toDispose.push(
                this.actionRunner.addListener(a.EventType.BEFORE_RUN,
                    function (e) {
                      o.telemetryService && o.telemetryService.publicLog(
                          "workbenchActionExecuted", {
                            id: e.action.id,
                            from: "contextMenu"
                          }), (s = !!e.retainActionItem)
                      || o.contextViewService.hideContextView(!1)
                    })), this.toDispose.push(
                this.actionRunner.addListener(a.EventType.RUN, function (e) {
                  s && o.contextViewService.hideContextView(!1), s = !1, e.error
                  && o.messageService && o.messageService.show(u.default.Error,
                      e.error)
                }))
          }

          return e.prototype.setContainer = function (e) {
            var t = this;
            this.$el && (this.$el.off(
                ["click", "mousedown"]), this.$el = null), e && (this.$el = n.$(
                e), this.$el.on("mousedown", function (e) {
              return t.onMouseDown(e)
            }))
          }, e.prototype.showContextMenu = function (e) {
            var t = this;
            e.getActions().done(function (n) {
              t.contextViewService.showContextView({
                getAnchor: function () {
                  return e.getAnchor()
                }, canRelayout: !1, render: function (o) {
                  t.menuContainerElement = o;
                  var r = e.getMenuClassName ? e.getMenuClassName() : "";
                  r && (o.className += " " + r);
                  var u = new s.Menu(o, n, {
                    actionItemProvider: e.getActionItem,
                    context: e.getActionsContext ? e.getActionsContext() : null,
                    actionRunner: t.actionRunner
                  }), l = u.addListener(a.EventType.CANCEL, function (e) {
                    t.contextViewService.hideContextView(!0)
                  }), c = u.addListener(a.EventType.BLUR, function (e) {
                    t.contextViewService.hideContextView(!0)
                  });
                  return u.focus(), i.combinedDisposable([l, c, u])
                }, onHide: function (n) {
                  e.onHide && e.onHide(n), t.menuContainerElement = null
                }
              })
            })
          }, e.prototype.onMouseDown = function (e) {
            if (this.menuContainerElement) {
              for (var t = new o.StandardMouseEvent(e).target; t;) {
                if (t === this.menuContainerElement) {
                  return;
                }
                t = t.parentElement
              }
              this.contextViewService.hideContextView()
            }
          }, e.prototype.dispose = function () {
            this.setContainer(null)
          }, e
        }();
        t.ContextMenuHandler = l
      }),define(d[387], h([1, 0, 386]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e, t, i, o) {
        this.contextMenuHandler = new n.ContextMenuHandler(e, o, t, i)
      }

      return e.prototype.dispose = function () {
        this.contextMenuHandler.dispose()
      }, e.prototype.setContainer = function (e) {
        this.contextMenuHandler.setContainer(e)
      }, e.prototype.showContextMenu = function (e) {
        this.contextMenuHandler.showContextMenu(e)
      }, e
    }();
    t.ContextMenuService = i
  }),define(d[187], h([1, 0, 10]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      function e(e) {
        this._staticArguments = e
      }

      return e.prototype.appendStaticArguments = function (e) {
        this._staticArguments.push.apply(this._staticArguments, e)
      }, e.prototype.staticArguments = function (e) {
        return isNaN(e) ? this._staticArguments.slice(0)
            : this._staticArguments[e]
      }, e.prototype._validate = function (e) {
        if (!e) {
          throw n.illegalArgument("can not be falsy")
        }
      }, e
    }();
    t.AbstractDescriptor = i;
    var o = function (e) {
      function t(t) {
        for (var n = [], i = 1; i < arguments.length; i++) {
          n[i
          - 1] = arguments[i];
        }
        var o = e.call(this, n) || this;
        return o._ctor = t, o
      }

      return f(t, e), Object.defineProperty(t.prototype, "ctor", {
        get: function () {
          return this._ctor
        }, enumerable: !0, configurable: !0
      }), t.prototype.bind = function () {
        for (var e = [], n = 0; n < arguments.length; n++) {
          e[n] = arguments[n];
        }
        var i = [];
        return i = i.concat(this.staticArguments()), i = i.concat(
            e), new (t.bind.apply(t, [void 0, this._ctor].concat(i)))
      }, t
    }(i);
    t.SyncDescriptor = o, t.createSyncDescriptor = function (e) {
      for (var t = [], n = 1; n < arguments.length; n++) {
        t[n
        - 1] = arguments[n];
      }
      return new (o.bind.apply(o, [void 0, e].concat(t)))
    };
    var r = function (e) {
      function t(t, n) {
        for (var i = [], o = 2; o < arguments.length; o++) {
          i[o
          - 2] = arguments[o];
        }
        var r = e.call(this, i) || this;
        if (r._moduleName = t, r._ctorName = n, "string"
        != typeof t) {
          throw new Error(
              "Invalid AsyncDescriptor arguments, expected `moduleName` to be a string!");
        }
        return r
      }

      return f(t, e), t.create = function (e, n) {
        return new t(e, n)
      }, Object.defineProperty(t.prototype, "moduleName", {
        get: function () {
          return this._moduleName
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(t.prototype, "ctorName", {
        get: function () {
          return this._ctorName
        }, enumerable: !0, configurable: !0
      }), t.prototype.bind = function () {
        for (var e = [], n = 0; n < arguments.length; n++) {
          e[n] = arguments[n];
        }
        var i = [];
        return i = i.concat(this.staticArguments()), i = i.concat(
            e), new (t.bind.apply(t,
            [void 0, this.moduleName, this.ctorName].concat(i)))
      }, t
    }(i);
    t.AsyncDescriptor = r
  }),define(d[16], h([1, 0]), function (e, t) {
    "use strict";

    function n(e, t, n, i) {
      t[o.DI_TARGET] === t ? t[o.DI_DEPENDENCIES].push(
          {id: e, index: n, optional: i}) : (t[o.DI_DEPENDENCIES] = [{
        id: e,
        index: n,
        optional: i
      }], t[o.DI_TARGET] = t)
    }

    function i(e) {
      if (o.serviceIds.has(e)) {
        return o.serviceIds.get(e);
      }
      var t = function (e, i, o) {
        if (3 !== arguments.length) {
          throw new Error(
              "@IServiceName-decorator can only be used to decorate a parameter");
        }
        n(t, e, o, !1)
      };
      return t.toString = function () {
        return e
      }, o.serviceIds.set(e, t), t
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var o;
    !function (e) {
      e.serviceIds = new Map, e.DI_TARGET = "$di$target", e.DI_DEPENDENCIES = "$di$dependencies", e.getServiceDependencies = function (t) {
        return t[e.DI_DEPENDENCIES] || []
      }
    }(o = t._util || (t._util = {})), t.IInstantiationService = i(
        "instantiationService"), t.createDecorator = i, t.optional = function (e) {
      return function (t, i, o) {
        if (3 !== arguments.length) {
          throw new Error(
              "@optional-decorator can only be used to decorate a parameter");
        }
        n(e, t, o, !0)
      }
    }
  }),define(d[42], h([1, 0, 16, 20]), function (e, t, n, i) {
    "use strict";

    function o(e) {
      if (e) {
        var t = e.getControl();
        if (t) {
          if (i.isCommonCodeEditor(t)) {
            return {codeEditor: t, diffEditor: null};
          }
          if (i.isCommonDiffEditor(t)) {
            return {codeEditor: null, diffEditor: t}
          }
        }
      }
      return {codeEditor: null, diffEditor: null}
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.ICodeEditorService = n.createDecorator(
        "codeEditorService"), t.getCodeOrDiffEditor = o, t.getCodeEditor = function (e) {
      var t = o(e);
      return t.codeEditor || t.diffEditor && t.diffEditor.getModifiedEditor()
          || null
    }
  }),define(d[61], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.ID_EDITOR_WORKER_SERVICE = "editorWorkerService", t.IEditorWorkerService = n.createDecorator(
        t.ID_EDITOR_WORKER_SERVICE)
  }),define(d[88], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.IModeService = n.createDecorator("modeService")
  }),define(d[56], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.IModelService = n.createDecorator("modelService")
  }),define(d[87], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.ITextModelService = n.createDecorator(
        "textModelService")
  }),define(d[146], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.ITextResourceConfigurationService = n.createDecorator(
        "textResourceConfigurationService")
  });
  var y = this && this.__param || function (e, t) {
    return function (n, i) {
      t(n, i, e)
    }
  };
  define(d[147], h([1, 0, 18, 3, 7, 197, 473, 17, 56, 226, 43, 146, 88]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h) {
        "use strict";

        function p(e, t) {
          var n = e.getModel(t);
          return !!n && !n.isTooLargeForTokenization()
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var g = 6e4, m = 3e5, _ = function (e) {
          function t(t, i, r) {
            var s = e.call(this) || this;
            return s._modelService = t, s._workerManager = s._register(
                new b(s._modelService)), s._register(
                a.LinkProviderRegistry.register("*", {
                  provideLinks: function (e, t) {
                    return p(s._modelService, e.uri) ? n.wireCancellationToken(
                        t, s._workerManager.withWorker().then(function (t) {
                          return t.computeLinks(e.uri)
                        })) : o.TPromise.as([])
                  }
                })), s._register(a.SuggestRegistry.register("*",
                new C(s._workerManager, i, r, s._modelService))), s
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.prototype.canComputeDiff = function (e, t) {
            return p(this._modelService, e) && p(this._modelService, t)
          }, t.prototype.computeDiff = function (e, t, n) {
            return this._workerManager.withWorker().then(function (i) {
              return i.computeDiff(e, t, n)
            })
          }, t.prototype.canComputeDirtyDiff = function (e, t) {
            return p(this._modelService, e) && p(this._modelService, t)
          }, t.prototype.computeDirtyDiff = function (e, t, n) {
            return this._workerManager.withWorker().then(function (i) {
              return i.computeDirtyDiff(e, t, n)
            })
          }, t.prototype.computeMoreMinimalEdits = function (e, t, n) {
            return Array.isArray(t) && 0 !== t.length && p(this._modelService,
                e) ? this._workerManager.withWorker().then(function (i) {
              return i.computeMoreMinimalEdits(e, t, n)
            }) : o.TPromise.as(t)
          }, t.prototype.canNavigateValueSet = function (e) {
            return p(this._modelService, e)
          }, t.prototype.navigateValueSet = function (e, t, n) {
            return this._workerManager.withWorker().then(function (i) {
              return i.navigateValueSet(e, t, n)
            })
          }, t = v(
              [y(0, u.IModelService), y(1, d.ITextResourceConfigurationService),
                y(2, h.IModeService)], t)
        }(i.Disposable);
        t.EditorWorkerServiceImpl = _;
        var C = function () {
          function e(e, t, n, i) {
            this._workerManager = e, this._configurationService = t, this._modeService = n, this._modelService = i
          }

          return e.prototype.provideCompletionItems = function (e, t) {
            if (this._configurationService.getConfiguration(e.uri, t,
                "editor").wordBasedSuggestions && p(this._modelService,
                e.uri)) {
              return this._workerManager.withWorker().then(
                  function (n) {
                    return n.textualSuggest(e.uri, t)
                  })
            }
          }, e
        }(), b = function (e) {
          function t(t) {
            var i = e.call(this) || this;
            return i._modelService = t, i._editorWorkerClient = null, i._register(
                new n.IntervalTimer).cancelAndSet(function () {
              return i._checkStopIdleWorker()
            }, Math.round(m / 2)), i._register(
                i._modelService.onModelRemoved(function (e) {
                  return i._checkStopEmptyWorker()
                })), i
          }

          return f(t, e), t.prototype.dispose = function () {
            this._editorWorkerClient
            && (this._editorWorkerClient.dispose(), this._editorWorkerClient = null), e.prototype.dispose.call(
                this)
          }, t.prototype._checkStopEmptyWorker = function () {
            this._editorWorkerClient && 0
            === this._modelService.getModels().length
            && (this._editorWorkerClient.dispose(), this._editorWorkerClient = null)
          }, t.prototype._checkStopIdleWorker = function () {
            this._editorWorkerClient && (new Date).getTime()
            - this._lastWorkerUsedTime > m
            && (this._editorWorkerClient.dispose(), this._editorWorkerClient = null)
          }, t.prototype.withWorker = function () {
            return this._lastWorkerUsedTime = (new Date).getTime(), this._editorWorkerClient
            || (this._editorWorkerClient = new E(this._modelService,
                "editorWorkerService")), o.TPromise.as(this._editorWorkerClient)
          }, t
        }(i.Disposable), w = function (e) {
          function t(t, i, o) {
            var r = e.call(this) || this;
            if (r._syncedModels = Object.create(
                null), r._syncedModelsLastUsedTime = Object.create(
                null), r._proxy = t, r._modelService = i, !o) {
              var s = new n.IntervalTimer;
              s.cancelAndSet(function () {
                return r._checkStopModelSync()
              }, Math.round(g / 2)), r._register(s)
            }
            return r
          }

          return f(t, e), t.prototype.dispose = function () {
            for (var t in this._syncedModels) {
              i.dispose(this._syncedModels[t]);
            }
            this._syncedModels = Object.create(
                null), this._syncedModelsLastUsedTime = Object.create(
                null), e.prototype.dispose.call(this)
          }, t.prototype.esureSyncedResources = function (e) {
            for (var t = 0; t < e.length; t++) {
              var n = e[t], i = n.toString();
              this._syncedModels[i] || this._beginModelSync(
                  n), this._syncedModels[i]
              && (this._syncedModelsLastUsedTime[i] = (new Date).getTime())
            }
          }, t.prototype._checkStopModelSync = function () {
            var e = (new Date).getTime(), t = [];
            for (var n in this._syncedModelsLastUsedTime) {
              e
              - this._syncedModelsLastUsedTime[n] > g && t.push(n);
            }
            for (var i = 0; i < t.length; i++) {
              this._stopModelSync(t[i])
            }
          }, t.prototype._beginModelSync = function (e) {
            var t = this, n = this._modelService.getModel(e);
            if (n && !n.isTooLargeForTokenization()) {
              var i = e.toString();
              this._proxy.acceptNewModel({
                url: n.uri.toString(),
                lines: n.getLinesContent(),
                EOL: n.getEOL(),
                versionId: n.getVersionId()
              });
              var o = [];
              o.push(n.onDidChangeContent(function (e) {
                t._proxy.acceptModelChanged(i.toString(), e)
              })), o.push(n.onWillDispose(function () {
                t._stopModelSync(i)
              })), o.push({
                dispose: function () {
                  t._proxy.acceptRemovedModel(i)
                }
              }), this._syncedModels[i] = o
            }
          }, t.prototype._stopModelSync = function (e) {
            var t = this._syncedModels[e];
            delete this._syncedModels[e], delete this._syncedModelsLastUsedTime[e], i.dispose(
                t)
          }, t
        }(i.Disposable), S = function () {
          function e(e) {
            this._instance = e, this._proxyObj = o.TPromise.as(this._instance)
          }

          return e.prototype.dispose = function () {
            this._instance.dispose(), this._instance = null, this._proxyObj = null
          }, e.prototype.getProxyObject = function () {
            return new n.ShallowCancelThenPromise(this._proxyObj)
          }, e
        }(), E = function (e) {
          function t(t, n) {
            var i = e.call(this) || this;
            return i._modelService = t, i._workerFactory = new s.DefaultWorkerFactory(
                n), i._worker = null, i._modelManager = null, i
          }

          return f(t, e), t.prototype._getOrCreateWorker = function () {
            if (!this._worker) {
              try {
                this._worker = this._register(
                    new r.SimpleWorkerClient(this._workerFactory,
                        "vs/editor/common/services/editorSimpleWorker"))
              } catch (e) {
                r.logOnceWebWorkerWarning(e), this._worker = new S(
                    new l.EditorSimpleWorkerImpl)
              }
            }
            return this._worker
          }, t.prototype._getProxy = function () {
            var e = this;
            return new n.ShallowCancelThenPromise(
                this._getOrCreateWorker().getProxyObject().then(null,
                    function (t) {
                      return r.logOnceWebWorkerWarning(t), e._worker = new S(
                          new l.EditorSimpleWorkerImpl), e._getOrCreateWorker().getProxyObject()
                    }))
          }, t.prototype._getOrCreateModelManager = function (e) {
            return this._modelManager || (this._modelManager = this._register(
                new w(e, this._modelService, !1))), this._modelManager
          }, t.prototype._withSyncedResources = function (e) {
            var t = this;
            return this._getProxy().then(function (n) {
              return t._getOrCreateModelManager(n).esureSyncedResources(e), n
            })
          }, t.prototype.computeDiff = function (e, t, n) {
            return this._withSyncedResources([e, t]).then(function (i) {
              return i.computeDiff(e.toString(), t.toString(), n)
            })
          }, t.prototype.computeDirtyDiff = function (e, t, n) {
            return this._withSyncedResources([e, t]).then(function (i) {
              return i.computeDirtyDiff(e.toString(), t.toString(), n)
            })
          }, t.prototype.computeMoreMinimalEdits = function (e, t, n) {
            return this._withSyncedResources([e]).then(function (i) {
              return i.computeMoreMinimalEdits(e.toString(), t, n)
            })
          }, t.prototype.computeLinks = function (e) {
            return this._withSyncedResources([e]).then(function (t) {
              return t.computeLinks(e.toString())
            })
          }, t.prototype.textualSuggest = function (e, t) {
            var n = this;
            return this._withSyncedResources([e]).then(function (i) {
              var o = n._modelService.getModel(e);
              if (!o) {
                return null;
              }
              var r = c.LanguageConfigurationRegistry.getWordDefinition(
                      o.getLanguageIdentifier().id), s = r.source,
                  a = (r.global ? "g" : "") + (r.ignoreCase ? "i" : "")
                      + (r.multiline ? "m" : "");
              return i.textualSuggest(e.toString(), t, s, a)
            })
          }, t.prototype.navigateValueSet = function (e, t, n) {
            var i = this;
            return this._withSyncedResources([e]).then(function (o) {
              var r = i._modelService.getModel(e);
              if (!r) {
                return null;
              }
              var s = c.LanguageConfigurationRegistry.getWordDefinition(
                      r.getLanguageIdentifier().id), a = s.source,
                  u = (s.global ? "g" : "") + (s.ignoreCase ? "i" : "")
                      + (s.multiline ? "m" : "");
              return o.navigateValueSet(e.toString(), t, n, a, u)
            })
          }, t
        }(i.Disposable);
        t.EditorWorkerClient = E
      }), define(d[397], h([1, 0, 18, 147]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.createWebWorker = function (e, t) {
      return new o(e, t)
    };
    var o = function (e) {
      function t(t, n) {
        var i = e.call(this, t, n.label) || this;
        return i._foreignModuleId = n.moduleId, i._foreignModuleCreateData = n.createData
            || null, i._foreignProxy = null, i
      }

      return f(t, e), t.prototype._getForeignProxy = function () {
        var e = this;
        return this._foreignProxy
        || (this._foreignProxy = new n.ShallowCancelThenPromise(
            this._getProxy().then(function (t) {
              return t.loadForeignModule(e._foreignModuleId,
                  e._foreignModuleCreateData).then(function (n) {
                e._foreignModuleId = null, e._foreignModuleCreateData = null;
                for (var i = {}, o = 0; o < n.length;
                    o++) {
                  i[n[o]] = function (e, t) {
                    return function () {
                      var n = Array.prototype.slice.call(arguments, 0);
                      return t(e, n)
                    }
                  }(n[o], function (e, n) {
                    return t.fmr(e, n)
                  });
                }
                return i
              })
            }))), this._foreignProxy
      }, t.prototype.getProxy = function () {
        return this._getForeignProxy()
      }, t.prototype.withSyncedResources = function (e) {
        var t = this;
        return this._withSyncedResources(e).then(function (e) {
          return t.getProxy()
        })
      }, t
    }(i.EditorWorkerClient)
  }), define(d[398], h([1, 0, 7, 2, 56, 269]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      function e(e) {
        this._modelService = e
      }

      return e.prototype.getRangesToPosition = function (e, t) {
        return n.TPromise.as(this.getRangesToPositionSync(e, t))
      }, e.prototype.getRangesToPositionSync = function (e, t) {
        var n = this._modelService.getModel(e), i = [];
        return n && this._doGetRangesToPosition(n, t).forEach(function (e) {
          i.push({type: void 0, range: e})
        }), i
      }, e.prototype._doGetRangesToPosition = function (e, t) {
        var n, o, s = r.build(e);
        n = r.find(s, t);
        for (var a = []; n;) {
          o && i.Range.equalsRange(o, n.range) || a.push(
              n.range), o = n.range, n = n.parent;
        }
        return a = a.reverse()
      }, e = v([y(0, o.IModelService)], e)
    }();
    t.TokenSelectionSupport = s
  }), define(d[77], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.IStandaloneThemeService = n.createDecorator(
        "themeService")
  }), define(d[31], h([1, 0, 7, 29, 16]), function (e, t, n, i, o) {
    "use strict";

    function r(e) {
      return "object" == typeof e && "function" == typeof e.handler
          && (!e.description || "object" == typeof e.description)
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.ICommandService = o.createDecorator(
        "commandService"), t.CommandsRegistry = new (function () {
      function e() {
        this._commands = new Map
      }

      return e.prototype.registerCommand = function (e, t) {
        var n = this;
        if (!t) {
          throw new Error("invalid command");
        }
        var o;
        if (r(t)) {
          var s = t.handler, a = t.description;
          if (a) {
            for (var u = [], l = 0, c = a.args; l < c.length; l++) {
              var d = c[l];
              u.push(d.constraint)
            }
            o = {
              description: a, handler: function (e) {
                for (var t = [], n = 1; n < arguments.length; n++) {
                  t[n
                  - 1] = arguments[n];
                }
                return i.validateConstraints(t, u), s.apply(void 0,
                    [e].concat(t))
              }
            }
          } else {
            o = {handler: s}
          }
        } else {
          o = {handler: t};
        }
        var h = this._commands.get(e);
        return void 0 === h ? this._commands.set(e, o) : Array.isArray(h)
            ? h.unshift(o) : this._commands.set(e, [o, h]), {
          dispose: function () {
            var t = n._commands.get(e);
            if (Array.isArray(t)) {
              var i = t.indexOf(o);
              i >= 0 && (t.splice(i, 1), 0 === t.length && n._commands.delete(
                  e))
            } else {
              r(t) && n._commands.delete(e)
            }
          }
        }
      }, e.prototype.getCommand = function (e) {
        var t = this._commands.get(e);
        return Array.isArray(t) ? t[0] : t
      }, e.prototype.getCommands = function () {
        var e = this, t = Object.create(null);
        return this._commands.forEach(function (n, i) {
          t[i] = e.getCommand(i)
        }), t
      }, e
    }()), t.NullCommandService = {
      _serviceBrand: void 0,
      onWillExecuteCommand: function () {
        return {
          dispose: function () {
          }
        }
      },
      executeCommand: function () {
        return n.TPromise.as(void 0)
      }
    }
  }), define(d[401], h([1, 0, 10, 24, 7, 2, 17, 18, 31, 56]),
      function (e, t, n, i, o, r, s, a, u, l) {
        "use strict";

        function c(e) {
          var t = [],
              i = s.LinkProviderRegistry.ordered(e).reverse().map(function (i) {
                return a.asWinJsPromise(function (t) {
                  return i.provideLinks(e, t)
                }).then(function (e) {
                  if (Array.isArray(e)) {
                    var n = e.map(function (e) {
                      return new h(e, i)
                    });
                    t = d(t, n)
                  }
                }, n.onUnexpectedExternalError)
              });
          return o.TPromise.join(i).then(function () {
            return t
          })
        }

        function d(e, t) {
          var n, i, o, s, a, u, l = [];
          for (n = 0, o = 0, i = e.length, s = t.length; n < i && o
          < s;) {
            a = e[n], u = t[o], r.Range.areIntersectingOrTouching(a.range,
                u.range) ? n++ : r.Range.compareRangesUsingStarts(a.range,
                u.range) < 0 ? (l.push(a), n++) : (l.push(u), o++);
          }
          for (; n < i; n++) {
            l.push(e[n]);
          }
          for (; o < s; o++) {
            l.push(t[o]);
          }
          return l
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var h = function () {
          function e(e, t) {
            this._link = e, this._provider = t
          }

          return Object.defineProperty(e.prototype, "range", {
            get: function () {
              return this._link.range
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "url", {
            get: function () {
              return this._link.url
            }, enumerable: !0, configurable: !0
          }), e.prototype.resolve = function () {
            var e = this;
            if (this._link.url) {
              try {
                return o.TPromise.as(i.default.parse(this._link.url))
              } catch (e) {
                return o.TPromise.wrapError(new Error("invalid"))
              }
            }
            return "function" == typeof this._provider.resolveLink
                ? a.asWinJsPromise(function (t) {
                  return e._provider.resolveLink(e._link, t)
                }).then(function (t) {
                  return e._link = t || e._link, e._link.url ? e.resolve()
                      : o.TPromise.wrapError(new Error("missing"))
                }) : o.TPromise.wrapError(new Error("missing"))
          }, e
        }();
        t.Link = h, t.getLinks = c, u.CommandsRegistry.registerCommand(
            "_executeLinkProvider", function (e) {
              for (var t = [], n = 1; n < arguments.length; n++) {
                t[n
                - 1] = arguments[n];
              }
              var o = t[0];
              if (o instanceof i.default) {
                var r = e.get(l.IModelService).getModel(o);
                if (r) {
                  return c(r)
                }
              }
            })
      }), define(d[85], h([1, 0, 53, 187, 16, 31]),
      function (e, t, n, i, o, r) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var s = function () {
          function e(e) {
            this._id = e
          }

          return Object.defineProperty(e.prototype, "id", {
            get: function () {
              return this._id
            }, enumerable: !0, configurable: !0
          }), e.EditorTitle = new e("1"), e.EditorTitleContext = new e(
              "2"), e.EditorContext = new e("3"), e.ExplorerContext = new e(
              "4"), e.ProblemsPanelContext = new e(
              "5"), e.DebugVariablesContext = new e(
              "6"), e.DebugWatchContext = new e(
              "7"), e.DebugCallStackContext = new e(
              "8"), e.DebugBreakpointsContext = new e(
              "9"), e.DebugConsoleContext = new e("10"), e.SCMTitle = new e(
              "11"), e.SCMResourceGroupContext = new e(
              "12"), e.SCMResourceContext = new e(
              "13"), e.CommandPalette = new e("14"), e.ViewTitle = new e(
              "15"), e.ViewItemContext = new e("16"), e
        }();
        t.MenuId = s, t.IMenuService = o.createDecorator(
            "menuService"), t.MenuRegistry = new (function () {
          function e() {
            this._commands = Object.create(
                null), this._menuItems = Object.create(null)
          }

          return e.prototype.addCommand = function (e) {
            var t = this._commands[e.id];
            return this._commands[e.id] = e, void 0 !== t
          }, e.prototype.getCommand = function (e) {
            return this._commands[e]
          }, e.prototype.appendMenuItem = function (e, t) {
            var n = e.id, i = this._menuItems[n];
            return i ? i.push(t) : this._menuItems[n] = i = [t], {
              dispose: function () {
                var e = i.indexOf(t);
                e >= 0 && i.splice(e, 1)
              }
            }
          }, e.prototype.getMenuItems = function (e) {
            var t = e.id, n = this._menuItems[t] || [];
            return t === s.CommandPalette.id && this._appendImplicitItems(n), n
          }, e.prototype._appendImplicitItems = function (e) {
            for (var t = new Set, n = 0, i = e; n < i.length; n++) {
              var o = i[n], r = o.command, s = o.alt;
              t.add(r.id), s && t.add(s.id)
            }
            for (var a in this._commands) {
              t.has(a) || e.push(
                  {command: this._commands[a]})
            }
          }, e
        }());
        var a = function (e) {
          function t(t, n, i) {
            var o = e.call(this, t, n) || this;
            return o._commandService = i, o
          }

          return f(t, e), t.prototype.run = function () {
            for (var e = [], t = 0; t < arguments.length;
                t++) {
              e[t] = arguments[t];
            }
            return (n = this._commandService).executeCommand.apply(n,
                [this.id].concat(e));
            var n
          }, t = v([y(2, r.ICommandService)], t)
        }(n.Action);
        t.ExecuteCommandAction = a;
        var u = function (e) {
          function t(n, i, o, r) {
            var s = this;
            return s = "string" == typeof n.title ? e.call(this, n.id, n.title,
                r) || this : e.call(this, n.id, n.title.value, r)
                || this, s._cssClass = n.iconClass, s._enabled = !0, s._options = o
                || {}, s.item = n, s.alt = i ? new t(i, void 0, s._options, r)
                : void 0, s
          }

          return f(t, e), t.prototype.run = function () {
            for (var t = [], n = 0; n < arguments.length;
                n++) {
              t[n] = arguments[n];
            }
            var i = [];
            return this._options.arg && (i = i.concat(
                [this._options.arg])), this._options.shouldForwardArgs
            && (i = i.concat(t)), e.prototype.run.apply(this, i)
          }, t = v([y(3, r.ICommandService)], t)
        }(a);
        t.MenuItemAction = u;
        var l = function () {
          function e(e, t, n, o, r, s) {
            this._id = t, this._label = n, this._keybindings = o, this._keybindingContext = r, this._keybindingWeight = s, this._descriptor = i.createSyncDescriptor(
                e, this._id, this._label)
          }

          return Object.defineProperty(e.prototype, "syncDescriptor", {
            get: function () {
              return this._descriptor
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "id", {
            get: function () {
              return this._id
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "label", {
            get: function () {
              return this._label
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "keybindings", {
            get: function () {
              return this._keybindings
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "keybindingContext", {
            get: function () {
              return this._keybindingContext
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "keybindingWeight", {
            get: function () {
              return this._keybindingWeight
            }, enumerable: !0, configurable: !0
          }), e
        }();
        t.SyncActionDescriptor = l
      }), define(d[62], h([1, 0, 33, 29, 26, 24, 80, 16]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";

        function u(e, t, n) {
          var i = function (e, t) {
            for (var n = e, i = 0; i < t.length; i++) {
              if ("object" != typeof n || null === n) {
                return;
              }
              n = n[t[i]]
            }
            return n
          }(e, t.split("."));
          return void 0 === i ? n : i
        }

        function l(e, t, n) {
          Object.keys(t).forEach(function (o) {
            o in e ? i.isObject(e[o]) && i.isObject(t[o]) ? l(e[o], t[o], n) : n
                && (e[o] = t[o]) : e[o] = t[o]
          })
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.IConfigurationService = a.createDecorator(
            "configurationService");
        !function (e) {
          e[e.Default = 1] = "Default", e[e.User = 2] = "User", e[e.Workspace = 3] = "Workspace"
        }(t.ConfigurationSource
            || (t.ConfigurationSource = {})), t.getConfigurationValue = u, t.merge = l;
        var c = function () {
          function e(e, t, n) {
            void 0 === e && (e = {}), void 0 === t && (t = []), void 0 === n
            && (n = []), this._contents = e, this._keys = t, this._overrides = n
          }

          return Object.defineProperty(e.prototype, "contents", {
            get: function () {
              return this._contents
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "overrides", {
            get: function () {
              return this._overrides
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "keys", {
            get: function () {
              return this._keys
            }, enumerable: !0, configurable: !0
          }), e.prototype.getContentsFor = function (e) {
            return o.clone(this.contents[e])
          }, e.prototype.override = function (t) {
            var n = new e, i = o.clone(this.contents);
            if (this._overrides) {
              for (var r = 0, s = this._overrides;
                  r < s.length; r++) {
                var a = s[r];
                -1 !== a.identifiers.indexOf(t) && l(i, a.contents, !0)
              }
            }
            return n._contents = i, n
          }, e.prototype.merge = function (t, n) {
            void 0 === n && (n = !0);
            var i = new e;
            return this.doMerge(i, this, n), this.doMerge(i, t, n), i
          }, e.prototype.doMerge = function (e, t, i) {
            void 0 === i && (i = !0), l(e.contents, o.clone(t.contents), i);
            for (var r = o.clone(e._overrides), s = 0, a = t._overrides;
                s < a.length; s++) {
              !function (e) {
                var t = r.filter(function (t) {
                  return n.equals(t.identifiers, e.identifiers)
                })[0];
                t ? l(t.contents, e.contents, i) : r.push(e)
              }(a[s]);
            }
            e._overrides = r
          }, e
        }();
        t.ConfigurationModel = c;
        var d = function () {
          function e(e, t, n, i, o) {
            void 0 === n && (n = new c), void 0 === i
            && (i = new s.StrictResourceMap), this._defaults = e, this._user = t, this._workspaceConfiguration = n, this.folders = i, this._workspace = o, this.merge()
          }

          return Object.defineProperty(e.prototype, "defaults", {
            get: function () {
              return this._defaults
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "user", {
            get: function () {
              return this._user
            }, enumerable: !0, configurable: !0
          }), e.prototype.merge = function () {
            this._globalConfiguration = (new c).merge(this._defaults).merge(
                this._user), this._workspaceConsolidatedConfiguration = (new c).merge(
                this._globalConfiguration).merge(
                this._workspaceConfiguration), this._legacyWorkspaceConsolidatedConfiguration = null, this._foldersConsolidatedConfigurations = new s.StrictResourceMap;
            for (var e = 0, t = this.folders.keys(); e < t.length; e++) {
              var n = t[e];
              this.mergeFolder(n)
            }
          }, e.prototype.mergeFolder = function (e) {
            this._foldersConsolidatedConfigurations.set(e,
                (new c).merge(this._workspaceConsolidatedConfiguration).merge(
                    this.folders.get(e)))
          }, e.prototype.getValue = function (e, t) {
            void 0 === e && (e = ""), void 0 === t && (t = {});
            var n = this.getConsolidateConfigurationModel(t);
            return e ? n.getContentsFor(e) : n.contents
          }, e.prototype.lookup = function (e, t) {
            void 0 === t && (t = {});
            var n = this.getConsolidateConfigurationModel(t),
                i = this.getFolderConfigurationModelForResource(t.resource);
            return {
              default: o.clone(u(t.overrideIdentifier ? this._defaults.override(
                  t.overrideIdentifier).contents : this._defaults.contents, e)),
              user: o.clone(u(t.overrideIdentifier ? this._user.override(
                  t.overrideIdentifier).contents : this._user.contents, e)),
              workspace: o.clone(this._workspace ? u(
                  t.overrideIdentifier ? this._workspaceConfiguration.override(
                          t.overrideIdentifier).contents
                      : this._workspaceConfiguration.contents, e) : void 0),
              folder: o.clone(i ? u(t.overrideIdentifier ? i.override(
                  t.overrideIdentifier).contents : i.contents, e) : void 0),
              value: o.clone(u(n.contents, e))
            }
          }, e.prototype.lookupLegacy = function (e) {
            this._legacyWorkspaceConsolidatedConfiguration
            || (this._legacyWorkspaceConsolidatedConfiguration = this._workspace
                ? (new c).merge(this._workspaceConfiguration).merge(
                    this.folders.get(this._workspace.roots[0])) : null);
            var t = this.getConsolidateConfigurationModel({});
            return {
              default: o.clone(u(this._defaults.contents, e)),
              user: o.clone(u(this._user.contents, e)),
              workspace: o.clone(
                  this._legacyWorkspaceConsolidatedConfiguration ? u(
                      this._legacyWorkspaceConsolidatedConfiguration.contents,
                      e) : void 0),
              folder: void 0,
              value: o.clone(u(t.contents, e))
            }
          }, e.prototype.keys = function (e) {
            void 0 === e && (e = {});
            var t = this.getFolderConfigurationModelForResource(e.resource);
            return {
              default: this._defaults.keys,
              user: this._user.keys,
              workspace: this._workspaceConfiguration.keys,
              folder: t ? t.keys : []
            }
          }, e.prototype.values = function () {
            for (var e, t = Object.create(null), n = this.keys(), i = 0,
                o = n.workspace.concat(n.user, n.default).sort(); i < o.length;
                i++) {
              var r = o[i];
              r !== e && (e = r, t[r] = this.lookup(r))
            }
            return t
          }, e.prototype.values2 = function () {
            for (var e, t = new Map, n = this.keys(), i = 0,
                o = n.workspace.concat(n.user, n.default).sort(); i < o.length;
                i++) {
              var r = o[i];
              r !== e && (e = r, t.set(r, this.lookup(r)))
            }
            return t
          }, e.prototype.getConsolidateConfigurationModel = function (e) {
            var t = this.getConsolidatedConfigurationModelForResource(e);
            return e.overrideIdentifier ? t.override(e.overrideIdentifier) : t
          }, e.prototype.getConsolidatedConfigurationModelForResource = function (e) {
            var t = e.resource;
            if (!this._workspace) {
              return this._globalConfiguration;
            }
            if (!t) {
              return this._workspaceConsolidatedConfiguration;
            }
            var n = this._workspace.getRoot(t);
            return n ? this._foldersConsolidatedConfigurations.get(n)
                || this._workspaceConsolidatedConfiguration
                : this._workspaceConsolidatedConfiguration
          }, e.prototype.getFolderConfigurationModelForResource = function (e) {
            if (!this._workspace || !e) {
              return null;
            }
            var t = this._workspace.getRoot(e);
            return t ? this.folders.get(t) : null
          }, e.prototype.toData = function () {
            var e = this;
            return {
              defaults: {
                contents: this._defaults.contents,
                overrides: this._defaults.overrides,
                keys: this._defaults.keys
              },
              user: {
                contents: this._user.contents,
                overrides: this._user.overrides,
                keys: this._user.keys
              },
              workspace: {
                contents: this._workspaceConfiguration.contents,
                overrides: this._workspaceConfiguration.overrides,
                keys: this._workspaceConfiguration.keys
              },
              folders: this.folders.keys().reduce(function (t, n) {
                var i = e.folders.get(n), o = i.contents, r = i.overrides,
                    s = i.keys;
                return t[n.toString()] = {contents: o, overrides: r, keys: s}, t
              }, Object.create({}))
            }
          }, e.parse = function (t, n) {
            return new e(e.parseConfigurationModel(t.defaults),
                e.parseConfigurationModel(t.user),
                e.parseConfigurationModel(t.workspace),
                Object.keys(t.folders).reduce(function (n, i) {
                  return n.set(r.default.parse(i),
                      e.parseConfigurationModel(t.folders[i])), n
                }, new s.StrictResourceMap), n)
          }, e.parseConfigurationModel = function (e) {
            return new c(e.contents, e.keys, e.overrides)
          }, e
        }();
        t.Configuration = d
      }), define(d[19], h([1, 0, 16]), function (e, t, n) {
    "use strict";

    function i(e, t) {
      var n = e.getType(), i = t.getType();
      if (n !== i) {
        return n - i;
      }
      switch (n) {
        case o.Defined:
        case o.Not:
        case o.Equals:
        case o.NotEquals:
          return e.cmp(t);
        default:
          throw new Error("Unknown ContextKeyExpr!")
      }
    }

    Object.defineProperty(t, "__esModule", {value: !0});
    var o;
    !function (e) {
      e[e.Defined = 1] = "Defined", e[e.Not = 2] = "Not", e[e.Equals = 3] = "Equals", e[e.NotEquals = 4] = "NotEquals", e[e.And = 5] = "And"
    }(o = t.ContextKeyExprType || (t.ContextKeyExprType = {}));
    var r = function () {
      function e() {
      }

      return e.has = function (e) {
        return new s(e)
      }, e.equals = function (e, t) {
        return new a(e, t)
      }, e.notEquals = function (e, t) {
        return new u(e, t)
      }, e.not = function (e) {
        return new l(e)
      }, e.and = function () {
        for (var e = [], t = 0; t < arguments.length; t++) {
          e[t] = arguments[t];
        }
        return new c(e)
      }, e.deserialize = function (e) {
        var t = this;
        if (!e) {
          return null;
        }
        var n = e.split("&&");
        return new c(n.map(function (e) {
          return t._deserializeOne(e)
        })).normalize()
      }, e._deserializeOne = function (e) {
        if ((e = e.trim()).indexOf("!=") >= 0) {
          t = e.split("!=");
          return new u(t[0].trim(), this._deserializeValue(t[1]))
        }
        if (e.indexOf("==") >= 0) {
          var t = e.split("==");
          return new a(t[0].trim(), this._deserializeValue(t[1]))
        }
        return /^\!\s*/.test(e) ? new l(e.substr(1).trim()) : new s(e)
      }, e._deserializeValue = function (e) {
        if ("true" === (e = e.trim())) {
          return !0;
        }
        if ("false" === e) {
          return !1;
        }
        var t = /^'([^']*)'$/.exec(e);
        return t ? t[1].trim() : e
      }, e
    }();
    t.ContextKeyExpr = r;
    var s = function () {
      function e(e) {
        this.key = e
      }

      return e.prototype.getType = function () {
        return o.Defined
      }, e.prototype.cmp = function (e) {
        return this.key < e.key ? -1 : this.key > e.key ? 1 : 0
      }, e.prototype.equals = function (t) {
        return t instanceof e && this.key === t.key
      }, e.prototype.evaluate = function (e) {
        return !!e.getValue(this.key)
      }, e.prototype.normalize = function () {
        return this
      }, e.prototype.serialize = function () {
        return this.key
      }, e.prototype.keys = function () {
        return [this.key]
      }, e
    }();
    t.ContextKeyDefinedExpr = s;
    var a = function () {
      function e(e, t) {
        this.key = e, this.value = t
      }

      return e.prototype.getType = function () {
        return o.Equals
      }, e.prototype.cmp = function (e) {
        return this.key < e.key ? -1 : this.key > e.key ? 1 : this.value
        < e.value ? -1 : this.value > e.value ? 1 : 0
      }, e.prototype.equals = function (t) {
        return t instanceof e && (this.key === t.key && this.value === t.value)
      }, e.prototype.evaluate = function (e) {
        return e.getValue(this.key) == this.value
      }, e.prototype.normalize = function () {
        return "boolean" == typeof this.value ? this.value ? new s(this.key)
            : new l(this.key) : this
      }, e.prototype.serialize = function () {
        return "boolean" == typeof this.value ? this.normalize().serialize()
            : this.key + " == '" + this.value + "'"
      }, e.prototype.keys = function () {
        return [this.key]
      }, e
    }();
    t.ContextKeyEqualsExpr = a;
    var u = function () {
      function e(e, t) {
        this.key = e, this.value = t
      }

      return e.prototype.getType = function () {
        return o.NotEquals
      }, e.prototype.cmp = function (e) {
        return this.key < e.key ? -1 : this.key > e.key ? 1 : this.value
        < e.value ? -1 : this.value > e.value ? 1 : 0
      }, e.prototype.equals = function (t) {
        return t instanceof e && (this.key === t.key && this.value === t.value)
      }, e.prototype.evaluate = function (e) {
        return e.getValue(this.key) != this.value
      }, e.prototype.normalize = function () {
        return "boolean" == typeof this.value ? this.value ? new l(this.key)
            : new s(this.key) : this
      }, e.prototype.serialize = function () {
        return "boolean" == typeof this.value ? this.normalize().serialize()
            : this.key + " != '" + this.value + "'"
      }, e.prototype.keys = function () {
        return [this.key]
      }, e
    }();
    t.ContextKeyNotEqualsExpr = u;
    var l = function () {
      function e(e) {
        this.key = e
      }

      return e.prototype.getType = function () {
        return o.Not
      }, e.prototype.cmp = function (e) {
        return this.key < e.key ? -1 : this.key > e.key ? 1 : 0
      }, e.prototype.equals = function (t) {
        return t instanceof e && this.key === t.key
      }, e.prototype.evaluate = function (e) {
        return !e.getValue(this.key)
      }, e.prototype.normalize = function () {
        return this
      }, e.prototype.serialize = function () {
        return "!" + this.key
      }, e.prototype.keys = function () {
        return [this.key]
      }, e
    }();
    t.ContextKeyNotExpr = l;
    var c = function () {
      function e(t) {
        this.expr = e._normalizeArr(t)
      }

      return e.prototype.getType = function () {
        return o.And
      }, e.prototype.equals = function (t) {
        if (t instanceof e) {
          if (this.expr.length !== t.expr.length) {
            return !1;
          }
          for (var n = 0, i = this.expr.length; n < i;
              n++) {
            if (!this.expr[n].equals(t.expr[n])) {
              return !1;
            }
          }
          return !0
        }
        return !1
      }, e.prototype.evaluate = function (e) {
        for (var t = 0, n = this.expr.length; t < n;
            t++) {
          if (!this.expr[t].evaluate(e)) {
            return !1;
          }
        }
        return !0
      }, e._normalizeArr = function (t) {
        var n = [];
        if (t) {
          for (var o = 0, r = t.length; o < r; o++) {
            var s = t[o];
            s && ((s = s.normalize()) && (s instanceof e ? n = n.concat(s.expr)
                : n.push(s)))
          }
          n.sort(i)
        }
        return n
      }, e.prototype.normalize = function () {
        return 0 === this.expr.length ? null : 1 === this.expr.length
            ? this.expr[0] : this
      }, e.prototype.serialize = function () {
        return 0 === this.expr.length ? "" : 1 === this.expr.length
            ? this.normalize().serialize() : this.expr.map(function (e) {
              return e.serialize()
            }).join(" && ")
      }, e.prototype.keys = function () {
        for (var e = [], t = 0, n = this.expr; t < n.length; t++) {
          var i = n[t];
          e.push.apply(e, i.keys())
        }
        return e
      }, e
    }();
    t.ContextKeyAndExpr = c;
    var d = function (e) {
      function t(t, n) {
        var i = e.call(this, t) || this;
        return i._defaultValue = n, i
      }

      return f(t, e), t.prototype.bindTo = function (e) {
        return e.createKey(this.key, this._defaultValue)
      }, t.prototype.getValue = function (e) {
        return e.getContextKeyValue(this.key)
      }, t.prototype.toNegated = function () {
        return r.not(this.key)
      }, t.prototype.isEqualTo = function (e) {
        return r.equals(this.key, e)
      }, t
    }(s);
    t.RawContextKey = d, t.IContextKeyService = n.createDecorator(
        "contextKeyService"), t.SET_CONTEXT_COMMAND_ID = "setContext"
  }), define(d[21], h([1, 0, 19]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e.textFocus = new n.RawContextKey("editorTextFocus",
          !1), e.focus = new n.RawContextKey("editorFocus",
          !1), e.readOnly = new n.RawContextKey("editorReadonly",
          !1), e.writable = e.readOnly.toNegated(), e.hasNonEmptySelection = new n.RawContextKey(
          "editorHasSelection",
          !1), e.hasOnlyEmptySelection = e.hasNonEmptySelection.toNegated(), e.hasMultipleSelections = new n.RawContextKey(
          "editorHasMultipleSelections",
          !1), e.hasSingleSelection = e.hasMultipleSelections.toNegated(), e.tabMovesFocus = new n.RawContextKey(
          "editorTabMovesFocus",
          !1), e.tabDoesNotMoveFocus = e.tabMovesFocus.toNegated(), e.isInEmbeddedEditor = new n.RawContextKey(
          "isInEmbeddedEditor", void 0), e.languageId = new n.RawContextKey(
          "editorLangId",
          void 0), e.hasCompletionItemProvider = new n.RawContextKey(
          "editorHasCompletionItemProvider",
          void 0), e.hasCodeActionsProvider = new n.RawContextKey(
          "editorHasCodeActionsProvider",
          void 0), e.hasCodeLensProvider = new n.RawContextKey(
          "editorHasCodeLensProvider",
          void 0), e.hasDefinitionProvider = new n.RawContextKey(
          "editorHasDefinitionProvider",
          void 0), e.hasImplementationProvider = new n.RawContextKey(
          "editorHasImplementationProvider",
          void 0), e.hasTypeDefinitionProvider = new n.RawContextKey(
          "editorHasTypeDefinitionProvider",
          void 0), e.hasHoverProvider = new n.RawContextKey(
          "editorHasHoverProvider",
          void 0), e.hasDocumentHighlightProvider = new n.RawContextKey(
          "editorHasDocumentHighlightProvider",
          void 0), e.hasDocumentSymbolProvider = new n.RawContextKey(
          "editorHasDocumentSymbolProvider",
          void 0), e.hasReferenceProvider = new n.RawContextKey(
          "editorHasReferenceProvider",
          void 0), e.hasRenameProvider = new n.RawContextKey(
          "editorHasRenameProvider",
          void 0), e.hasDocumentFormattingProvider = new n.RawContextKey(
          "editorHasDocumentFormattingProvider",
          void 0), e.hasDocumentSelectionFormattingProvider = new n.RawContextKey(
          "editorHasDocumentSelectionFormattingProvider",
          void 0), e.hasSignatureHelpProvider = new n.RawContextKey(
          "editorHasSignatureHelpProvider", void 0)
    }(t.EditorContextKeys || (t.EditorContextKeys = {}))
  }), define(d[406], h([1, 0, 3, 17, 21, 70]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function (e) {
      function t(t, n) {
        var r = e.call(this) || this;
        r._editor = t, r._langId = o.EditorContextKeys.languageId.bindTo(
            n), r._hasCompletionItemProvider = o.EditorContextKeys.hasCompletionItemProvider.bindTo(
            n), r._hasCodeActionsProvider = o.EditorContextKeys.hasCodeActionsProvider.bindTo(
            n), r._hasCodeLensProvider = o.EditorContextKeys.hasCodeLensProvider.bindTo(
            n), r._hasDefinitionProvider = o.EditorContextKeys.hasDefinitionProvider.bindTo(
            n), r._hasImplementationProvider = o.EditorContextKeys.hasImplementationProvider.bindTo(
            n), r._hasTypeDefinitionProvider = o.EditorContextKeys.hasTypeDefinitionProvider.bindTo(
            n), r._hasHoverProvider = o.EditorContextKeys.hasHoverProvider.bindTo(
            n), r._hasDocumentHighlightProvider = o.EditorContextKeys.hasDocumentHighlightProvider.bindTo(
            n), r._hasDocumentSymbolProvider = o.EditorContextKeys.hasDocumentSymbolProvider.bindTo(
            n), r._hasReferenceProvider = o.EditorContextKeys.hasReferenceProvider.bindTo(
            n), r._hasRenameProvider = o.EditorContextKeys.hasRenameProvider.bindTo(
            n), r._hasDocumentFormattingProvider = o.EditorContextKeys.hasDocumentFormattingProvider.bindTo(
            n), r._hasDocumentSelectionFormattingProvider = o.EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(
            n), r._hasSignatureHelpProvider = o.EditorContextKeys.hasSignatureHelpProvider.bindTo(
            n), r._isInWalkThrough = o.EditorContextKeys.isInEmbeddedEditor.bindTo(
            n);
        var s = function () {
          return r._update()
        };
        return r._register(t.onDidChangeModel(s)), r._register(
            t.onDidChangeModelLanguage(s)), r._register(
            i.SuggestRegistry.onDidChange(s)), r._register(
            i.CodeActionProviderRegistry.onDidChange(s)), r._register(
            i.CodeLensProviderRegistry.onDidChange(s)), r._register(
            i.DefinitionProviderRegistry.onDidChange(s)), r._register(
            i.ImplementationProviderRegistry.onDidChange(s)), r._register(
            i.TypeDefinitionProviderRegistry.onDidChange(s)), r._register(
            i.HoverProviderRegistry.onDidChange(s)), r._register(
            i.DocumentHighlightProviderRegistry.onDidChange(s)), r._register(
            i.DocumentSymbolProviderRegistry.onDidChange(s)), r._register(
            i.ReferenceProviderRegistry.onDidChange(s)), r._register(
            i.RenameProviderRegistry.onDidChange(s)), r._register(
            i.DocumentFormattingEditProviderRegistry.onDidChange(
                s)), r._register(
            i.DocumentRangeFormattingEditProviderRegistry.onDidChange(
                s)), r._register(
            i.SignatureHelpProviderRegistry.onDidChange(s)), s(), r
      }

      return f(t, e), t.prototype.dispose = function () {
        e.prototype.dispose.call(this)
      }, t.prototype.reset = function () {
        this._langId.reset(), this._hasCompletionItemProvider.reset(), this._hasCodeActionsProvider.reset(), this._hasCodeLensProvider.reset(), this._hasDefinitionProvider.reset(), this._hasImplementationProvider.reset(), this._hasTypeDefinitionProvider.reset(), this._hasHoverProvider.reset(), this._hasDocumentHighlightProvider.reset(), this._hasDocumentSymbolProvider.reset(), this._hasReferenceProvider.reset(), this._hasRenameProvider.reset(), this._hasDocumentFormattingProvider.reset(), this._hasDocumentSelectionFormattingProvider.reset(), this._hasSignatureHelpProvider.reset(), this._isInWalkThrough.reset()
      }, t.prototype._update = function () {
        var e = this._editor.getModel();
        e ? (this._langId.set(
            e.getLanguageIdentifier().language), this._hasCompletionItemProvider.set(
            i.SuggestRegistry.has(e)), this._hasCodeActionsProvider.set(
            i.CodeActionProviderRegistry.has(e)), this._hasCodeLensProvider.set(
            i.CodeLensProviderRegistry.has(e)), this._hasDefinitionProvider.set(
            i.DefinitionProviderRegistry.has(
                e)), this._hasImplementationProvider.set(
            i.ImplementationProviderRegistry.has(
                e)), this._hasTypeDefinitionProvider.set(
            i.TypeDefinitionProviderRegistry.has(
                e)), this._hasHoverProvider.set(i.HoverProviderRegistry.has(
            e)), this._hasDocumentHighlightProvider.set(
            i.DocumentHighlightProviderRegistry.has(
                e)), this._hasDocumentSymbolProvider.set(
            i.DocumentSymbolProviderRegistry.has(
                e)), this._hasReferenceProvider.set(
            i.ReferenceProviderRegistry.has(e)), this._hasRenameProvider.set(
            i.RenameProviderRegistry.has(
                e)), this._hasSignatureHelpProvider.set(
            i.SignatureHelpProviderRegistry.has(
                e)), this._hasDocumentFormattingProvider.set(
            i.DocumentFormattingEditProviderRegistry.has(e)
            || i.DocumentRangeFormattingEditProviderRegistry.has(
                e)), this._hasDocumentSelectionFormattingProvider.set(
            i.DocumentRangeFormattingEditProviderRegistry.has(
                e)), this._isInWalkThrough.set(
            e.uri.scheme === r.Schemas.walkThroughSnippet)) : this.reset()
      }, t
    }(n.Disposable);
    t.EditorModeContext = s
  }), define(d[407], h([1, 0, 11, 3, 19, 85, 31]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function () {
          function e(t, i, o, s) {
            var a = this;
            this._id = t, this._commandService = o, this._contextKeyService = s, this._menuGroups = [], this._disposables = [], this._onDidChange = new n.Emitter, i.then(
                function (n) {
                  var i, o = r.MenuRegistry.getMenuItems(t), s = new Set;
                  o.sort(e._compareMenuItems);
                  for (var u = 0, l = o; u < l.length; u++) {
                    var c = l[u], d = c.group;
                    i && i[0] === d || (i = [d, []], a._menuGroups.push(
                        i)), i[1].push(c), e._fillInKbExprKeys(c.when, s)
                  }
                  a._disposables.push(
                      a._contextKeyService.onDidChangeContext(function (e) {
                        if (e) {
                          for (var t = 0, n = e; t < n.length; t++) {
                            var i = n[t];
                            if (s.has(i)) {
                              return void a._onDidChange.fire()
                            }
                          }
                        }
                      })), a._onDidChange.fire(a)
                })
          }

          return e.prototype.dispose = function () {
            this._disposables = i.dispose(
                this._disposables), this._onDidChange.dispose()
          }, Object.defineProperty(e.prototype, "onDidChange", {
            get: function () {
              return this._onDidChange.event
            }, enumerable: !0, configurable: !0
          }), e.prototype.getActions = function (e) {
            for (var t = [], n = 0, i = this._menuGroups; n < i.length; n++) {
              for (var o = i[n], s = o[0], a = [], u = 0, l = o[1];
                  u < l.length; u++) {
                var c = l[u];
                if (this._contextKeyService.contextMatchesRules(c.when)) {
                  var d = new r.MenuItemAction(c.command, c.alt, e,
                      this._commandService);
                  d.order = c.order, a.push(d)
                }
              }
              a.length > 0 && t.push([s, a])
            }
            return t
          }, e._fillInKbExprKeys = function (e, t) {
            if (e) {
              for (var n = 0, i = e.keys(); n < i.length; n++) {
                var o = i[n];
                t.add(o)
              }
            }
          }, e._compareMenuItems = function (e, t) {
            var n = e.group, i = t.group;
            if (n !== i) {
              if (!n) {
                return 1;
              }
              if (!i) {
                return -1;
              }
              if ("navigation" === n) {
                return -1;
              }
              if ("navigation" === i) {
                return 1;
              }
              var o = n.localeCompare(i);
              if (0 !== o) {
                return o
              }
            }
            var r = e.order || 0, s = t.order || 0;
            if (r < s) {
              return -1;
            }
            if (r > s) {
              return 1;
            }
            var a = "string" == typeof e.command.title ? e.command.title
                    : e.command.title.value,
                u = "string" == typeof t.command.title ? t.command.title
                    : t.command.title.value;
            return a.localeCompare(u)
          }, e = v([y(2, s.ICommandService), y(3, o.IContextKeyService)], e)
        }();
        t.Menu = a
      }), define(d[69], h([1, 0, 53, 16]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.IContextViewService = i.createDecorator(
        "contextViewService"), t.IContextMenuService = i.createDecorator(
        "contextMenuService");
    var o = function (e) {
      function t(t, n) {
        var i = e.call(this, "contextsubmenu", t, "", !0) || this;
        return i.entries = n, i
      }

      return f(t, e), t
    }(n.Action);
    t.ContextSubMenu = o
  }), define(d[64], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.IEditorService = n.createDecorator("editorService");
    var i;
    !function (e) {
      e[e.ONE = 0] = "ONE", e[e.TWO = 1] = "TWO", e[e.THREE = 2] = "THREE"
    }(i = t.Position || (t.Position = {})), t.POSITIONS = [i.ONE, i.TWO,
      i.THREE];
    !function (e) {
      e[e.LEFT = 0] = "LEFT", e[e.RIGHT = 1] = "RIGHT"
    }(t.Direction || (t.Direction = {}));
    !function (e) {
      e[e.SHORT = 0] = "SHORT", e[e.MEDIUM = 1] = "MEDIUM", e[e.LONG = 2] = "LONG"
    }(t.Verbosity || (t.Verbosity = {}))
  }), define(d[156], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.IEnvironmentService = n.createDecorator(
        "environmentService")
  }), define(d[411], h([1, 0, 45, 79, 15, 16, 9]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule",
            {value: !0}), t.IFileService = r.createDecorator("fileService");
        !function (e) {
          e[e.CREATE = 0] = "CREATE", e[e.DELETE = 1] = "DELETE", e[e.MOVE = 2] = "MOVE", e[e.COPY = 3] = "COPY", e[e.IMPORT = 4] = "IMPORT"
        }(t.FileOperation || (t.FileOperation = {}));
        var a = function () {
          function e(e, t, n) {
            this._resource = e, this._operation = t, this._target = n
          }

          return Object.defineProperty(e.prototype, "resource", {
            get: function () {
              return this._resource
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "target", {
            get: function () {
              return this._target
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "operation", {
            get: function () {
              return this._operation
            }, enumerable: !0, configurable: !0
          }), e
        }();
        t.FileOperationEvent = a;
        var u;
        !function (e) {
          e[e.UPDATED = 0] = "UPDATED", e[e.ADDED = 1] = "ADDED", e[e.DELETED = 2] = "DELETED"
        }(u = t.FileChangeType || (t.FileChangeType = {}));
        var l = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n._changes = t, n
          }

          return f(t, e), Object.defineProperty(t.prototype, "changes", {
            get: function () {
              return this._changes
            }, enumerable: !0, configurable: !0
          }), t.prototype.contains = function (e, t) {
            return !!e && this._changes.some(function (i) {
              return i.type === t && (t === u.DELETED ? n.isEqualOrParent(
                  e.fsPath, i.resource.fsPath, !o.isLinux) : n.isEqual(e.fsPath,
                  i.resource.fsPath, !o.isLinux))
            })
          }, t.prototype.getAdded = function () {
            return this.getOfType(u.ADDED)
          }, t.prototype.gotAdded = function () {
            return this.hasType(u.ADDED)
          }, t.prototype.getDeleted = function () {
            return this.getOfType(u.DELETED)
          }, t.prototype.gotDeleted = function () {
            return this.hasType(u.DELETED)
          }, t.prototype.getUpdated = function () {
            return this.getOfType(u.UPDATED)
          }, t.prototype.gotUpdated = function () {
            return this.hasType(u.UPDATED)
          }, t.prototype.getOfType = function (e) {
            return this._changes.filter(function (t) {
              return t.type === e
            })
          }, t.prototype.hasType = function (e) {
            return this._changes.some(function (t) {
              return t.type === e
            })
          }, t
        }(i.Event);
        t.FileChangesEvent = l, t.isParent = function (e, t, i) {
          return !(!e || !t || e === t) && !(t.length > e.length) && (t.charAt(
              t.length - 1) !== n.nativeSep && (t += n.nativeSep), i
              ? s.beginsWithIgnoreCase(e, t) : 0 === e.indexOf(t))
        }, t.indexOf = function (e, t, n) {
          return t.length > e.length ? -1 : e === t ? 0 : (n
          && (e = e.toLowerCase(), t = t.toLowerCase()), e.indexOf(t))
        };
        var c = function (e) {
          function t(t, n) {
            var i = e.call(this, t) || this;
            return i.fileOperationResult = n, i
          }

          return f(t, e), t
        }(Error);
        t.FileOperationError = c;
        !function (e) {
          e[e.FILE_IS_BINARY = 0] = "FILE_IS_BINARY", e[e.FILE_IS_DIRECTORY = 1] = "FILE_IS_DIRECTORY", e[e.FILE_NOT_FOUND = 2] = "FILE_NOT_FOUND", e[e.FILE_NOT_MODIFIED_SINCE = 3] = "FILE_NOT_MODIFIED_SINCE", e[e.FILE_MODIFIED_SINCE = 4] = "FILE_MODIFIED_SINCE", e[e.FILE_MOVE_CONFLICT = 5] = "FILE_MOVE_CONFLICT", e[e.FILE_READ_ONLY = 6] = "FILE_READ_ONLY", e[e.FILE_TOO_LARGE = 7] = "FILE_TOO_LARGE", e[e.FILE_INVALID_PATH = 8] = "FILE_INVALID_PATH"
        }(t.FileOperationResult || (t.FileOperationResult = {}));
        t.MAX_FILE_SIZE = "object" == typeof process ? "ia32" === process.arch
            ? 314572800 : 17179869184 : 314572800, t.AutoSaveConfiguration = {
          OFF: "off",
          AFTER_DELAY: "afterDelay",
          ON_FOCUS_CHANGE: "onFocusChange",
          ON_WINDOW_CHANGE: "onWindowChange"
        }, t.HotExitConfiguration = {
          OFF: "off",
          ON_EXIT: "onExit",
          ON_EXIT_AND_WINDOW_CLOSE: "onExitAndWindowClose"
        }, t.CONTENT_CHANGE_EVENT_BUFFER_DELAY = 1e3, t.SUPPORTED_ENCODINGS = {
          utf8: {
            labelLong: "UTF-8",
            labelShort: "UTF-8",
            order: 1,
            alias: "utf8bom"
          },
          utf8bom: {
            labelLong: "UTF-8 with BOM",
            labelShort: "UTF-8 with BOM",
            encodeOnly: !0,
            order: 2,
            alias: "utf8"
          },
          utf16le: {labelLong: "UTF-16 LE", labelShort: "UTF-16 LE", order: 3},
          utf16be: {labelLong: "UTF-16 BE", labelShort: "UTF-16 BE", order: 4},
          windows1252: {
            labelLong: "Western (Windows 1252)",
            labelShort: "Windows 1252",
            order: 5
          },
          iso88591: {
            labelLong: "Western (ISO 8859-1)",
            labelShort: "ISO 8859-1",
            order: 6
          },
          iso88593: {
            labelLong: "Western (ISO 8859-3)",
            labelShort: "ISO 8859-3",
            order: 7
          },
          iso885915: {
            labelLong: "Western (ISO 8859-15)",
            labelShort: "ISO 8859-15",
            order: 8
          },
          macroman: {
            labelLong: "Western (Mac Roman)",
            labelShort: "Mac Roman",
            order: 9
          },
          cp437: {labelLong: "DOS (CP 437)", labelShort: "CP437", order: 10},
          windows1256: {
            labelLong: "Arabic (Windows 1256)",
            labelShort: "Windows 1256",
            order: 11
          },
          iso88596: {
            labelLong: "Arabic (ISO 8859-6)",
            labelShort: "ISO 8859-6",
            order: 12
          },
          windows1257: {
            labelLong: "Baltic (Windows 1257)",
            labelShort: "Windows 1257",
            order: 13
          },
          iso88594: {
            labelLong: "Baltic (ISO 8859-4)",
            labelShort: "ISO 8859-4",
            order: 14
          },
          iso885914: {
            labelLong: "Celtic (ISO 8859-14)",
            labelShort: "ISO 8859-14",
            order: 15
          },
          windows1250: {
            labelLong: "Central European (Windows 1250)",
            labelShort: "Windows 1250",
            order: 16
          },
          iso88592: {
            labelLong: "Central European (ISO 8859-2)",
            labelShort: "ISO 8859-2",
            order: 17
          },
          cp852: {
            labelLong: "Central European (CP 852)",
            labelShort: "CP 852",
            order: 18
          },
          windows1251: {
            labelLong: "Cyrillic (Windows 1251)",
            labelShort: "Windows 1251",
            order: 19
          },
          cp866: {
            labelLong: "Cyrillic (CP 866)",
            labelShort: "CP 866",
            order: 20
          },
          iso88595: {
            labelLong: "Cyrillic (ISO 8859-5)",
            labelShort: "ISO 8859-5",
            order: 21
          },
          koi8r: {
            labelLong: "Cyrillic (KOI8-R)",
            labelShort: "KOI8-R",
            order: 22
          },
          koi8u: {
            labelLong: "Cyrillic (KOI8-U)",
            labelShort: "KOI8-U",
            order: 23
          },
          iso885913: {
            labelLong: "Estonian (ISO 8859-13)",
            labelShort: "ISO 8859-13",
            order: 24
          },
          windows1253: {
            labelLong: "Greek (Windows 1253)",
            labelShort: "Windows 1253",
            order: 25
          },
          iso88597: {
            labelLong: "Greek (ISO 8859-7)",
            labelShort: "ISO 8859-7",
            order: 26
          },
          windows1255: {
            labelLong: "Hebrew (Windows 1255)",
            labelShort: "Windows 1255",
            order: 27
          },
          iso88598: {
            labelLong: "Hebrew (ISO 8859-8)",
            labelShort: "ISO 8859-8",
            order: 28
          },
          iso885910: {
            labelLong: "Nordic (ISO 8859-10)",
            labelShort: "ISO 8859-10",
            order: 29
          },
          iso885916: {
            labelLong: "Romanian (ISO 8859-16)",
            labelShort: "ISO 8859-16",
            order: 30
          },
          windows1254: {
            labelLong: "Turkish (Windows 1254)",
            labelShort: "Windows 1254",
            order: 31
          },
          iso88599: {
            labelLong: "Turkish (ISO 8859-9)",
            labelShort: "ISO 8859-9",
            order: 32
          },
          windows1258: {
            labelLong: "Vietnamese (Windows 1258)",
            labelShort: "Windows 1258",
            order: 33
          },
          gbk: {labelLong: "Chinese (GBK)", labelShort: "GBK", order: 34},
          gb18030: {
            labelLong: "Chinese (GB18030)",
            labelShort: "GB18030",
            order: 35
          },
          cp950: {
            labelLong: "Traditional Chinese (Big5)",
            labelShort: "Big5",
            order: 36
          },
          big5hkscs: {
            labelLong: "Traditional Chinese (Big5-HKSCS)",
            labelShort: "Big5-HKSCS",
            order: 37
          },
          shiftjis: {
            labelLong: "Japanese (Shift JIS)",
            labelShort: "Shift JIS",
            order: 38
          },
          eucjp: {
            labelLong: "Japanese (EUC-JP)",
            labelShort: "EUC-JP",
            order: 39
          },
          euckr: {
            labelLong: "Korean (EUC-KR)",
            labelShort: "EUC-KR",
            order: 40
          },
          windows874: {
            labelLong: "Thai (Windows 874)",
            labelShort: "Windows 874",
            order: 41
          },
          iso885911: {
            labelLong: "Latin/Thai (ISO 8859-11)",
            labelShort: "ISO 8859-11",
            order: 42
          },
          koi8ru: {
            labelLong: "Cyrillic (KOI8-RU)",
            labelShort: "KOI8-RU",
            order: 43
          },
          koi8t: {labelLong: "Tajik (KOI8-T)", labelShort: "KOI8-T", order: 44},
          gb2312: {
            labelLong: "Simplified Chinese (GB 2312)",
            labelShort: "GB 2312",
            order: 45
          }
        };
        !function (e) {
          e[e.FILE = 0] = "FILE", e[e.FOLDER = 1] = "FOLDER", e[e.ROOT_FOLDER = 2] = "ROOT_FOLDER"
        }(t.FileKind || (t.FileKind = {}))
      }), define(d[84], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      function e() {
        for (var e = [], t = 0; t < arguments.length; t++) {
          e[t] = arguments[t];
        }
        this._entries = new Map;
        for (var n = 0, i = e; n < i.length; n++) {
          var o = i[n], r = o[0], s = o[1];
          this.set(r, s)
        }
      }

      return e.prototype.set = function (e, t) {
        var n = this._entries.get(e);
        return this._entries.set(e, t), n
      }, e.prototype.forEach = function (e) {
        this._entries.forEach(function (t, n) {
          return e(n, t)
        })
      }, e.prototype.has = function (e) {
        return this._entries.has(e)
      }, e.prototype.get = function (e) {
        return this._entries.get(e)
      }, e
    }();
    t.ServiceCollection = n
  }), define(d[413], h([1, 0, 7, 10, 29, 72, 428, 187, 16, 84]),
      function (e, t, n, i, o, r, s, a, u, l) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var c = function () {
          function t(e, t) {
            void 0 === e && (e = new l.ServiceCollection), void 0 === t
            && (t = !1), this._services = e, this._strict = t, this._services.set(
                u.IInstantiationService, this)
          }

          return t.prototype.createChild = function (e) {
            var n = this;
            return this._services.forEach(function (t, i) {
              e.has(t) || (i instanceof a.SyncDescriptor
              && (i = n._createAndCacheServiceInstance(t, i)), e.set(t, i))
            }), new t(e, this._strict)
          }, t.prototype.invokeFunction = function (e) {
            for (var t = this, n = [], o = 1; o < arguments.length; o++) {
              n[o
              - 1] = arguments[o];
            }
            var r;
            try {
              return r = {
                get: function (e, n) {
                  var i = t._getOrCreateServiceInstance(e);
                  if (!i && n !== u.optional) {
                    throw new Error(
                        "[invokeFunction] unkown service '" + e + "'");
                  }
                  return i
                }
              }, e.apply(void 0, [r].concat(n))
            } finally {
              r.get = function () {
                throw i.illegalState(
                    "service accessor is only valid during the invocation of its target method")
              }
            }
          }, t.prototype.createInstance = function (e) {
            for (var t = [], n = 1; n < arguments.length; n++) {
              t[n
              - 1] = arguments[n];
            }
            return e instanceof a.AsyncDescriptor ? this._createInstanceAsync(e,
                t) : e instanceof a.SyncDescriptor ? this._createInstance(e, t)
                : this._createInstance(new a.SyncDescriptor(e), t)
          }, t.prototype._createInstanceAsync = function (t, o) {
            var r, s = this;
            return new n.TPromise(function (n, u, l) {
              e([t.moduleName], function (e) {
                if (r && u(r), !e) {
                  return u(
                      i.illegalArgument("module not found: " + t.moduleName));
                }
                var l;
                if ("function" != typeof (l = t.ctorName ? e[t.ctorName]
                    : e)) {
                  return u(i.illegalArgument(
                      "not a function: " + t.ctorName || t.moduleName));
                }
                try {
                  o.unshift.apply(o, t.staticArguments()), n(
                      s._createInstance(new a.SyncDescriptor(l), o))
                } catch (e) {
                  return u(e)
                }
              }, u)
            }, function () {
              r = i.canceled()
            })
          }, t.prototype._createInstance = function (e, t) {
            for (var n = e.staticArguments().concat(t),
                i = u._util.getServiceDependencies(e.ctor).sort(
                    function (e, t) {
                      return e.index - t.index
                    }), r = [], s = 0, a = i; s < a.length; s++) {
              var l = a[s], c = this._getOrCreateServiceInstance(l.id);
              if (!c && this._strict && !l.optional) {
                throw new Error(
                    "[createInstance] " + e.ctor.name
                    + " depends on UNKNOWN service " + l.id + ".");
              }
              r.push(c)
            }
            var d = i.length > 0 ? i[0].index : n.length;
            if (n.length !== d) {
              console.warn(
                  "[createInstance] First service dependency of " + e.ctor.name
                  + " at position " + (d + 1) + " conflicts with " + n.length
                  + " static arguments");
              var h = d - n.length;
              n = h > 0 ? n.concat(new Array(h)) : n.slice(0, d)
            }
            var p = [e.ctor];
            p.push.apply(p, n), p.push.apply(p, r);
            var f = o.create.apply(null, p);
            return e._validate(f), f
          }, t.prototype._getOrCreateServiceInstance = function (e) {
            var t = this._services.get(e);
            return t instanceof a.SyncDescriptor
                ? this._createAndCacheServiceInstance(e, t) : t
          }, t.prototype._createAndCacheServiceInstance = function (e, t) {
            function n() {
              var e = new Error(
                  "[createInstance] cyclic dependency between services");
              throw e.message = i.toString(), e
            }

            r.ok(this._services.get(e) instanceof a.SyncDescriptor);
            for (var i = new s.Graph(function (e) {
              return e.id.toString()
            }), o = 0, l = [{id: e, desc: t}]; l.length;) {
              var c = l.pop();
              i.lookupOrInsertNode(c), o++ > 100 && n();
              for (var d = 0, h = u._util.getServiceDependencies(c.desc.ctor);
                  d < h.length; d++) {
                var p = h[d], f = this._services.get(p.id);
                if (f || console.warn(
                    "[createInstance] " + e + " depends on " + p.id
                    + " which is NOT registered."), f
                instanceof a.SyncDescriptor) {
                  var g = {id: p.id, desc: f};
                  i.insertEdge(c, g), l.push(g)
                }
              }
            }
            for (; ;) {
              var m = i.roots();
              if (0 === m.length) {
                0 !== i.length && n();
                break
              }
              for (var v = 0, _ = m; v < _.length; v++) {
                var y = _[v], C = this._createInstance(y.data.desc, []);
                this._services.set(y.data.id, C), i.removeNode(y.data)
              }
            }
            return this._services.get(e)
          }, t
        }();
        t.InstantiationService = c
      }), define(d[414], h([1, 0, 383, 3, 36, 11]),
      function (e, t, n, i, o, r) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var s = function () {
          function e(e, t, n, i) {
            this.toDispose = [], this._contextKeyService = e, this._commandService = t, this._statusService = i, this._messageService = n, this._currentChord = null, this._currentChordStatusMessage = null, this._onDidUpdateKeybindings = new r.Emitter, this.toDispose.push(
                this._onDidUpdateKeybindings)
          }

          return e.prototype.dispose = function () {
            this.toDispose = i.dispose(this.toDispose)
          }, Object.defineProperty(e.prototype, "onDidUpdateKeybindings", {
            get: function () {
              return this._onDidUpdateKeybindings
                  ? this._onDidUpdateKeybindings.event : r.default.None
            }, enumerable: !0, configurable: !0
          }), e.prototype.getDefaultKeybindingsContent = function () {
            return ""
          }, e.prototype.getDefaultKeybindings = function () {
            return this._getResolver().getDefaultKeybindings()
          }, e.prototype.getKeybindings = function () {
            return this._getResolver().getKeybindings()
          }, e.prototype.customKeybindingsCount = function () {
            return 0
          }, e.prototype.lookupKeybindings = function (e) {
            return this._getResolver().lookupKeybindings(e).map(function (e) {
              return e.resolvedKeybinding
            })
          }, e.prototype.lookupKeybinding = function (e) {
            var t = this._getResolver().lookupPrimaryKeybinding(e);
            return t ? t.resolvedKeybinding : null
          }, e.prototype.softDispatch = function (e, t) {
            var n = this.resolveKeyboardEvent(e);
            if (n.isChord()) {
              return console.warn(
                  "Unexpected keyboard event mapped to a chord"), null;
            }
            var i = n.getDispatchParts()[0];
            if (null === i) {
              return null;
            }
            var o = this._contextKeyService.getContext(t),
                r = this._currentChord ? this._currentChord.keypress : null;
            return this._getResolver().resolve(o, r, i)
          }, e.prototype._dispatch = function (e, t) {
            var i = this, r = !1, s = this.resolveKeyboardEvent(e);
            if (s.isChord()) {
              return console.warn(
                  "Unexpected keyboard event mapped to a chord"), null;
            }
            var a = s.getDispatchParts()[0];
            if (null === a) {
              return r;
            }
            var u = this._contextKeyService.getContext(t),
                l = this._currentChord ? this._currentChord.keypress : null,
                c = s.getLabel(), d = this._getResolver().resolve(u, l, a);
            return d && d.enterChord ? (r = !0, this._currentChord = {
              keypress: a,
              label: c
            }, this._statusService
            && (this._currentChordStatusMessage = this._statusService.setStatusMessage(
                n.localize(0, null, c))), r) : (this._statusService
            && this._currentChord && (d && d.commandId
                || (this._statusService.setStatusMessage(
                    n.localize(1, null, this._currentChord.label, c),
                    1e4), r = !0)), this._currentChordStatusMessage
            && (this._currentChordStatusMessage.dispose(), this._currentChordStatusMessage = null), this._currentChord = null, d
            && d.commandId && (d.bubble
            || (r = !0), this._commandService.executeCommand(d.commandId,
                d.commandArgs || {}).done(void 0, function (e) {
              i._messageService.show(o.default.Warning, e)
            })), r)
          }, e
        }();
        t.AbstractKeybindingService = s
      }), define(d[46], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      e[e.Default = 1] = "Default", e[e.User = 2] = "User"
    }(t.KeybindingSource
        || (t.KeybindingSource = {})), t.IKeybindingService = n.createDecorator(
        "keybindingService")
  }), define(d[159], h([1, 0, 33, 31]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e(t, n) {
        this._defaultKeybindings = t, this._defaultBoundCommands = new Map;
        for (var i = 0, o = t.length; i < o; i++) {
          var r = t[i].command;
          this._defaultBoundCommands.set(r, !0)
        }
        this._map = new Map, this._lookupMap = new Map, this._keybindings = e.combine(
            t, n);
        for (var i = 0, o = this._keybindings.length; i < o; i++) {
          var s = this._keybindings[i];
          null !== s.keypressFirstPart && this._addKeyPress(s.keypressFirstPart,
              s)
        }
      }

      return e._isTargetedForRemoval = function (e, t, n, i, o) {
        if (e.command !== i) {
          return !1;
        }
        if (t && e.keypressFirstPart !== t) {
          return !1;
        }
        if (n && e.keypressChordPart !== n) {
          return !1;
        }
        if (o) {
          if (!e.when) {
            return !1;
          }
          if (!o.equals(e.when)) {
            return !1
          }
        }
        return !0
      }, e.combine = function (e, t) {
        e = e.slice(0);
        for (var n = [], i = 0, o = t.length; i < o; i++) {
          var r = t[i];
          if (r.command && 0 !== r.command.length && "-" === r.command.charAt(
              0)) {
            for (var s = r.command.substr(1), a = r.keypressFirstPart,
                u = r.keypressChordPart, l = r.when, c = e.length - 1; c >= 0;
                c--) {
              this._isTargetedForRemoval(e[c], a, u, s, l) && e.splice(c,
                  1);
            }
          } else {
            n.push(r)
          }
        }
        return e.concat(n)
      }, e.prototype._addKeyPress = function (t, n) {
        var i = this._map.get(t);
        if (void 0 === i) {
          return this._map.set(t,
              [n]), void this._addToLookupMap(n);
        }
        for (var o = i.length - 1; o >= 0; o--) {
          var r = i[o];
          if (r.command !== n.command) {
            var s = null !== r.keypressChordPart,
                a = null !== n.keypressChordPart;
            s && a && r.keypressChordPart !== n.keypressChordPart
            || e.whenIsEntirelyIncluded(!0, r.when, n.when)
            && this._removeFromLookupMap(r)
          }
        }
        i.push(n), this._addToLookupMap(n)
      }, e.prototype._addToLookupMap = function (e) {
        if (e.command) {
          var t = this._lookupMap.get(e.command);
          void 0 === t ? (t = [e], this._lookupMap.set(e.command, t)) : t.push(
              e)
        }
      }, e.prototype._removeFromLookupMap = function (e) {
        var t = this._lookupMap.get(e.command);
        if (void 0 !== t) {
          for (var n = 0, i = t.length; n < i; n++) {
            if (t[n]
                === e) {
              return void t.splice(n, 1)
            }
          }
        }
      }, e.whenIsEntirelyIncluded = function (e, t, n) {
        if (e || (t = t ? t.normalize() : null, n = n ? n.normalize()
            : null), !n) {
          return !0;
        }
        if (!t) {
          return !1;
        }
        for (var i = t.serialize().split(" && "),
            o = n.serialize().split(" && "), r = Object.create(null), s = 0,
            a = i.length; s < a; s++) {
          r[i[s]] = !0;
        }
        for (var s = 0, a = o.length; s < a; s++) {
          if (!r[o[s]]) {
            return !1;
          }
        }
        return !0
      }, e.prototype.getDefaultBoundCommands = function () {
        return this._defaultBoundCommands
      }, e.prototype.getDefaultKeybindings = function () {
        return this._defaultKeybindings
      }, e.prototype.getKeybindings = function () {
        return this._keybindings
      }, e.prototype.lookupKeybindings = function (e) {
        var t = this._lookupMap.get(e);
        if (void 0 === t || 0 === t.length) {
          return [];
        }
        for (var n = [], i = 0, o = t.length - 1; o >= 0; o--) {
          n[i++] = t[o];
        }
        return n
      }, e.prototype.lookupPrimaryKeybinding = function (e) {
        var t = this._lookupMap.get(e);
        return void 0 === t || 0 === t.length ? null : t[t.length - 1]
      }, e.prototype.resolve = function (e, t, n) {
        var i = null;
        if (null !== t) {
          if (void 0 === (a = this._map.get(t))) {
            return null;
          }
          i = [];
          for (var o = 0, r = a.length; o < r; o++) {
            var s = a[o];
            s.keypressChordPart === n && i.push(s)
          }
        } else {
          var a = this._map.get(n);
          if (void 0 === a) {
            return null;
          }
          i = a
        }
        var u = this._findCommand(e, i);
        return u ? null === t && null !== u.keypressChordPart ? {
          enterChord: !0,
          commandId: null,
          commandArgs: null,
          bubble: !1
        } : {
          enterChord: !1,
          commandId: u.command,
          commandArgs: u.commandArgs,
          bubble: u.bubble
        } : null
      }, e.prototype._findCommand = function (t, n) {
        for (var i = n.length - 1; i >= 0; i--) {
          var o = n[i];
          if (e.contextMatchesRules(t, o.when)) {
            return o
          }
        }
        return null
      }, e.contextMatchesRules = function (e, t) {
        return !t || t.evaluate(e)
      }, e.getAllUnboundCommands = function (e) {
        var t = i.CommandsRegistry.getCommands(), o = [];
        for (var r in t) {
          "_" !== r[0] && 0 !== r.indexOf("vscode.") && ("object"
              != typeof t[r].description || n.isFalsyOrEmpty(
                  t[r].description.args)) && !0 !== e.get(r) && o.push(r);
        }
        return o
      }, e
    }();
    t.KeybindingResolver = o
  }), define(d[417], h([1, 0, 3, 31, 159, 19, 62, 11]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";

        function u(e) {
          for (; e;) {
            if (e.hasAttribute(l)) {
              return parseInt(e.getAttribute(l), 10);
            }
            e = e.parentElement
          }
          return 0
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var l = "data-keybinding-context", c = function () {
          function e(e, t) {
            this._id = e, this._parent = t, this._value = Object.create(
                null), this._value._contextId = e
          }

          return e.prototype.setValue = function (e, t) {
            return this._value[e] !== t && (this._value[e] = t, !0)
          }, e.prototype.removeValue = function (e) {
            return delete this._value[e]
          }, e.prototype.getValue = function (e) {
            var t = this._value[e];
            return void 0 === t && this._parent ? this._parent.getValue(e) : t
          }, e
        }();
        t.Context = c;
        var d = function (e) {
          function t(t, n, i) {
            var o = e.call(this, t, null) || this;
            return o._emitter = i, o._subscription = n.onDidUpdateConfiguration(
                function (e) {
                  return o._updateConfigurationContext(n.getConfiguration())
                }), o._updateConfigurationContext(n.getConfiguration()), o
          }

          return f(t, e), t.prototype.dispose = function () {
            this._subscription.dispose()
          }, t.prototype._updateConfigurationContext = function (e) {
            var t = this;
            for (var n in this._value) {
              0 === n.indexOf("config.")
              && delete this._value[n];
            }
            var i = function (e, n) {
              for (var o in e) {
                if (Object.prototype.hasOwnProperty.call(e, o)) {
                  n.push(o);
                  var r = e[o];
                  if ("boolean" == typeof r) {
                    var s = n.join(".");
                    t._value[s] = r, t._emitter.fire(s)
                  } else {
                    "object" == typeof r && i(r, n);
                  }
                  n.pop()
                }
              }
            };
            i(e, ["config"])
          }, t
        }(c), h = function () {
          function e(e, t, n) {
            this._parent = e, this._key = t, this._defaultValue = n, this.reset()
          }

          return e.prototype.set = function (e) {
            this._parent.setContext(this._key, e)
          }, e.prototype.reset = function () {
            void 0 === this._defaultValue ? this._parent.removeContext(
                this._key) : this._parent.setContext(this._key,
                this._defaultValue)
          }, e.prototype.get = function () {
            return this._parent.getContextKeyValue(this._key)
          }, e
        }(), p = function () {
          function e(e) {
            this._myContextId = e, this._onDidChangeContextKey = new a.Emitter
          }

          return e.prototype.createKey = function (e, t) {
            return new h(this, e, t)
          }, Object.defineProperty(e.prototype, "onDidChangeContext", {
            get: function () {
              return this._onDidChangeContext
              || (this._onDidChangeContext = a.debounceEvent(
                  this._onDidChangeContextKey.event, function (e, t) {
                    return e ? e.indexOf(t) < 0 && e.push(t) : e = [t], e
                  }, 25)), this._onDidChangeContext
            }, enumerable: !0, configurable: !0
          }), e.prototype.createScoped = function (e) {
            return new m(this, this._onDidChangeContextKey, e)
          }, e.prototype.contextMatchesRules = function (e) {
            var t = this.getContextValuesContainer(this._myContextId);
            return o.KeybindingResolver.contextMatchesRules(t, e)
          }, e.prototype.getContextKeyValue = function (e) {
            return this.getContextValuesContainer(this._myContextId).getValue(e)
          }, e.prototype.setContext = function (e, t) {
            this.getContextValuesContainer(this._myContextId).setValue(e, t)
            && this._onDidChangeContextKey.fire(e)
          }, e.prototype.removeContext = function (e) {
            this.getContextValuesContainer(this._myContextId).removeValue(e)
            && this._onDidChangeContextKey.fire(e)
          }, e.prototype.getContext = function (e) {
            return this.getContextValuesContainer(u(e))
          }, e
        }();
        t.AbstractContextKeyService = p;
        var g = function (e) {
          function t(t) {
            var n = e.call(this, 0) || this;
            n._toDispose = [], n._lastContextId = 0, n._contexts = Object.create(
                null);
            var i = new d(n._myContextId, t, n._onDidChangeContextKey);
            return n._contexts[String(n._myContextId)] = i, n._toDispose.push(
                i), n
          }

          return f(t, e), t.prototype.dispose = function () {
            this._toDispose = n.dispose(this._toDispose)
          }, t.prototype.getContextValuesContainer = function (e) {
            return this._contexts[String(e)]
          }, t.prototype.createChildContext = function (e) {
            void 0 === e && (e = this._myContextId);
            var t = ++this._lastContextId;
            return this._contexts[String(t)] = new c(t,
                this.getContextValuesContainer(e)), t
          }, t.prototype.disposeContext = function (e) {
            delete this._contexts[String(e)]
          }, t = v([y(0, s.IConfigurationService)], t)
        }(p);
        t.ContextKeyService = g;
        var m = function (e) {
          function t(t, n, i) {
            var o = e.call(this, t.createChildContext()) || this;
            return o._parent = t, o._onDidChangeContextKey = n, i
            && (o._domNode = i, o._domNode.setAttribute(l,
                String(o._myContextId))), o
          }

          return f(t, e), t.prototype.dispose = function () {
            this._parent.disposeContext(this._myContextId), this._domNode
            && this._domNode.removeAttribute(l)
          }, Object.defineProperty(t.prototype, "onDidChangeContext", {
            get: function () {
              return this._parent.onDidChangeContext
            }, enumerable: !0, configurable: !0
          }), t.prototype.getContextValuesContainer = function (e) {
            return this._parent.getContextValuesContainer(e)
          }, t.prototype.createChildContext = function (e) {
            return void 0 === e
            && (e = this._myContextId), this._parent.createChildContext(e)
          }, t.prototype.disposeContext = function (e) {
            this._parent.disposeContext(e)
          }, t
        }(p);
        i.CommandsRegistry.registerCommand(r.SET_CONTEXT_COMMAND_ID,
            function (e, t, n) {
              e.get(r.IContextKeyService).createKey(String(t), n)
            })
      }), define(d[418], h([1, 0]), function (e, t) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var n = function () {
      return function (e, t, n, i, o) {
        if (this.resolvedKeybinding = e, e) {
          var r = e.getDispatchParts(), s = r[0], a = r[1];
          this.keypressFirstPart = s, this.keypressChordPart = a
        } else {
          this.keypressFirstPart = null, this.keypressChordPart = null;
        }
        this.bubble = !!t && 94 === t.charCodeAt(0), this.command = this.bubble
            ? t.substr(1)
            : t, this.commandArgs = n, this.when = i, this.isDefault = o
      }
    }();
    t.ResolvedKeybindingItem = n
  }), define(d[419], h([1, 0, 40, 155]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function (e) {
      function t(t, n) {
        var i = e.call(this) || this;
        return i._os = n, null === t
            ? (i._firstPart = null, i._chordPart = null) : 2 === t.type
                ? (i._firstPart = t.firstPart, i._chordPart = t.chordPart)
                : (i._firstPart = t, i._chordPart = null), i
      }

      return f(t, e), t.prototype._keyCodeToUILabel = function (e) {
        if (2 === this._os) {
          switch (e) {
            case 15:
              return "←";
            case 16:
              return "↑";
            case 17:
              return "→";
            case 18:
              return "↓"
          }
        }
        return n.KeyCodeUtils.toString(e)
      }, t.prototype._getUILabelForKeybinding = function (e) {
        return e ? e.isDuplicateModifierCase() ? "" : this._keyCodeToUILabel(
            e.keyCode) : null
      }, t.prototype.getLabel = function () {
        var e = this._getUILabelForKeybinding(this._firstPart),
            t = this._getUILabelForKeybinding(this._chordPart);
        return i.UILabelProvider.toLabel(this._firstPart, e, this._chordPart, t,
            this._os)
      }, t.prototype._getAriaLabelForKeybinding = function (e) {
        return e ? e.isDuplicateModifierCase() ? "" : n.KeyCodeUtils.toString(
            e.keyCode) : null
      }, t.prototype.getAriaLabel = function () {
        var e = this._getAriaLabelForKeybinding(this._firstPart),
            t = this._getAriaLabelForKeybinding(this._chordPart);
        return i.AriaLabelProvider.toLabel(this._firstPart, e, this._chordPart,
            t, this._os)
      }, t.prototype._keyCodeToElectronAccelerator = function (e) {
        if (e >= 93 && e <= 108) {
          return null;
        }
        switch (e) {
          case 16:
            return "Up";
          case 18:
            return "Down";
          case 15:
            return "Left";
          case 17:
            return "Right"
        }
        return n.KeyCodeUtils.toString(e)
      }, t.prototype._getElectronAcceleratorLabelForKeybinding = function (e) {
        return e ? e.isDuplicateModifierCase() ? null
            : this._keyCodeToElectronAccelerator(e.keyCode) : null
      }, t.prototype.getElectronAccelerator = function () {
        if (null !== this._chordPart) {
          return null;
        }
        var e = this._getElectronAcceleratorLabelForKeybinding(this._firstPart);
        return i.ElectronAcceleratorLabelProvider.toLabel(this._firstPart, e,
            null, null, this._os)
      }, t.prototype._getUserSettingsLabelForKeybinding = function (e) {
        return e ? e.isDuplicateModifierCase() ? ""
            : n.KeyCodeUtils.toUserSettingsUS(e.keyCode) : null
      }, t.prototype.getUserSettingsLabel = function () {
        var e = this._getUserSettingsLabelForKeybinding(this._firstPart),
            t = this._getUserSettingsLabelForKeybinding(this._chordPart),
            n = i.UserSettingsLabelProvider.toLabel(this._firstPart, e,
                this._chordPart, t, this._os);
        return n ? n.toLowerCase() : n
      }, t.prototype.isWYSIWYG = function () {
        return !0
      }, t.prototype.isChord = function () {
        return !!this._chordPart
      }, t.prototype.getParts = function () {
        return [this._toResolvedKeybindingPart(this._firstPart),
          this._toResolvedKeybindingPart(this._chordPart)]
      }, t.prototype._toResolvedKeybindingPart = function (e) {
        return e ? new n.ResolvedKeybindingPart(e.ctrlKey, e.shiftKey, e.altKey,
            e.metaKey, this._getUILabelForKeybinding(e),
            this._getAriaLabelForKeybinding(e)) : null
      }, t.prototype.getDispatchParts = function () {
        return [this._firstPart ? t.getDispatchStr(this._firstPart) : null,
          this._chordPart ? t.getDispatchStr(this._chordPart) : null]
      }, t.getDispatchStr = function (e) {
        if (e.isModifierKey()) {
          return null;
        }
        var t = "";
        return e.ctrlKey && (t += "ctrl+"), e.shiftKey
        && (t += "shift+"), e.altKey && (t += "alt+"), e.metaKey
        && (t += "meta+"), t += n.KeyCodeUtils.toString(e.keyCode)
      }, t
    }(n.ResolvedKeybinding);
    t.USLayoutResolvedKeybinding = o
  }), define(d[420], h([1, 0, 7, 11, 16]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.ILifecycleService = o.createDecorator(
        "lifecycleService");
    !function (e) {
      e[e.CLOSE = 1] = "CLOSE", e[e.QUIT = 2] = "QUIT", e[e.RELOAD = 3] = "RELOAD", e[e.LOAD = 4] = "LOAD"
    }(t.ShutdownReason || (t.ShutdownReason = {}));
    var r;
    !function (e) {
      e[e.NewWindow = 1] = "NewWindow", e[e.ReloadedWindow = 3] = "ReloadedWindow", e[e.ReopenedWindow = 4] = "ReopenedWindow"
    }(r = t.StartupKind || (t.StartupKind = {}));
    var s;
    !function (e) {
      e[e.Starting = 1] = "Starting", e[e.Running = 2] = "Running", e[e.ShuttingDown = 3] = "ShuttingDown"
    }(s = t.LifecyclePhase
        || (t.LifecyclePhase = {})), t.NullLifecycleService = {
      _serviceBrand: null,
      phase: s.Running,
      startupKind: r.NewWindow,
      onDidChangePhase: i.default.None,
      onWillShutdown: i.default.None,
      onShutdown: i.default.None
    }, t.handleVetos = function (e, t) {
      if (0 === e.length) {
        return n.TPromise.as(!1);
      }
      for (var i = [], o = !1, r = 0, s = e; r < s.length; r++) {
        var a = s[r];
        if (!0 === a) {
          return n.TPromise.as(!0);
        }
        n.TPromise.is(a) && i.push(a.then(function (e) {
          e && (o = !0)
        }, function (e) {
          t(e), o = !0
        }))
      }
      return n.TPromise.join(i).then(function () {
        return o
      })
    }
  }), define(d[421], h([1, 0, 33, 70, 29, 11, 36]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a;
        !function (e) {
          e.get = function (e, t, n) {
            if (e[t]) {
              return e[t][n]
            }
          }, e.set = function (e, t, n, i) {
            e[t] || (e[t] = Object.create(null)), e[t][n] = i
          }, e.remove = function (e, t, n) {
            return !(!e[t] || !e[t][n] || (delete e[t][n], o.isEmptyObject(e[t])
            && delete e[t], 0))
          }
        }(a || (a = {}));
        var u = function () {
          function e(e) {
            this.errors = 0, this.infos = 0, this.warnings = 0, this.unknowns = 0, this._data = Object.create(
                null), this._service = e, this._subscription = e.onMarkerChanged(
                this._update, this)
          }

          return e.prototype.dispose = function () {
            this._subscription.dispose(), this._data = void 0
          }, e.prototype._update = function (e) {
            for (var t = 0, n = e; t < n.length; t++) {
              var i = n[t], o = i.toString(), r = this._data[o];
              r && this._substract(r);
              var s = this._resourceStats(i);
              this._add(s), this._data[o] = s
            }
          }, e.prototype._resourceStats = function (e) {
            var t = {errors: 0, warnings: 0, infos: 0, unknowns: 0};
            if (e.scheme === i.Schemas.inMemory || e.scheme
                === i.Schemas.walkThrough || e.scheme
                === i.Schemas.walkThroughSnippet) {
              return t;
            }
            for (var n = 0, o = this._service.read({resource: e}); n < o.length;
                n++) {
              var r = o[n].severity;
              r === s.default.Error ? t.errors += 1 : r === s.default.Warning
                  ? t.warnings += 1 : r === s.default.Info ? t.infos += 1
                      : t.unknowns += 1
            }
            return t
          }, e.prototype._substract = function (e) {
            this.errors -= e.errors, this.warnings -= e.warnings, this.infos -= e.infos, this.unknowns -= e.unknowns
          }, e.prototype._add = function (e) {
            this.errors += e.errors, this.warnings += e.warnings, this.infos += e.infos, this.unknowns += e.unknowns
          }, e
        }(), l = function () {
          function e() {
            this._onMarkerChanged = new r.Emitter, this._onMarkerChangedEvent = r.debounceEvent(
                this._onMarkerChanged.event, e._debouncer,
                0), this._byResource = Object.create(
                null), this._byOwner = Object.create(null), this._stats = new u(
                this)
          }

          return e.prototype.dispose = function () {
            this._stats.dispose()
          }, Object.defineProperty(e.prototype, "onMarkerChanged", {
            get: function () {
              return this._onMarkerChangedEvent
            }, enumerable: !0, configurable: !0
          }), e.prototype.getStatistics = function () {
            return this._stats
          }, e.prototype.remove = function (e, t) {
            if (!n.isFalsyOrEmpty(t)) {
              for (var i = 0, o = t; i < o.length;
                  i++) {
                var r = o[i];
                this.changeOne(e, r, void 0)
              }
            }
          }, e.prototype.changeOne = function (t, i, o) {
            if (n.isFalsyOrEmpty(o)) {
              var r = a.remove(this._byResource, i.toString(), t),
                  s = a.remove(this._byOwner, t, i.toString());
              if (r !== s) {
                throw new Error("invalid marker service state");
              }
              r && s && this._onMarkerChanged.fire([i])
            } else {
              for (var u = [], l = 0, c = o; l < c.length; l++) {
                var d = c[l], h = e._toMarker(t, i, d);
                h && u.push(h)
              }
              a.set(this._byResource, i.toString(), t, u), a.set(this._byOwner,
                  t, i.toString(), u), this._onMarkerChanged.fire([i])
            }
          }, e._toMarker = function (e, t, n) {
            var i = n.code, o = n.severity, r = n.message, s = n.source,
                a = n.startLineNumber, u = n.startColumn, l = n.endLineNumber,
                c = n.endColumn;
            if (r) {
              return i = i || null, a = a > 0 ? a : 1, u = u > 0 ? u
                  : 1, l = l >= a ? l : a, c = c > 0 ? c : u, {
                resource: t,
                owner: e,
                code: i,
                severity: o,
                message: r,
                source: s,
                startLineNumber: a,
                startColumn: u,
                endLineNumber: l,
                endColumn: c
              }
            }
          }, e.prototype.changeAll = function (t, i) {
            var o = [], r = this._byOwner[t];
            if (r) {
              delete this._byOwner[t];
              for (var s in r) {
                var u = a.get(this._byResource, s, t)[0];
                u && o.push(u.resource), a.remove(this._byResource, s, t)
              }
            }
            if (!n.isFalsyOrEmpty(i)) {
              for (var l = Object.create(null), c = 0, d = i; c < d.length;
                  c++) {
                var h = d[c], s = h.resource, p = h.marker,
                    f = e._toMarker(t, s, p);
                if (f) {
                  var g = l[s.toString()];
                  g ? g.push(f) : (l[s.toString()] = [f], o.push(s))
                }
              }
              for (var s in l) {
                a.set(this._byResource, s, t, l[s]), a.set(
                    this._byOwner, t, s, l[s])
              }
            }
            o.length > 0 && this._onMarkerChanged.fire(o)
          }, e.prototype.read = function (e) {
            void 0 === e && (e = Object.create(null));
            var t = e.owner, n = e.resource, i = e.take;
            if ((!i || i < 0) && (i = -1), t && n) {
              return (d = a.get(
                  this._byResource, n.toString(), t)) ? d.slice(0,
                  i > 0 ? i : void 0) : [];
            }
            if (t || n) {
              var o = t ? this._byOwner[t] : this._byResource[n.toString()];
              if (!o) {
                return [];
              }
              d = [];
              for (var r in o) {
                for (var s = 0, u = o[r]; s < u.length; s++) {
                  var l = u[s], c = d.push(l);
                  if (i > 0 && c === i) {
                    return d
                  }
                }
              }
              return d
            }
            var d = [];
            for (var h in this._byResource) {
              for (var p in
                  this._byResource[h]) {
                for (var f = 0, g = this._byResource[h][p];
                    f < g.length; f++) {
                  var l = g[f], c = d.push(l);
                  if (i > 0 && c === i) {
                    return d
                  }
                }
              }
            }
            return d
          }, e._debouncer = function (t, n) {
            t || (e._dedupeMap = Object.create(null), t = []);
            for (var i = 0, o = n; i < o.length; i++) {
              var r = o[i];
              void 0 === e._dedupeMap[r.toString()]
              && (e._dedupeMap[r.toString()] = !0, t.push(r))
            }
            return t
          }, e
        }();
        t.MarkerService = l
      }), define(d[103], h([1, 0, 36, 16]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      var t = "";
      e.makeKey = function (e) {
        var i = [t];
        return e.source ? i.push(e.source.replace("¦", "¦")) : i.push(t), e.code
            ? i.push(e.code.replace("¦", "¦")) : i.push(t), void 0
        !== e.severity && null !== e.severity ? i.push(
            n.default.toString(e.severity)) : i.push(t), e.message ? i.push(
            e.message.replace("¦", "¦")) : i.push(t), void 0
        !== e.startLineNumber && null !== e.startLineNumber ? i.push(
            e.startLineNumber.toString()) : i.push(t), void 0 !== e.startColumn
        && null !== e.startColumn ? i.push(e.startColumn.toString()) : i.push(
            t), void 0 !== e.endLineNumber && null !== e.endLineNumber ? i.push(
            e.endLineNumber.toString()) : i.push(t), void 0 !== e.endColumn
        && null !== e.endColumn ? i.push(e.endColumn.toString()) : i.push(
            t), i.push(t), i.join("¦")
      }
    }(t.IMarkerData
        || (t.IMarkerData = {})), t.IMarkerService = i.createDecorator(
        "markerService")
  }), define(d[50], h([1, 0, 384, 7, 36, 16, 53]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule",
            {value: !0}), t.CloseAction = new s.Action("close.message",
            n.localize(0, null), null, !0, function () {
              return i.TPromise.as(!0)
            }), t.LaterAction = new s.Action("later.message",
            n.localize(1, null), null, !0, function () {
              return i.TPromise.as(!0)
            }), t.CancelAction = new s.Action("cancel.message",
            n.localize(2, null), null, !0, function () {
              return i.TPromise.as(!0)
            }), t.IMessageService = r.createDecorator(
            "messageService"), t.IChoiceService = r.createDecorator(
            "choiceService"), t.Severity = o.default
      }), define(d[71], h([1, 0, 7, 16]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.IOpenerService = i.createDecorator(
        "openerService"), t.NullOpenerService = Object.freeze({
      _serviceBrand: void 0, open: function () {
        return n.TPromise.as(void 0)
      }
    })
  }), define(d[425], h([1, 0, 195, 196, 4, 102, 71, 24, 10, 122]),
      function (e, t, n, i, o, r, s, a, u, l) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var c = function () {
          function e(e) {
            this._editor = e, this._lineNumber = -1
          }

          return e.prototype.setLineNumber = function (e) {
            this._lineNumber = e, this._result = []
          }, e.prototype.clearResult = function () {
            this._result = []
          }, e.prototype.computeSync = function () {
            for (var e = function (e) {
                  return {value: e}
                }, t = this._editor.getLineDecorations(this._lineNumber), n = [],
                i = 0, o = t.length; i < o; i++) {
              var r = t[i];
              if (r.options.glyphMarginClassName) {
                var s = r.options.glyphMarginHoverMessage;
                (function (e) {
                  return e && (!Array.isArray(e) || e.length > 0)
                })(s) && (Array.isArray(s) ? n = n.concat(s.map(e)) : n.push(
                    e(s)))
              }
            }
            return n
          }, e.prototype.onResult = function (e, t) {
            this._result = this._result.concat(e)
          }, e.prototype.getResult = function () {
            return this._result
          }, e.prototype.getResultWithLoadingMessage = function () {
            return this.getResult()
          }, e
        }(), d = function (e) {
          function t(i, o, r) {
            var a = e.call(this, t.ID, i) || this;
            return a.openerService = o, a.modeService = r, a.openerService = o
                || s.NullOpenerService, a._lastLineNumber = -1, a._computer = new c(
                a._editor), a._hoverOperation = new n.HoverOperation(
                a._computer, function (e) {
                  return a._withResult(e)
                }, null, function (e) {
                  return a._withResult(e)
                }), a
          }

          return f(t, e), t.prototype.dispose = function () {
            this._hoverOperation.cancel(), e.prototype.dispose.call(this)
          }, t.prototype.onModelDecorationsChanged = function () {
            this.isVisible
            && (this._hoverOperation.cancel(), this._computer.clearResult(), this._hoverOperation.start())
          }, t.prototype.startShowingAt = function (e) {
            this._lastLineNumber !== e
            && (this._hoverOperation.cancel(), this.hide(), this._lastLineNumber = e, this._computer.setLineNumber(
                e), this._hoverOperation.start())
          }, t.prototype.hide = function () {
            this._lastLineNumber = -1, this._hoverOperation.cancel(), e.prototype.hide.call(
                this)
          }, t.prototype._withResult = function (e) {
            this._messages = e, this._messages.length > 0
                ? this._renderMessages(this._lastLineNumber, this._messages)
                : this.hide()
          }, t.prototype._renderMessages = function (e, t) {
            var n = this, i = document.createDocumentFragment();
            t.forEach(function (e) {
              var t = r.renderMarkedString(e.value, {
                actionCallback: function (e) {
                  return n.openerService.open(a.default.parse(e)).then(void 0,
                      u.onUnexpectedError)
                }, codeBlockRenderer: function (e, t) {
                  var i = n.modeService.getModeIdForLanguageName(e);
                  return n.modeService.getOrCreateMode(i).then(function (e) {
                    return l.tokenizeToString(t, i)
                  })
                }
              });
              i.appendChild(o.$("div.hover-row", null, t))
            }), this.updateContents(i), this.showAt(e)
          }, t.ID = "editor.contrib.modesGlyphHoverWidget", t
        }(i.GlyphHoverWidget);
        t.ModesGlyphHoverWidget = d
      }), define(d[163], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.IProgressService = n.createDecorator(
        "progressService"), t.emptyProgress = Object.freeze({
      report: function () {
      }
    });
    var i = function () {
      function e(e) {
        this._callback = e
      }

      return Object.defineProperty(e.prototype, "value", {
        get: function () {
          return this._value
        }, enumerable: !0, configurable: !0
      }), e.prototype.report = function (e) {
        this._value = e, this._callback()
      }, e
    }();
    t.Progress = i;
    !function (e) {
      e[e.Scm = 1] = "Scm", e[e.Window = 10] = "Window"
    }(t.ProgressLocation
        || (t.ProgressLocation = {})), t.IProgressService2 = n.createDecorator(
        "progressService2")
  }), define(d[44], h([1, 0, 29, 72]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function () {
      function e() {
        this.data = {}
      }

      return e.prototype.add = function (e, t) {
        i.ok(n.isString(e)), i.ok(n.isObject(t)), i.ok(
            !this.data.hasOwnProperty(e),
            "There is already an extension with this id"), this.data[e] = t
      }, e.prototype.knows = function (e) {
        return this.data.hasOwnProperty(e)
      }, e.prototype.as = function (e) {
        return this.data[e] || null
      }, e
    }();
    t.Registry = new o;
    var r = function () {
      function e() {
        this.toBeInstantiated = [], this.instances = []
      }

      return e.prototype.setInstantiationService = function (e) {
        for (this.instantiationService = e; this.toBeInstantiated.length > 0;) {
          var t = this.toBeInstantiated.shift();
          this.instantiate(t)
        }
      }, e.prototype.instantiate = function (e) {
        var t = this.instantiationService.createInstance(e);
        this.instances.push(t)
      }, e.prototype._register = function (e) {
        this.instantiationService ? this.instantiate(e)
            : this.toBeInstantiated.push(e)
      }, e.prototype._getInstances = function () {
        return this.instances.slice(0)
      }, e.prototype._setInstances = function (e) {
        this.instances = e
      }, e
    }();
    t.BaseRegistry = r
  }), define(d[30], h([1, 0, 44]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.editorContribution = function (e) {
      o.INSTANCE.registerEditorBrowserContribution(e)
    };
    !function (e) {
      e.getEditorContributions = function () {
        return o.INSTANCE.getEditorBrowserContributions()
      }
    }(t.EditorBrowserRegistry || (t.EditorBrowserRegistry = {}));
    var i = {EditorContributions: "editor.contributions"}, o = function () {
      function e() {
        this.editorContributions = []
      }

      return e.prototype.registerEditorBrowserContribution = function (e) {
        this.editorContributions.push(e)
      }, e.prototype.getEditorBrowserContributions = function () {
        return this.editorContributions.slice(0)
      }, e.INSTANCE = new e, e
    }();
    n.Registry.add(i.EditorContributions, o.INSTANCE)
  }), define(d[126], h([1, 0, 336, 11, 44, 43, 17]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule",
            {value: !0}), t.Extensions = {ModesRegistry: "editor.modesRegistry"};
        var a = function () {
          function e() {
            this._onDidAddLanguages = new i.Emitter, this.onDidAddLanguages = this._onDidAddLanguages.event, this._languages = []
          }

          return e.prototype.registerLanguage = function (e) {
            this._languages.push(e), this._onDidAddLanguages.fire([e])
          }, e.prototype.registerLanguages = function (e) {
            this._languages = this._languages.concat(
                e), this._onDidAddLanguages.fire(e)
          }, e.prototype.getLanguages = function () {
            return this._languages.slice(0)
          }, e
        }();
        t.EditorModesRegistry = a, t.ModesRegistry = new a, o.Registry.add(
            t.Extensions.ModesRegistry,
            t.ModesRegistry), t.PLAINTEXT_MODE_ID = "plaintext", t.PLAINTEXT_LANGUAGE_IDENTIFIER = new s.LanguageIdentifier(
            t.PLAINTEXT_MODE_ID, 1), t.ModesRegistry.registerLanguage({
          id: t.PLAINTEXT_MODE_ID,
          extensions: [".txt", ".gitignore"],
          aliases: [n.localize(0, null), "text"],
          mimetypes: ["text/plain"]
        }), r.LanguageConfigurationRegistry.register(
            t.PLAINTEXT_LANGUAGE_IDENTIFIER,
            {brackets: [["(", ")"], ["[", "]"], ["{", "}"]]})
      }), define(d[430],
      h([1, 0, 339, 70, 11, 36, 7, 103, 2, 20, 175, 15, 62, 49, 126, 101, 55,
        34]), function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, f, g, m, _) {
        "use strict";

        function C(e) {
          return e.toString()
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var b = function () {
          function e(e, t) {
            var n = this;
            this.model = e, this._markerDecorations = [], this._modelEventsListener = e.addBulkListener(
                function (e) {
                  return t(n, e)
                })
          }

          return e.prototype.dispose = function () {
            this._markerDecorations = this.model.deltaDecorations(
                this._markerDecorations,
                []), this._modelEventsListener.dispose(), this._modelEventsListener = null, this.model = null
          }, e.prototype.getModelId = function () {
            return C(this.model.uri)
          }, e.prototype.acceptMarkerDecorations = function (e) {
            this._markerDecorations = this.model.deltaDecorations(
                this._markerDecorations, e)
          }, e
        }(), w = function () {
          function e() {
          }

          return e.setMarkers = function (e, t) {
            var n = this, i = t.read({resource: e.model.uri, take: 500}).map(
                function (t) {
                  return {
                    range: n._createDecorationRange(e.model, t),
                    options: n._createDecorationOption(t)
                  }
                });
            e.acceptMarkerDecorations(i)
          }, e._createDecorationRange = function (e, t) {
            var n = e.validateRange(
                    new u.Range(t.startLineNumber, t.startColumn, t.endLineNumber,
                        t.endColumn)),
                i = new u.Range(n.startLineNumber, n.startColumn,
                    n.endLineNumber, n.endColumn);
            if (i.isEmpty()) {
              var o = e.getWordAtPosition(i.getStartPosition());
              if (o) {
                i = new u.Range(i.startLineNumber, o.startColumn,
                    i.endLineNumber, o.endColumn);
              } else {
                var r = e.getLineLastNonWhitespaceColumn(n.startLineNumber)
                    || e.getLineMaxColumn(n.startLineNumber);
                1 === r || (i = i.endColumn >= r ? new u.Range(
                    i.startLineNumber, r - 1, i.endLineNumber, r) : new u.Range(
                    i.startLineNumber, i.startColumn, i.endLineNumber,
                    i.endColumn + 1))
              }
            } else if (t.endColumn === Number.MAX_VALUE && 1 === t.startColumn
                && i.startLineNumber === i.endLineNumber) {
              var s = e.getLineFirstNonWhitespaceColumn(t.startLineNumber);
              s < i.endColumn && (i = new u.Range(i.startLineNumber, s,
                  i.endLineNumber, i.endColumn), t.startColumn = s)
            }
            return i
          }, e._createDecorationOption = function (e) {
            var t, i, o, s;
            switch (e.severity) {
              case r.default.Ignore:
                break;
              case r.default.Warning:
              case r.default.Info:
                t = _.ClassName.EditorWarningDecoration, i = "rgba(18,136,18,0.7)", o = "rgba(18,136,18,0.7)", s = "rgba(50,255,50,1)";
                break;
              case r.default.Error:
              default:
                t = _.ClassName.EditorErrorDecoration, i = "rgba(255,18,18,0.7)", o = "rgba(255,18,18,0.7)", s = "rgba(255,50,50,1)"
            }
            var a = null, u = e.message, c = e.source;
            return "string" == typeof u && (u = u.trim(), c && (u = /\n/g.test(
                u) ? n.localize(0, null, c, u) : n.localize(1, null, c,
                u)), a = [{
              language: "_",
              value: u
            }]), {
              stickiness: l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
              className: t,
              hoverMessage: a,
              showIfCollapsed: !0,
              overviewRuler: {
                color: i,
                darkColor: o,
                hcColor: s,
                position: l.OverviewRulerLane.Right
              }
            }
          }, e
        }(), S = d.isLinux || d.isMacintosh ? l.DefaultEndOfLine.LF
            : l.DefaultEndOfLine.CRLF, E = function () {
          function e(e, t) {
            var n = this;
            this._markerService = e, this._configurationService = t, this._models = {}, this._modelCreationOptionsByLanguage = Object.create(
                null), this._onModelAdded = new o.Emitter, this._onModelRemoved = new o.Emitter, this._onModelModeChanged = new o.Emitter, this._markerService
            && (this._markerServiceSubscription = this._markerService.onMarkerChanged(
                this._handleMarkerChange,
                this)), this._configurationServiceSubscription = this._configurationService.onDidUpdateConfiguration(
                function (e) {
                  return n._updateModelOptions()
                }), this._updateModelOptions()
          }

          return e._readModelOptions = function (e) {
            var t = p.EDITOR_MODEL_DEFAULTS.tabSize;
            if (e.editor && void 0 !== e.editor.tabSize) {
              var n = parseInt(e.editor.tabSize, 10);
              isNaN(n) || (t = n)
            }
            var i = p.EDITOR_MODEL_DEFAULTS.insertSpaces;
            e.editor && void 0 !== e.editor.insertSpaces && (i = "false"
                !== e.editor.insertSpaces && Boolean(e.editor.insertSpaces));
            var o = S, r = e.files && e.files.eol;
            "\r\n" === r ? o = l.DefaultEndOfLine.CRLF : "\n" === r
                && (o = l.DefaultEndOfLine.LF);
            var s = p.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace;
            e.editor && void 0 !== e.editor.trimAutoWhitespace && (s = "false"
                !== e.editor.trimAutoWhitespace && Boolean(
                    e.editor.trimAutoWhitespace));
            var a = p.EDITOR_MODEL_DEFAULTS.detectIndentation;
            return e.editor && void 0 !== e.editor.detectIndentation
            && (a = "false" !== e.editor.detectIndentation && Boolean(
                e.editor.detectIndentation)), {
              tabSize: t,
              insertSpaces: i,
              detectIndentation: a,
              defaultEOL: o,
              trimAutoWhitespace: s
            }
          }, e.prototype.getCreationOptions = function (t) {
            var n = this._modelCreationOptionsByLanguage[t];
            return n || (n = e._readModelOptions(
                this._configurationService.getConfiguration(null,
                    {overrideIdentifier: t})), this._modelCreationOptionsByLanguage[t] = n), n
          }, e.prototype._updateModelOptions = function () {
            var t = this._modelCreationOptionsByLanguage;
            this._modelCreationOptionsByLanguage = Object.create(null);
            for (var n = Object.keys(this._models), i = 0, o = n.length; i < o;
                i++) {
              var r = n[i], s = this._models[r],
                  a = s.model.getLanguageIdentifier().language, u = t[a],
                  l = this.getCreationOptions(a);
              e._setModelOptionsForModel(s.model, l, u)
            }
          }, e._setModelOptionsForModel = function (e, t, n) {
            n && n.detectIndentation === t.detectIndentation && n.insertSpaces
            === t.insertSpaces && n.tabSize === t.tabSize
            && n.trimAutoWhitespace === t.trimAutoWhitespace
            || (t.detectIndentation ? (e.detectIndentation(t.insertSpaces,
                t.tabSize), e.updateOptions(
                {trimAutoWhitespace: t.trimAutoWhitespace})) : e.updateOptions({
              insertSpaces: t.insertSpaces,
              tabSize: t.tabSize,
              trimAutoWhitespace: t.trimAutoWhitespace
            }))
          }, e.prototype.dispose = function () {
            this._markerServiceSubscription
            && this._markerServiceSubscription.dispose(), this._configurationServiceSubscription.dispose()
          }, e.prototype._handleMarkerChange = function (e) {
            var t = this;
            e.forEach(function (e) {
              var n = C(e), i = t._models[n];
              i && w.setMarkers(i, t._markerService)
            })
          }, e.prototype._cleanUp = function (e) {
            var t = this;
            e.uri.scheme !== i.Schemas.inMemory && e.uri.scheme
            !== i.Schemas.internal && e.uri.scheme !== i.Schemas.vscode
            || this._markerService && this._markerService.read(
                {resource: e.uri}).map(function (e) {
              return e.owner
            }).forEach(function (n) {
              return t._markerService.remove(n, [e.uri])
            })
          }, e.prototype._createModelData = function (e, t, n) {
            var i = this, o = this.getCreationOptions(t.language),
                r = "string" == typeof e ? g.RawTextSource.fromString(e) : e,
                s = new c.Model(r, o, t, n), a = C(s.uri);
            if (this._models[a]) {
              throw new Error(
                  "ModelService: Cannot add model because it already exists!");
            }
            var u = new b(s, function (e, t) {
              return i._onModelEvents(e, t)
            });
            return this._models[a] = u, u
          }, e.prototype.updateModel = function (e, t) {
            var n = this.getCreationOptions(e.getLanguageIdentifier().language),
                i = g.TextSource.create(t, n.defaultEOL);
            e.equals(i) || e.setValueFromTextSource(i)
          }, e.prototype.createModel = function (e, t, n) {
            var i;
            return !t || s.TPromise.is(t) ? (i = this._createModelData(e,
                    f.PLAINTEXT_LANGUAGE_IDENTIFIER, n), this.setMode(i.model, t))
                : i = this._createModelData(e, t.getLanguageIdentifier(),
                    n), this._markerService && w.setMarkers(i,
                this._markerService), this._onModelAdded.fire(i.model), i.model
          }, e.prototype.setMode = function (e, t) {
            t && (s.TPromise.is(t) ? t.then(function (t) {
              e.isDisposed() || e.setMode(t.getLanguageIdentifier())
            }) : e.setMode(t.getLanguageIdentifier()))
          }, e.prototype.destroyModel = function (e) {
            var t = this._models[C(e)];
            t && t.model.dispose()
          }, e.prototype.getModels = function () {
            for (var e = [], t = Object.keys(this._models), n = 0, i = t.length;
                n < i; n++) {
              var o = t[n];
              e.push(this._models[o].model)
            }
            return e
          }, e.prototype.getModel = function (e) {
            var t = C(e), n = this._models[t];
            return n ? n.model : null
          }, Object.defineProperty(e.prototype, "onModelAdded", {
            get: function () {
              return this._onModelAdded ? this._onModelAdded.event : null
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "onModelRemoved", {
            get: function () {
              return this._onModelRemoved ? this._onModelRemoved.event : null
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "onModelModeChanged", {
            get: function () {
              return this._onModelModeChanged ? this._onModelModeChanged.event
                  : null
            }, enumerable: !0, configurable: !0
          }), e.prototype._onModelDisposing = function (e) {
            var t = C(e.uri), n = this._models[t];
            delete this._models[t], n.dispose(), this._cleanUp(
                e), this._onModelRemoved.fire(e)
          }, e.prototype._onModelEvents = function (t, n) {
            for (var i = 0, o = n.length; i < o; i++) {
              if ((r = n[i]).type
                  === m.TextModelEventType.ModelDispose) {
                return void this._onModelDisposing(
                    t.model);
              }
            }
            for (var i = 0, o = n.length; i < o; i++) {
              var r = n[i];
              if (r.type === m.TextModelEventType.ModelLanguageChanged) {
                var s = t.model, a = r.data.oldLanguage,
                    u = s.getLanguageIdentifier().language,
                    l = this.getCreationOptions(a),
                    c = this.getCreationOptions(u);
                e._setModelOptionsForModel(s, c,
                    l), this._onModelModeChanged.fire({model: s, oldModeId: a})
              }
            }
          }, e = v([y(0, a.IMarkerService), y(1, h.IConfigurationService)], e)
        }();
        t.ModelServiceImpl = E
      }), define(d[431], h([1, 0, 3, 15, 25, 30, 12, 2, 22, 251, 34, 325]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function () {
          function e(e) {
            var t = this;
            this._editor = e, this._toUnhook = [], this._toUnhook.push(
                this._editor.onMouseDown(function (e) {
                  return t._onEditorMouseDown(e)
                })), this._toUnhook.push(this._editor.onMouseUp(function (e) {
              return t._onEditorMouseUp(e)
            })), this._toUnhook.push(this._editor.onMouseDrag(function (e) {
              return t._onEditorMouseDrag(e)
            })), this._toUnhook.push(this._editor.onMouseDrop(function (e) {
              return t._onEditorMouseDrop(e)
            })), this._toUnhook.push(this._editor.onKeyDown(function (e) {
              return t.onEditorKeyDown(e)
            })), this._toUnhook.push(this._editor.onKeyUp(function (e) {
              return t.onEditorKeyUp(e)
            })), this._dndDecorationIds = [], this._mouseDown = !1, this._modiferPressed = !1, this._dragSelection = null
          }

          return t = e, e.get = function (e) {
            return e.getContribution(t.ID)
          }, e.prototype.onEditorKeyDown = function (e) {
            this._editor.getConfiguration().dragAndDrop
            && (e[t.TRIGGER_MODIFIER]
            && (this._modiferPressed = !0), this._mouseDown
            && e[t.TRIGGER_MODIFIER] && this._editor.updateOptions(
                {mouseStyle: "copy"}))
          }, e.prototype.onEditorKeyUp = function (e) {
            this._editor.getConfiguration().dragAndDrop
            && (e[t.TRIGGER_MODIFIER]
            && (this._modiferPressed = !1), this._mouseDown && e.keyCode
            === t.TRIGGER_KEY_VALUE && this._editor.updateOptions(
                {mouseStyle: "default"}))
          }, e.prototype._onEditorMouseDown = function (e) {
            this._mouseDown = !0
          }, e.prototype._onEditorMouseUp = function (e) {
            this._mouseDown = !1, this._editor.updateOptions(
                {mouseStyle: "text"})
          }, e.prototype._onEditorMouseDrag = function (e) {
            var n = e.target;
            if (null === this._dragSelection) {
              var i = this._editor.getSelections().filter(function (e) {
                return e.containsPosition(n.position)
              });
              if (1 !== i.length) {
                return;
              }
              this._dragSelection = i[0]
            }
            e.event[t.TRIGGER_MODIFIER] ? this._editor.updateOptions(
                {mouseStyle: "copy"}) : this._editor.updateOptions(
                {mouseStyle: "default"}), this._dragSelection.containsPosition(
                n.position) ? this._removeDecoration() : this.showAt(n.position)
          }, e.prototype._onEditorMouseDrop = function (e) {
            if (e.target && (this._hitContent(e.target) || this._hitMargin(
                e.target)) && e.target.position) {
              var n = new s.Position(e.target.position.lineNumber,
                  e.target.position.column);
              if (null === this._dragSelection) {
                var i = this._editor.getSelections().map(function (e) {
                  return e.containsPosition(n) ? new u.Selection(n.lineNumber,
                      n.column, n.lineNumber, n.column) : e
                });
                this._editor.setSelections(i)
              } else {
                (!this._dragSelection.containsPosition(n)
                    || (e.event[t.TRIGGER_MODIFIER] || this._modiferPressed)
                    && (this._dragSelection.getEndPosition().equals(n)
                        || this._dragSelection.getStartPosition().equals(n)))
                && (this._editor.pushUndoStop(), this._editor.executeCommand(
                    t.ID,
                    new l.DragAndDropCommand(this._dragSelection, n,
                        e.event[t.TRIGGER_MODIFIER]
                        || this._modiferPressed)), this._editor.pushUndoStop())
              }
            }
            this._editor.updateOptions(
                {mouseStyle: "text"}), this._removeDecoration(), this._dragSelection = null, this._mouseDown = !1
          }, e.prototype.showAt = function (e) {
            var n = this;
            this._editor.changeDecorations(function (i) {
              var o = [];
              o.push({
                range: new a.Range(e.lineNumber, e.column, e.lineNumber,
                    e.column), options: t._DECORATION_OPTIONS
              }), n._dndDecorationIds = i.deltaDecorations(n._dndDecorationIds,
                  o)
            }), this._editor.revealPosition(e)
          }, e.prototype._removeDecoration = function () {
            var e = this;
            this._editor.changeDecorations(function (t) {
              t.deltaDecorations(e._dndDecorationIds, [])
            })
          }, e.prototype._hitContent = function (e) {
            return e.type === o.MouseTargetType.CONTENT_TEXT || e.type
                === o.MouseTargetType.CONTENT_EMPTY
          }, e.prototype._hitMargin = function (e) {
            return e.type === o.MouseTargetType.GUTTER_GLYPH_MARGIN || e.type
                === o.MouseTargetType.GUTTER_LINE_NUMBERS || e.type
                === o.MouseTargetType.GUTTER_LINE_DECORATIONS
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.dispose = function () {
            this._removeDecoration(), this._dragSelection = null, this._mouseDown = !1, this._modiferPressed = !1, this._toUnhook = n.dispose(
                this._toUnhook)
          }, e.ID = "editor.contrib.dragAndDrop", e.TRIGGER_MODIFIER = i.isMacintosh
              ? "altKey" : "ctrlKey", e.TRIGGER_KEY_VALUE = i.isMacintosh ? 6
              : 5, e._DECORATION_OPTIONS = c.ModelDecorationOptions.register(
              {className: "dnd-target"}), e = t = v([r.editorContribution], e);
          var t
        }();
        t.DragAndDropController = d
      }), define(d[432], h([1, 0, 3, 28, 4, 25, 30, 402]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function () {
          function e(e) {
            var t = this;
            this.editor = e, this.toDispose = [], i.isIPad
            && (this.toDispose.push(e.onDidChangeConfiguration(function () {
              return t.update()
            })), this.update())
          }

          return t = e, e.prototype.update = function () {
            var e = !!this.widget, t = !this.editor.getConfiguration().readOnly;
            !e && t ? this.widget = new u(this.editor) : e && !t
                && (this.widget.dispose(), this.widget = null)
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.dispose = function () {
            this.toDispose = n.dispose(this.toDispose), this.widget
            && (this.widget.dispose(), this.widget = null)
          }, e.ID = "editor.contrib.iPadShowKeyboard", e = t = v(
              [s.editorContribution], e);
          var t
        }();
        t.IPadShowKeyboard = a;
        var u = function () {
          function e(e) {
            var t = this;
            this.editor = e, this._domNode = document.createElement(
                "textarea"), this._domNode.className = "iPadShowKeyboard", this._toDispose = [], this._toDispose.push(
                o.addDisposableListener(this._domNode, "touchstart",
                    function (e) {
                      t.editor.focus()
                    })), this._toDispose.push(
                o.addDisposableListener(this._domNode, "focus", function (e) {
                  t.editor.focus()
                })), this.editor.addOverlayWidget(this)
          }

          return e.prototype.dispose = function () {
            this.editor.removeOverlayWidget(this), this._toDispose = n.dispose(
                this._toDispose)
          }, e.prototype.getId = function () {
            return e.ID
          }, e.prototype.getDomNode = function () {
            return this._domNode
          }, e.prototype.getPosition = function () {
            return {preference: r.OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER}
          }, e.ID = "editor.contrib.ShowKeyboardWidget", e
        }()
      }), define(d[433], h([1, 0, 44, 38]), function (e, t, n, i) {
    "use strict";

    function o(e) {
      return e.length > 0 && "#" === e.charAt(e.length - 1) ? e.substring(0,
          e.length - 1) : e
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.Extensions = {JSONContribution: "base.contributions.json"};
    var r = new (function () {
      function e() {
        this.schemasById = {}, this.eventEmitter = new i.EventEmitter
      }

      return e.prototype.addRegistryChangedListener = function (e) {
        return this.eventEmitter.addListener("registryChanged", e)
      }, e.prototype.registerSchema = function (e, t) {
        this.schemasById[o(e)] = t, this.eventEmitter.emit("registryChanged",
            {})
      }, e.prototype.getSchemaContributions = function () {
        return {schemas: this.schemasById}
      }, e
    }());
    n.Registry.add(t.Extensions.JSONContribution, r)
  }), define(d[127], h([1, 0, 382, 11, 44, 29, 9, 433]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";

        function u(e) {
          switch (Array.isArray(e) ? e[0] : e) {
            case"boolean":
              return !1;
            case"integer":
            case"number":
              return 0;
            case"string":
              return "";
            case"array":
              return [];
            case"object":
              return {};
            default:
              return null
          }
        }

        function l(e) {
          return t.OVERRIDE_PROPERTY_PATTERN.test(e) ? n.localize(3, null, e)
              : void 0 !== m.getConfigurationProperties()[e] ? n.localize(4,
                  null, e) : null
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.Extensions = {Configuration: "base.contributions.configuration"};
        var c;
        !function (e) {
          e[e.WINDOW = 1] = "WINDOW", e[e.RESOURCE = 2] = "RESOURCE"
        }(c = t.ConfigurationScope
            || (t.ConfigurationScope = {})), t.schemaId = "vscode://schemas/settings", t.editorConfigurationSchemaId = "vscode://schemas/settings/editor", t.resourceConfigurationSchemaId = "vscode://schemas/settings/resource";
        var d = o.Registry.as(a.Extensions.JSONContribution), h = function () {
          function e() {
            this.overrideIdentifiers = [], this.configurationContributors = [], this.configurationSchema = {
              properties: {},
              patternProperties: {},
              additionalProperties: !1,
              errorMessage: "Unknown configuration setting"
            }, this.editorConfigurationSchema = {
              properties: {},
              patternProperties: {},
              additionalProperties: !1,
              errorMessage: "Unknown editor configuration setting"
            }, this.resourceConfigurationSchema = {
              properties: {},
              patternProperties: {},
              additionalProperties: !1,
              errorMessage: "Not a resource configuration setting"
            }, this._onDidRegisterConfiguration = new i.Emitter, this.configurationProperties = {}, this.computeOverridePropertyPattern(), d.registerSchema(
                t.schemaId, this.configurationSchema), d.registerSchema(
                t.editorConfigurationSchemaId,
                this.editorConfigurationSchema), d.registerSchema(
                t.resourceConfigurationSchemaId,
                this.resourceConfigurationSchema)
          }

          return Object.defineProperty(e.prototype,
              "onDidRegisterConfiguration", {
                get: function () {
                  return this._onDidRegisterConfiguration.event
                }, enumerable: !0, configurable: !0
              }), e.prototype.registerConfiguration = function (e, t) {
            void 0 === t && (t = !0), this.registerConfigurations([e], t)
          }, e.prototype.registerConfigurations = function (e, t) {
            var n = this;
            void 0 === t && (t = !0), e.forEach(function (e) {
              n.validateAndRegisterProperties(e,
                  t), n.configurationContributors.push(
                  e), n.registerJSONConfiguration(
                  e), n.updateSchemaForOverrideSettingsConfiguration(e)
            }), this._onDidRegisterConfiguration.fire(this)
          }, e.prototype.registerOverrideIdentifiers = function (e) {
            (t = this.overrideIdentifiers).push.apply(t,
                e), this.updateOverridePropertyPatternKey();
            var t
          }, e.prototype.registerDefaultConfigurations = function (e) {
            for (var i = {
              id: "defaultOverrides",
              title: n.localize(0, null),
              properties: {}
            }, o = 0, r = e; o < r.length; o++) {
              var s = r[o];
              for (var a in s.defaults) {
                var u = s.defaults[a];
                t.OVERRIDE_PROPERTY_PATTERN.test(a) && "object" == typeof u
                && (i.properties[a] = {
                  type: "object",
                  default: u,
                  description: n.localize(1, null, a),
                  $ref: t.editorConfigurationSchemaId
                })
              }
            }
            Object.keys(i.properties).length && this.registerConfiguration(i,
                !1)
          }, e.prototype.validateAndRegisterProperties = function (e, t, n, i) {
            void 0 === t && (t = !0), void 0 === n && (n = c.WINDOW), void 0
            === i && (i = !1), n = void 0 !== e.scope && null !== e.scope
                ? e.scope : n, i = e.overridable || i;
            var o = e.properties;
            if (o) {
              for (var s in o) {
                var a = void 0;
                if (t && (a = l(s))) {
                  console.warn(a), delete o[s];
                } else {
                  var d = o[s], h = d.default;
                  r.isUndefined(h) && (d.default = u(d.type)), i
                  && (d.overridable = !0), void 0 === d.scope
                  && (d.scope = n), this.configurationProperties[s] = o[s]
                }
              }
            }
            var p = e.allOf;
            if (p) {
              for (var f = 0, g = p; f < g.length; f++) {
                var m = g[f];
                this.validateAndRegisterProperties(m, t, n, i)
              }
            }
          }, e.prototype.validateProperty = function (e) {
            return !t.OVERRIDE_PROPERTY_PATTERN.test(e) && void 0
                !== this.getConfigurationProperties()[e]
          }, e.prototype.getConfigurations = function () {
            return this.configurationContributors
          }, e.prototype.getConfigurationProperties = function () {
            return this.configurationProperties
          }, e.prototype.registerJSONConfiguration = function (e) {
            function n(e) {
              var t = e.properties;
              if (t) {
                for (var o in t) {
                  i.properties[o] = t[o];
                }
              }
              var r = e.allOf;
              r && r.forEach(n)
            }

            var i = this.configurationSchema;
            n(e), d.registerSchema(t.schemaId, i)
          }, e.prototype.updateSchemaForOverrideSettingsConfiguration = function (e) {
            e.id !== p && (this.update(e), d.registerSchema(
                t.editorConfigurationSchemaId,
                this.editorConfigurationSchema), d.registerSchema(
                t.resourceConfigurationSchemaId,
                this.resourceConfigurationSchema))
          }, e.prototype.updateOverridePropertyPatternKey = function () {
            var e = this.configurationSchema.patternProperties[this.overridePropertyPattern];
            e || (e = {
              type: "object",
              description: n.localize(2, null),
              errorMessage: "Unknown Identifier. Use language identifiers",
              $ref: t.editorConfigurationSchemaId
            }), delete this.configurationSchema.patternProperties[this.overridePropertyPattern], this.computeOverridePropertyPattern(), this.configurationSchema.patternProperties[this.overridePropertyPattern] = e, d.registerSchema(
                t.schemaId, this.configurationSchema)
          }, e.prototype.update = function (e) {
            var t = this, n = e.properties;
            if (n) {
              for (var i in n) {
                switch (n[i].overridable
                && (this.editorConfigurationSchema.properties[i] = this.getConfigurationProperties()[i]), n[i].scope) {
                  case c.RESOURCE:
                    this.resourceConfigurationSchema.properties[i] = this.getConfigurationProperties()[i]
                }
              }
            }
            var o = e.allOf;
            o && o.forEach(function (e) {
              return t.update(e)
            })
          }, e.prototype.computeOverridePropertyPattern = function () {
            this.overridePropertyPattern = this.overrideIdentifiers.length
                ? g.replace("${0}", this.overrideIdentifiers.map(function (e) {
                  return s.createRegExp(e, !1).source
                }).join("|")) : f
          }, e
        }(), p = "override", f = "\\[.*\\]$", g = "\\[(${0})\\]$";
        t.OVERRIDE_PROPERTY_PATTERN = new RegExp(f);
        var m = new h;
        o.Registry.add(t.Extensions.Configuration, m), t.validateProperty = l
      }), define(d[168], h([1, 0, 304, 11, 3, 26, 15, 127, 44, 132, 135, 49]),
      function (e, t, n, i, o, r, s, a, u, l, c, d) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var h = d.EDITOR_DEFAULTS, p = d.EDITOR_FONT_DEFAULTS,
            g = d.EDITOR_MODEL_DEFAULTS;
        t.TabFocus = new (function () {
          function e() {
            this._tabFocus = !1, this._onDidChangeTabFocus = new i.Emitter, this.onDidChangeTabFocus = this._onDidChangeTabFocus.event
          }

          return e.prototype.getTabFocusMode = function () {
            return this._tabFocus
          }, e.prototype.setTabFocusMode = function (e) {
            this._tabFocus !== e
            && (this._tabFocus = e, this._onDidChangeTabFocus.fire(
                this._tabFocus))
          }, e
        }());
        var m = function (e) {
          function n(n) {
            var o = e.call(this) || this;
            return o._onDidChange = o._register(
                new i.Emitter), o.onDidChange = o._onDidChange.event, o._rawOptions = r.mixin(
                {}, n || {}), o._rawOptions.scrollbar = r.mixin({},
                o._rawOptions.scrollbar || {}), o._rawOptions.minimap = r.mixin(
                {}, o._rawOptions.minimap || {}), o._rawOptions.find = r.mixin(
                {}, o._rawOptions.find
                || {}), o._validatedOptions = d.EditorOptionsValidator.validate(
                o._rawOptions,
                h), o.editor = null, o._isDominatedByLongLines = !1, o._lineNumbersDigitCount = 1, o._register(
                c.EditorZoom.onDidChangeZoomLevel(function (e) {
                  return o._recomputeOptions()
                })), o._register(t.TabFocus.onDidChangeTabFocus(function (e) {
              return o._recomputeOptions()
            })), o
          }

          return f(n, e), n.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, n.prototype._recomputeOptions = function () {
            var e = this.editor, t = this._computeInternalOptions();
            e && e.equals(t) || (this.editor = t, e && this._onDidChange.fire(
                e.createChangeEvent(t)))
          }, n.prototype.getRawOptions = function () {
            return this._rawOptions
          }, n.prototype._computeInternalOptions = function () {
            var e = this._validatedOptions, n = this._getEnvConfiguration(),
                i = l.BareFontInfo.createFromRawSettings(this._rawOptions,
                    n.zoomLevel), o = {
                  outerWidth: n.outerWidth,
                  outerHeight: n.outerHeight,
                  fontInfo: this.readConfiguration(i),
                  extraEditorClassName: n.extraEditorClassName,
                  isDominatedByLongLines: this._isDominatedByLongLines,
                  lineNumbersDigitCount: this._lineNumbersDigitCount,
                  emptySelectionClipboard: n.emptySelectionClipboard,
                  pixelRatio: n.pixelRatio,
                  tabFocusMode: t.TabFocus.getTabFocusMode(),
                  accessibilitySupport: n.accessibilitySupport
                };
            return d.InternalEditorOptionsFactory.createInternalEditorOptions(o,
                e)
          }, n.prototype.updateOptions = function (e) {
            this._rawOptions = r.mixin(this._rawOptions, e
                || {}), this._validatedOptions = d.EditorOptionsValidator.validate(
                this._rawOptions, h), this._recomputeOptions()
          }, n.prototype.setIsDominatedByLongLines = function (e) {
            this._isDominatedByLongLines = e, this._recomputeOptions()
          }, n.prototype.setMaxLineNumber = function (e) {
            var t = n._digitCount(e);
            this._lineNumbersDigitCount !== t
            && (this._lineNumbersDigitCount = t, this._recomputeOptions())
          }, n._digitCount = function (e) {
            for (var t = 0; e;) {
              e = Math.floor(e / 10), t++;
            }
            return t || 1
          }, n
        }(o.Disposable);
        t.CommonEditorConfiguration = m;
        var v = u.Registry.as(a.Extensions.Configuration), _ = {
          id: "editor",
          order: 5,
          type: "object",
          title: n.localize(0, null),
          overridable: !0,
          scope: a.ConfigurationScope.RESOURCE,
          properties: {
            "editor.fontFamily": {
              type: "string",
              default: p.fontFamily,
              description: n.localize(1, null)
            },
            "editor.fontWeight": {
              type: "string",
              enum: ["normal", "bold", "100", "200", "300", "400", "500", "600",
                "700", "800", "900"],
              default: p.fontWeight,
              description: n.localize(2, null)
            },
            "editor.fontSize": {
              type: "number",
              default: p.fontSize,
              description: n.localize(3, null)
            },
            "editor.lineHeight": {
              type: "number",
              default: p.lineHeight,
              description: n.localize(4, null)
            },
            "editor.letterSpacing": {
              type: "number",
              default: p.letterSpacing,
              description: n.localize(5, null)
            },
            "editor.lineNumbers": {
              type: "string",
              enum: ["off", "on", "relative"],
              default: "on",
              description: n.localize(6, null)
            },
            "editor.rulers": {
              type: "array",
              items: {type: "number"},
              default: h.viewInfo.rulers,
              description: n.localize(7, null)
            },
            "editor.wordSeparators": {
              type: "string",
              default: h.wordSeparators,
              description: n.localize(8, null)
            },
            "editor.tabSize": {
              type: "number",
              default: g.tabSize,
              minimum: 1,
              description: n.localize(9, null),
              errorMessage: n.localize(10, null)
            },
            "editor.insertSpaces": {
              type: "boolean",
              default: g.insertSpaces,
              description: n.localize(11, null),
              errorMessage: n.localize(12, null)
            },
            "editor.detectIndentation": {
              type: "boolean",
              default: g.detectIndentation,
              description: n.localize(13, null)
            },
            "editor.roundedSelection": {
              type: "boolean",
              default: h.viewInfo.roundedSelection,
              description: n.localize(14, null)
            },
            "editor.scrollBeyondLastLine": {
              type: "boolean",
              default: h.viewInfo.scrollBeyondLastLine,
              description: n.localize(15, null)
            },
            "editor.minimap.enabled": {
              type: "boolean",
              default: h.viewInfo.minimap.enabled,
              description: n.localize(16, null)
            },
            "editor.minimap.showSlider": {
              type: "string",
              enum: ["always", "mouseover"],
              default: h.viewInfo.minimap.showSlider,
              description: n.localize(17, null)
            },
            "editor.minimap.renderCharacters": {
              type: "boolean",
              default: h.viewInfo.minimap.renderCharacters,
              description: n.localize(18, null)
            },
            "editor.minimap.maxColumn": {
              type: "number",
              default: h.viewInfo.minimap.maxColumn,
              description: n.localize(19, null)
            },
            "editor.find.seedSearchStringFromSelection": {
              type: "boolean",
              default: h.contribInfo.find.seedSearchStringFromSelection,
              description: n.localize(20, null)
            },
            "editor.find.autoFindInSelection": {
              type: "boolean",
              default: h.contribInfo.find.autoFindInSelection,
              description: n.localize(21, null)
            },
            "editor.wordWrap": {
              type: "string",
              enum: ["off", "on", "wordWrapColumn", "bounded"],
              enumDescriptions: [n.localize(22, null), n.localize(23, null),
                n.localize(24, null), n.localize(25, null)],
              default: h.wordWrap,
              description: n.localize(26, null)
            },
            "editor.wordWrapColumn": {
              type: "integer",
              default: h.wordWrapColumn,
              minimum: 1,
              description: n.localize(27, null)
            },
            "editor.wrappingIndent": {
              type: "string",
              enum: ["none", "same", "indent"],
              default: "same",
              description: n.localize(28, null)
            },
            "editor.mouseWheelScrollSensitivity": {
              type: "number",
              default: h.viewInfo.scrollbar.mouseWheelScrollSensitivity,
              description: n.localize(29, null)
            },
            "editor.multiCursorModifier": {
              type: "string",
              enum: ["ctrlCmd", "alt"],
              enumDescriptions: [n.localize(30, null), n.localize(31, null)],
              default: "alt",
              description: n.localize(32, null)
            },
            "editor.quickSuggestions": {
              anyOf: [{type: "boolean"}, {
                type: "object",
                properties: {
                  strings: {
                    type: "boolean",
                    default: !1,
                    description: n.localize(33, null)
                  },
                  comments: {
                    type: "boolean",
                    default: !1,
                    description: n.localize(34, null)
                  },
                  other: {
                    type: "boolean",
                    default: !0,
                    description: n.localize(35, null)
                  }
                }
              }],
              default: h.contribInfo.quickSuggestions,
              description: n.localize(36, null)
            },
            "editor.quickSuggestionsDelay": {
              type: "integer",
              default: h.contribInfo.quickSuggestionsDelay,
              minimum: 0,
              description: n.localize(37, null)
            },
            "editor.parameterHints": {
              type: "boolean",
              default: h.contribInfo.parameterHints,
              description: n.localize(38, null)
            },
            "editor.autoClosingBrackets": {
              type: "boolean",
              default: h.autoClosingBrackets,
              description: n.localize(39, null)
            },
            "editor.formatOnType": {
              type: "boolean",
              default: h.contribInfo.formatOnType,
              description: n.localize(40, null)
            },
            "editor.formatOnPaste": {
              type: "boolean",
              default: h.contribInfo.formatOnPaste,
              description: n.localize(41, null)
            },
            "editor.autoIndent": {
              type: "boolean",
              default: h.autoIndent,
              description: n.localize(42, null)
            },
            "editor.suggestOnTriggerCharacters": {
              type: "boolean",
              default: h.contribInfo.suggestOnTriggerCharacters,
              description: n.localize(43, null)
            },
            "editor.acceptSuggestionOnEnter": {
              type: "string",
              enum: ["on", "smart", "off"],
              default: h.contribInfo.acceptSuggestionOnEnter,
              description: n.localize(44, null)
            },
            "editor.acceptSuggestionOnCommitCharacter": {
              type: "boolean",
              default: h.contribInfo.acceptSuggestionOnCommitCharacter,
              description: n.localize(45, null)
            },
            "editor.snippetSuggestions": {
              type: "string",
              enum: ["top", "bottom", "inline", "none"],
              enumDescriptions: [n.localize(46, null), n.localize(47, null),
                n.localize(48, null), n.localize(49, null)],
              default: h.contribInfo.snippetSuggestions,
              description: n.localize(50, null)
            },
            "editor.emptySelectionClipboard": {
              type: "boolean",
              default: h.emptySelectionClipboard,
              description: n.localize(51, null)
            },
            "editor.wordBasedSuggestions": {
              type: "boolean",
              default: h.contribInfo.wordBasedSuggestions,
              description: n.localize(52, null)
            },
            "editor.suggestFontSize": {
              type: "integer",
              default: 0,
              minimum: 0,
              description: n.localize(53, null)
            },
            "editor.suggestLineHeight": {
              type: "integer",
              default: 0,
              minimum: 0,
              description: n.localize(54, null)
            },
            "editor.selectionHighlight": {
              type: "boolean",
              default: h.contribInfo.selectionHighlight,
              description: n.localize(55, null)
            },
            "editor.occurrencesHighlight": {
              type: "boolean",
              default: h.contribInfo.occurrencesHighlight,
              description: n.localize(56, null)
            },
            "editor.overviewRulerLanes": {
              type: "integer",
              default: 3,
              description: n.localize(57, null)
            },
            "editor.overviewRulerBorder": {
              type: "boolean",
              default: h.viewInfo.overviewRulerBorder,
              description: n.localize(58, null)
            },
            "editor.cursorBlinking": {
              type: "string",
              enum: ["blink", "smooth", "phase", "expand", "solid"],
              default: d.blinkingStyleToString(h.viewInfo.cursorBlinking),
              description: n.localize(59, null)
            },
            "editor.mouseWheelZoom": {
              type: "boolean",
              default: h.viewInfo.mouseWheelZoom,
              description: n.localize(60, null)
            },
            "editor.cursorStyle": {
              type: "string",
              enum: ["block", "block-outline", "line", "line-thin", "underline",
                "underline-thin"],
              default: d.cursorStyleToString(h.viewInfo.cursorStyle),
              description: n.localize(61, null)
            },
            "editor.fontLigatures": {
              type: "boolean",
              default: h.viewInfo.fontLigatures,
              description: n.localize(62, null)
            },
            "editor.hideCursorInOverviewRuler": {
              type: "boolean",
              default: h.viewInfo.hideCursorInOverviewRuler,
              description: n.localize(63, null)
            },
            "editor.renderWhitespace": {
              type: "string",
              enum: ["none", "boundary", "all"],
              default: h.viewInfo.renderWhitespace,
              description: n.localize(64, null)
            },
            "editor.renderControlCharacters": {
              type: "boolean",
              default: h.viewInfo.renderControlCharacters,
              description: n.localize(65, null)
            },
            "editor.renderIndentGuides": {
              type: "boolean",
              default: h.viewInfo.renderIndentGuides,
              description: n.localize(66, null)
            },
            "editor.renderLineHighlight": {
              type: "string",
              enum: ["none", "gutter", "line", "all"],
              default: h.viewInfo.renderLineHighlight,
              description: n.localize(67, null)
            },
            "editor.codeLens": {
              type: "boolean",
              default: h.contribInfo.codeLens,
              description: n.localize(68, null)
            },
            "editor.folding": {
              type: "boolean",
              default: h.contribInfo.folding,
              description: n.localize(69, null)
            },
            "editor.showFoldingControls": {
              type: "string",
              enum: ["always", "mouseover"],
              default: h.contribInfo.showFoldingControls,
              description: n.localize(70, null)
            },
            "editor.matchBrackets": {
              type: "boolean",
              default: h.contribInfo.matchBrackets,
              description: n.localize(71, null)
            },
            "editor.glyphMargin": {
              type: "boolean",
              default: h.viewInfo.glyphMargin,
              description: n.localize(72, null)
            },
            "editor.useTabStops": {
              type: "boolean",
              default: h.useTabStops,
              description: n.localize(73, null)
            },
            "editor.trimAutoWhitespace": {
              type: "boolean",
              default: g.trimAutoWhitespace,
              description: n.localize(74, null)
            },
            "editor.stablePeek": {
              type: "boolean",
              default: !1,
              description: n.localize(75, null)
            },
            "editor.dragAndDrop": {
              type: "boolean",
              default: h.dragAndDrop,
              description: n.localize(76, null)
            },
            "editor.accessibilitySupport": {
              type: "string",
              enum: ["auto", "on", "off"],
              enumDescriptions: [n.localize(77, null), n.localize(78, null),
                n.localize(79, null)],
              default: h.accessibilitySupport,
              description: n.localize(80, null)
            },
            "editor.links": {
              type: "boolean",
              default: h.contribInfo.links,
              description: n.localize(81, null)
            },
            "diffEditor.renderSideBySide": {
              type: "boolean",
              default: !0,
              description: n.localize(82, null)
            },
            "diffEditor.ignoreTrimWhitespace": {
              type: "boolean",
              default: !0,
              description: n.localize(83, null)
            },
            "diffEditor.renderIndicators": {
              type: "boolean",
              default: !0,
              description: n.localize(84, null)
            }
          }
        };
        s.isLinux && (_.properties["editor.selectionClipboard"] = {
          type: "boolean",
          default: h.contribInfo.selectionClipboard,
          description: n.localize(85, null)
        }), v.registerConfiguration(_)
      }), define(d[436], h([1, 0, 10, 166, 9, 44, 126, 17, 68, 127]),
      function (e, t, n, i, o, r, s, a, u, l) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var c = Object.prototype.hasOwnProperty, d = function () {
          function e(e) {
            void 0 === e && (e = !0);
            var t = this;
            this._nextLanguageId = 1, this._languages = {}, this._mimeTypesMap = {}, this._nameMap = {}, this._lowercaseNameMap = {}, this._languageIds = [], e
            && (this._registerLanguages(
                s.ModesRegistry.getLanguages()), s.ModesRegistry.onDidAddLanguages(
                function (e) {
                  return t._registerLanguages(e)
                }))
          }

          return e.prototype._registerLanguages = function (e) {
            var t = this;
            if (0 !== e.length) {
              for (var n = 0; n < e.length; n++) {
                this._registerLanguage(e[n]);
              }
              this._mimeTypesMap = {}, this._nameMap = {}, this._lowercaseNameMap = {}, Object.keys(
                  this._languages).forEach(function (e) {
                var n = t._languages[e];
                n.name
                && (t._nameMap[n.name] = n.identifier), n.aliases.forEach(
                    function (e) {
                      t._lowercaseNameMap[e.toLowerCase()] = n.identifier
                    }), n.mimetypes.forEach(function (e) {
                  t._mimeTypesMap[e] = n.identifier
                })
              }), r.Registry.as(
                  l.Extensions.Configuration).registerOverrideIdentifiers(
                  s.ModesRegistry.getLanguages().map(function (e) {
                    return e.id
                  }))
            }
          }, e.prototype._registerLanguage = function (t) {
            var n = t.id, i = null;
            if (c.call(this._languages, n)) {
              i = this._languages[n];
            } else {
              var o = this._nextLanguageId++;
              i = {
                identifier: new a.LanguageIdentifier(n, o),
                name: null,
                mimetypes: [],
                aliases: [],
                extensions: [],
                filenames: [],
                configurationFiles: []
              }, this._languageIds[o] = n, this._languages[n] = i
            }
            e._mergeLanguage(i, t)
          }, e._mergeLanguage = function (e, t) {
            var r = t.id, s = null;
            if (void 0 !== t.mimetypes && Array.isArray(
                t.mimetypes)) {
              for (y = 0; y < t.mimetypes.length; y++) {
                s
                || (s = t.mimetypes[y]), e.mimetypes.push(t.mimetypes[y]);
              }
            }
            if (s || (s = "text/x-" + r, e.mimetypes.push(s)), Array.isArray(
                t.extensions)) {
              for (var a = 0, u = t.extensions; a < u.length;
                  a++) {
                var l = u[a];
                i.registerTextMime(
                    {id: r, mime: s, extension: l}), e.extensions.push(l)
              }
            }
            if (Array.isArray(t.filenames)) {
              for (var c = 0, d = t.filenames;
                  c < d.length; c++) {
                var h = d[c];
                i.registerTextMime(
                    {id: r, mime: s, filename: h}), e.filenames.push(h)
              }
            }
            if (Array.isArray(t.filenamePatterns)) {
              for (var p = 0,
                  f = t.filenamePatterns; p < f.length; p++) {
                var g = f[p];
                i.registerTextMime({id: r, mime: s, filepattern: g})
              }
            }
            if ("string" == typeof t.firstLine && t.firstLine.length > 0) {
              var m = t.firstLine;
              "^" !== m.charAt(0) && (m = "^" + m);
              try {
                var v = new RegExp(m);
                o.regExpLeadsToEndlessLoop(v) || i.registerTextMime(
                    {id: r, mime: s, firstline: v})
              } catch (e) {
                n.onUnexpectedError(e)
              }
            }
            e.aliases.push(r);
            var _ = null;
            if (void 0 !== t.aliases && Array.isArray(t.aliases) && (_ = 0
            === t.aliases.length ? [null] : t.aliases), null
            !== _) {
              for (var y = 0; y < _.length; y++) {
                _[y] && 0 !== _[y].length
                && e.aliases.push(_[y]);
              }
            }
            var C = null !== _ && _.length > 0;
            if (C && null === _[0]) {
              ;
            } else {
              var b = (C ? _[0] : null) || r;
              !C && e.name || (e.name = b)
            }
            "string" == typeof t.configuration && e.configurationFiles.push(
                t.configuration)
          }, e.prototype.isRegisteredMode = function (e) {
            return !!c.call(this._mimeTypesMap, e) || c.call(this._languages, e)
          }, e.prototype.getRegisteredModes = function () {
            return Object.keys(this._languages)
          }, e.prototype.getRegisteredLanguageNames = function () {
            return Object.keys(this._nameMap)
          }, e.prototype.getLanguageName = function (e) {
            return c.call(this._languages, e) ? this._languages[e].name : null
          }, e.prototype.getModeIdForLanguageNameLowercase = function (e) {
            return c.call(this._lowercaseNameMap, e)
                ? this._lowercaseNameMap[e].language : null
          }, e.prototype.getConfigurationFiles = function (e) {
            return c.call(this._languages, e)
                ? this._languages[e].configurationFiles || [] : []
          }, e.prototype.getMimeForMode = function (e) {
            return c.call(this._languages, e) ? this._languages[e].mimetypes[0]
                || null : null
          }, e.prototype.extractModeIds = function (e) {
            var t = this;
            return e ? e.split(",").map(function (e) {
              return e.trim()
            }).map(function (e) {
              return c.call(t._mimeTypesMap, e) ? t._mimeTypesMap[e].language
                  : e
            }).filter(function (e) {
              return c.call(t._languages, e)
            }) : []
          }, e.prototype.getLanguageIdentifier = function (e) {
            if (e === u.NULL_MODE_ID || 0
                === e) {
              return u.NULL_LANGUAGE_IDENTIFIER;
            }
            var t;
            if ("string"
                == typeof e) {
              t = e;
            } else if (!(t = this._languageIds[e])) {
              return null;
            }
            return c.call(this._languages, t) ? this._languages[t].identifier
                : null
          }, e.prototype.getModeIdsFromLanguageName = function (e) {
            return e && c.call(this._nameMap, e) ? [this._nameMap[e].language]
                : []
          }, e.prototype.getModeIdsFromFilenameOrFirstLine = function (e, t) {
            if (!e && !t) {
              return [];
            }
            var n = i.guessMimeTypes(e, t);
            return this.extractModeIds(n.join(","))
          }, e.prototype.getExtensions = function (e) {
            if (!c.call(this._nameMap, e)) {
              return [];
            }
            var t = this._nameMap[e];
            return this._languages[t.language].extensions
          }, e.prototype.getFilenames = function (e) {
            if (!c.call(this._nameMap, e)) {
              return [];
            }
            var t = this._nameMap[e];
            return this._languages[t.language].filenames
          }, e
        }();
        t.LanguagesRegistry = d
      }), define(d[437], h([1, 0, 10, 11, 7, 511, 436]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function () {
          function e() {
            this._onDidCreateMode = new i.Emitter, this.onDidCreateMode = this._onDidCreateMode.event, this._instantiatedModes = {}, this._registry = new s.LanguagesRegistry
          }

          return e.prototype._onReady = function () {
            return o.TPromise.as(!0)
          }, e.prototype.isRegisteredMode = function (e) {
            return this._registry.isRegisteredMode(e)
          }, e.prototype.getRegisteredModes = function () {
            return this._registry.getRegisteredModes()
          }, e.prototype.getRegisteredLanguageNames = function () {
            return this._registry.getRegisteredLanguageNames()
          }, e.prototype.getExtensions = function (e) {
            return this._registry.getExtensions(e)
          }, e.prototype.getFilenames = function (e) {
            return this._registry.getFilenames(e)
          }, e.prototype.getMimeForMode = function (e) {
            return this._registry.getMimeForMode(e)
          }, e.prototype.getLanguageName = function (e) {
            return this._registry.getLanguageName(e)
          }, e.prototype.getModeIdForLanguageName = function (e) {
            return this._registry.getModeIdForLanguageNameLowercase(e)
          }, e.prototype.getModeIdByFilenameOrFirstLine = function (e, t) {
            var n = this._registry.getModeIdsFromFilenameOrFirstLine(e, t);
            return n.length > 0 ? n[0] : null
          }, e.prototype.getModeId = function (e) {
            var t = this._registry.extractModeIds(e);
            return t.length > 0 ? t[0] : null
          }, e.prototype.getLanguageIdentifier = function (e) {
            return this._registry.getLanguageIdentifier(e)
          }, e.prototype.getConfigurationFiles = function (e) {
            return this._registry.getConfigurationFiles(e)
          }, e.prototype.lookup = function (e) {
            for (var t = [], n = this._registry.extractModeIds(e), i = 0;
                i < n.length; i++) {
              var o = n[i];
              t.push({
                modeId: o,
                isInstantiated: this._instantiatedModes.hasOwnProperty(o)
              })
            }
            return t
          }, e.prototype.getMode = function (e) {
            for (var t = this._registry.extractModeIds(e), i = !1, o = 0;
                o < t.length; o++) {
              if (this._instantiatedModes.hasOwnProperty(
                  t[o])) {
                return this._instantiatedModes[t[o]];
              }
              i = i || "plaintext" === t[o]
            }
            if (i) {
              var r = null;
              return this.getOrCreateMode(e).then(function (e) {
                r = e
              }).done(null, n.onUnexpectedError), r
            }
            return null
          }, e.prototype.getOrCreateMode = function (e) {
            var t = this;
            return this._onReady().then(function () {
              var n = t.getModeId(e);
              return t._getOrCreateMode(n || "plaintext")
            })
          }, e.prototype.getOrCreateModeByLanguageName = function (e) {
            var t = this;
            return this._onReady().then(function () {
              var n = t._getModeIdByLanguageName(e);
              return t._getOrCreateMode(n || "plaintext")
            })
          }, e.prototype._getModeIdByLanguageName = function (e) {
            var t = this._registry.getModeIdsFromLanguageName(e);
            return t.length > 0 ? t[0] : null
          }, e.prototype.getOrCreateModeByFilenameOrFirstLine = function (e,
              t) {
            var n = this;
            return this._onReady().then(function () {
              var i = n.getModeIdByFilenameOrFirstLine(e, t);
              return n._getOrCreateMode(i || "plaintext")
            })
          }, e.prototype._getOrCreateMode = function (e) {
            if (!this._instantiatedModes.hasOwnProperty(e)) {
              var t = this.getLanguageIdentifier(e);
              this._instantiatedModes[e] = new r.FrankensteinMode(
                  t), this._onDidCreateMode.fire(this._instantiatedModes[e])
            }
            return this._instantiatedModes[e]
          }, e
        }();
        t.ModeServiceImpl = a
      }), define(d[438], h([1, 0, 44, 442, 127, 62]),
      function (e, t, n, i, o, r) {
        "use strict";

        function s() {
          var e = Object.create(null), t = n.Registry.as(
              o.Extensions.Configuration).getConfigurationProperties();
          for (var i in t) {
            u(e, i, t[i].default, function (e) {
              return console.error("Conflict in default settings: " + e)
            });
          }
          return e
        }

        function a(e, t) {
          var n = Object.create(null);
          for (var i in e) {
            u(n, i, e[i], t);
          }
          return n
        }

        function u(e, t, n, i) {
          for (var o = t.split("."), r = o.pop(), s = e, a = 0; a < o.length;
              a++) {
            var u = o[a], l = s[u];
            switch (typeof l) {
              case"undefined":
                l = s[u] = Object.create(null);
                break;
              case"object":
                break;
              default:
                return void i(
                    "Ignoring " + t + " as " + o.slice(0, a + 1).join(".")
                    + " is " + JSON.stringify(l))
            }
            s = l
          }
          "object" == typeof s ? s[r] = n : i(
              "Ignoring " + t + " as " + o.join(".") + " is " + JSON.stringify(
                  s))
        }

        function l() {
          var e = n.Registry.as(
              o.Extensions.Configuration).getConfigurationProperties();
          return Object.keys(e)
        }

        function c(e) {
          return e.substring(1, e.length - 1)
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.getDefaultValues = s, t.toValuesTree = a, t.getConfigurationKeys = l;
        var d = function (e) {
          function t() {
            var t = e.call(this, s()) || this;
            return t._keys = l(), t._overrides = Object.keys(
                t._contents).filter(function (e) {
              return o.OVERRIDE_PROPERTY_PATTERN.test(e)
            }).map(function (e) {
              return {
                identifiers: [c(e).trim()],
                contents: a(t._contents[e], function (e) {
                  return console.error(
                      "Conflict in default settings file: " + e)
                })
              }
            }), t
          }

          return f(t, e), Object.defineProperty(t.prototype, "keys", {
            get: function () {
              return this._keys
            }, enumerable: !0, configurable: !0
          }), t
        }(r.ConfigurationModel);
        t.DefaultConfigurationModel = d;
        var h = function (e) {
          function t(t, n) {
            void 0 === t && (t = ""), void 0 === n && (n = "");
            var i = e.call(this) || this;
            return i.name = n, i._parseErrors = [], t && i.update(t), i
          }

          return f(t, e), Object.defineProperty(t.prototype, "errors", {
            get: function () {
              return this._parseErrors
            }, enumerable: !0, configurable: !0
          }), t.prototype.update = function (e) {
            function t(e) {
              Array.isArray(h) ? h.push(e) : d
                  && (h[d] = e), o.OVERRIDE_PROPERTY_PATTERN.test(d) && r(d, e)
            }

            function r(e, t) {
              l.push({identifiers: [c(e).trim()], raw: t, contents: null})
            }

            var s = this, u = {}, l = [], d = null, h = [], p = [], f = [],
                g = {
                  onObjectBegin: function () {
                    var e = {};
                    t(e), p.push(h), h = e, d = null
                  }, onObjectProperty: function (e) {
                    d = e
                  }, onObjectEnd: function () {
                    h = p.pop()
                  }, onArrayBegin: function () {
                    var e = [];
                    t(e), p.push(h), h = e, d = null
                  }, onArrayEnd: function () {
                    h = p.pop()
                  }, onLiteralValue: t, onError: function (e) {
                    f.push({error: e})
                  }
                };
            if (e) {
              try {
                i.visit(e, g), u = h[0] || {}
              } catch (e) {
                console.error(
                    "Error while parsing settings file " + this.name + ": "
                    + e), this._parseErrors = [e]
              }
            }
            this.processRaw(u);
            var m = n.Registry.as(
                o.Extensions.Configuration).getConfigurationProperties();
            this._overrides = l.map(function (e) {
              var t = {};
              for (var n in e.raw) {
                m[n] && m[n].overridable
                && (t[n] = e.raw[n]);
              }
              return {
                identifiers: e.identifiers, contents: a(t, function (e) {
                  return console.error(
                      "Conflict in settings file " + s.name + ": " + e)
                })
              }
            })
          }, t.prototype.processRaw = function (e) {
            var t = this;
            this._contents = a(e, function (e) {
              return console.error(
                  "Conflict in settings file " + t.name + ": " + e)
            }), this._keys = Object.keys(e)
          }, t
        }(r.ConfigurationModel);
        t.CustomConfigurationModel = h, t.overrideIdentifierFromKey = c, t.keyFromOverrideIdentifier = function (e) {
          return "[" + e + "]"
        }
      }), define(d[105], h([1, 0, 40, 15, 31, 44]),
      function (e, t, n, i, o, r) {
        "use strict";

        function s(e, t) {
          return e.weight1 !== t.weight1 ? e.weight1 - t.weight1 : e.command
          < t.command ? -1 : e.command > t.command ? 1 : e.weight2 - t.weight2
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function () {
          function e() {
            this.WEIGHT = {
              editorCore: function (e) {
                return void 0 === e && (e = 0), 0 + e
              }, editorContrib: function (e) {
                return void 0 === e && (e = 0), 100 + e
              }, workbenchContrib: function (e) {
                return void 0 === e && (e = 0), 200 + e
              }, builtinExtension: function (e) {
                return void 0 === e && (e = 0), 300 + e
              }, externalExtension: function (e) {
                return void 0 === e && (e = 0), 400 + e
              }
            }, this._keybindings = []
          }

          return e.bindToCurrentPlatform = function (e) {
            if (1 === i.OS) {
              if (e && e.win) {
                return e.win
              }
            } else if (2 === i.OS) {
              if (e && e.mac) {
                return e.mac
              }
            } else if (e && e.linux) {
              return e.linux;
            }
            return e
          }, e.bindToCurrentPlatform2 = function (e) {
            if (1 === i.OS) {
              if (e && e.win) {
                return e.win
              }
            } else if (2 === i.OS) {
              if (e && e.mac) {
                return e.mac
              }
            } else if (e && e.linux) {
              return e.linux;
            }
            return e
          }, e.prototype.registerKeybindingRule = function (t) {
            var o = this, r = e.bindToCurrentPlatform(t);
            r && r.primary && this.registerDefaultKeybinding(
                n.createKeybinding(r.primary, i.OS), t.id, t.weight, 0,
                t.when), r && Array.isArray(r.secondary) && r.secondary.forEach(
                function (e, r) {
                  return o.registerDefaultKeybinding(
                      n.createKeybinding(e, i.OS), t.id, t.weight, -r - 1,
                      t.when)
                })
          }, e.prototype.registerKeybindingRule2 = function (t) {
            var n = e.bindToCurrentPlatform2(t);
            n && n.primary && this.registerDefaultKeybinding(n.primary, t.id,
                t.weight, 0, t.when)
          }, e.prototype.registerCommandAndKeybindingRule = function (e) {
            this.registerKeybindingRule(e), o.CommandsRegistry.registerCommand(
                e.id, e)
          }, e._mightProduceChar = function (e) {
            return e >= 21 && e <= 30 || (e >= 31 && e <= 56 || (80 === e || 81
                === e || 82 === e || 83 === e || 84 === e || 85 === e || 86
                === e || 110 === e || 111 === e || 87 === e || 88 === e || 89
                === e || 90 === e || 91 === e || 92 === e))
          }, e.prototype._assertNoCtrlAlt = function (t, n) {
            t.ctrlKey && t.altKey && !t.metaKey && e._mightProduceChar(
                t.keyCode) && console.warn(
                "Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ",
                t, " for ", n)
          }, e.prototype.registerDefaultKeybinding = function (e, t, n, o, r) {
            1 === i.OS && (2 === e.type ? this._assertNoCtrlAlt(e.firstPart, t)
                : this._assertNoCtrlAlt(e, t)), this._keybindings.push({
              keybinding: e,
              command: t,
              commandArgs: null,
              when: r,
              weight1: n,
              weight2: o
            })
          }, e.prototype.getDefaultKeybindings = function () {
            var e = this._keybindings.slice(0);
            return e.sort(s), e
          }, e
        }();
        t.KeybindingsRegistry = new a, t.Extensions = {EditorModes: "platform.keybindingsRegistry"}, r.Registry.add(
            t.Extensions.EditorModes, t.KeybindingsRegistry)
      }), define(d[129],
      h([1, 0, 70, 36, 24, 7, 62, 31, 414, 419, 159, 46, 20, 11, 438, 3, 4, 65,
        105, 407, 40, 418, 15]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, v, _, y, C, b,
          w, S) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var E = function () {
          function e(e) {
            this._widget = e
          }

          return e.prototype.getId = function () {
            return "editor"
          }, e.prototype.getControl = function () {
            return this._widget
          }, e.prototype.getSelection = function () {
            return this._widget.getSelection()
          }, e.prototype.focus = function () {
            this._widget.focus()
          }, e.prototype.isVisible = function () {
            return !0
          }, e.prototype.withTypedEditor = function (e, t) {
            return h.isCommonCodeEditor(this._widget) ? e(this._widget) : t(
                this._widget)
          }, e
        }();
        t.SimpleEditor = E;
        var L = function () {
          function e(e) {
            this.model = e, this._onDispose = new p.Emitter
          }

          return Object.defineProperty(e.prototype, "onDispose", {
            get: function () {
              return this._onDispose.event
            }, enumerable: !0, configurable: !0
          }), e.prototype.load = function () {
            return r.TPromise.as(this)
          }, Object.defineProperty(e.prototype, "textEditorModel", {
            get: function () {
              return this.model
            }, enumerable: !0, configurable: !0
          }), e.prototype.dispose = function () {
            this._onDispose.fire()
          }, e
        }();
        t.SimpleModel = L;
        var x = function () {
          function e() {
            this.openEditorDelegate = null
          }

          return e.prototype.setEditor = function (e) {
            this.editor = new E(e)
          }, e.prototype.setOpenEditorDelegate = function (e) {
            this.openEditorDelegate = e
          }, e.prototype.openEditor = function (e, t) {
            var n = this;
            return r.TPromise.as(this.editor.withTypedEditor(function (t) {
              return n.doOpenEditor(t, e)
            }, function (t) {
              return n.doOpenEditor(t.getOriginalEditor(), e) || n.doOpenEditor(
                  t.getModifiedEditor(), e)
            }))
          }, e.prototype.doOpenEditor = function (e, t) {
            if (!this.findModel(e, t)) {
              if (t.resource) {
                if (this.openEditorDelegate) {
                  return this.openEditorDelegate(
                      t.resource.toString()), null;
                }
                var i = t.resource.scheme;
                if (i === n.Schemas.http || i
                    === n.Schemas.https) {
                  return v.windowOpenNoOpener(
                      t.resource.toString()), this.editor
                }
              }
              return null
            }
            var o = t.options.selection;
            if (o) {
              if ("number" == typeof o.endLineNumber && "number"
                  == typeof o.endColumn) {
                e.setSelection(o), e.revealRangeInCenter(
                    o);
              } else {
                var r = {lineNumber: o.startLineNumber, column: o.startColumn};
                e.setPosition(r), e.revealPositionInCenter(r)
              }
            }
            return this.editor
          }, e.prototype.findModel = function (e, t) {
            var n = e.getModel();
            return n.uri.toString() !== t.resource.toString() ? null : n
          }, e
        }();
        t.SimpleEditorService = x;
        var N = function () {
          function e() {
          }

          return e.prototype.setEditor = function (e) {
            this.editor = new E(e)
          }, e.prototype.createModelReference = function (e) {
            var t, n = this;
            return (t = this.editor.withTypedEditor(function (t) {
              return n.findModel(t, e)
            }, function (t) {
              return n.findModel(t.getOriginalEditor(), e) || n.findModel(
                  t.getModifiedEditor(), e)
            })) ? r.TPromise.as(new m.ImmortalReference(new L(t)))
                : r.TPromise.as(new m.ImmortalReference(null))
          }, e.prototype.registerTextModelContentProvider = function (e, t) {
            return {
              dispose: function () {
              }
            }
          }, e.prototype.findModel = function (e, t) {
            var n = e.getModel();
            return n.uri.toString() !== t.toString() ? null : n
          }, e
        }();
        t.SimpleEditorModelResolverService = N;
        var M = function () {
          function e() {
          }

          return e.prototype.show = function () {
            return e.NULL_PROGRESS_RUNNER
          }, e.prototype.showWhile = function (e, t) {
            return null
          }, e.NULL_PROGRESS_RUNNER = {
            done: function () {
            }, total: function () {
            }, worked: function () {
            }
          }, e
        }();
        t.SimpleProgressService = M;
        var T = function () {
          function e() {
          }

          return e.prototype.show = function (t, n) {
            switch (t) {
              case i.default.Error:
                console.error(n);
                break;
              case i.default.Warning:
                console.warn(n);
                break;
              default:
                console.log(n)
            }
            return e.Empty
          }, e.prototype.hideAll = function () {
          }, e.prototype.confirm = function (e) {
            var t = e.message;
            return e.detail && (t = t + "\n\n" + e.detail), window.confirm(t)
          }, e.Empty = function () {
          }, e
        }();
        t.SimpleMessageService = T;
        var k = function () {
          function e(e) {
            this._onWillExecuteCommand = new p.Emitter, this.onWillExecuteCommand = this._onWillExecuteCommand.event, this._instantiationService = e, this._dynamicCommands = Object.create(
                null)
          }

          return e.prototype.addCommand = function (e, t) {
            var n = this;
            return this._dynamicCommands[e] = t, {
              dispose: function () {
                delete n._dynamicCommands[e]
              }
            }
          }, e.prototype.executeCommand = function (e) {
            for (var t = [], n = 1; n < arguments.length; n++) {
              t[n
              - 1] = arguments[n];
            }
            var i = a.CommandsRegistry.getCommand(e)
                || this._dynamicCommands[e];
            if (!i) {
              return r.TPromise.wrapError(
                  new Error("command '" + e + "' not found"));
            }
            try {
              this._onWillExecuteCommand.fire({commandId: e});
              var o = this._instantiationService.invokeFunction.apply(
                  this._instantiationService, [i.handler].concat(t));
              return r.TPromise.as(o)
            } catch (e) {
              return r.TPromise.wrapError(e)
            }
          }, e
        }();
        t.StandaloneCommandService = k;
        var I = function (e) {
          function t(t, n, i, o) {
            var r = e.call(this, t, n, i) || this;
            return r._cachedResolver = null, r._dynamicKeybindings = [], r.toDispose.push(
                v.addDisposableListener(o, v.EventType.KEY_DOWN, function (e) {
                  var t = new _.StandardKeyboardEvent(e);
                  r._dispatch(t, t.target) && t.preventDefault()
                })), r
          }

          return f(t, e), t.prototype.addDynamicKeybinding = function (e, t, n,
              i) {
            var o = this, r = [];
            this._dynamicKeybindings.push({
              keybinding: b.createKeybinding(t, S.OS),
              command: e,
              when: i,
              weight1: 1e3,
              weight2: 0
            }), r.push({
              dispose: function () {
                for (var t = 0; t < o._dynamicKeybindings.length;
                    t++) {
                  if (o._dynamicKeybindings[t].command
                      === e) {
                    return o._dynamicKeybindings.splice(t,
                        1), void o.updateResolver(
                        {source: d.KeybindingSource.Default})
                  }
                }
              }
            });
            var s = this._commandService;
            if (!(s instanceof k)) {
              throw new Error("Unknown command service!");
            }
            return r.push(s.addCommand(e, {handler: n})), this.updateResolver(
                {source: d.KeybindingSource.Default}), m.combinedDisposable(r)
          }, t.prototype.updateResolver = function (e) {
            this._cachedResolver = null, this._onDidUpdateKeybindings.fire(e)
          }, t.prototype._getResolver = function () {
            if (!this._cachedResolver) {
              var e = this._toNormalizedKeybindingItems(
                      y.KeybindingsRegistry.getDefaultKeybindings(), !0),
                  t = this._toNormalizedKeybindingItems(
                      this._dynamicKeybindings, !1);
              this._cachedResolver = new c.KeybindingResolver(e, t)
            }
            return this._cachedResolver
          }, t.prototype._toNormalizedKeybindingItems = function (e, t) {
            for (var n = [], i = 0, o = 0, r = e.length; o < r; o++) {
              var s = e[o], a = s.when ? s.when.normalize() : null,
                  u = s.keybinding;
              if (u) {
                for (var l = this.resolveKeybinding(u), c = 0;
                    c < l.length; c++) {
                  n[i++] = new w.ResolvedKeybindingItem(l[c],
                      s.command, s.commandArgs, a,
                      t);
                }
              } else {
                n[i++] = new w.ResolvedKeybindingItem(null,
                    s.command, s.commandArgs, a, t)
              }
            }
            return n
          }, t.prototype.resolveKeybinding = function (e) {
            return [new l.USLayoutResolvedKeybinding(e, S.OS)]
          }, t.prototype.resolveKeyboardEvent = function (e) {
            var t = new b.SimpleKeybinding(e.ctrlKey, e.shiftKey, e.altKey,
                e.metaKey, e.keyCode);
            return new l.USLayoutResolvedKeybinding(t, S.OS)
          }, t.prototype.resolveUserBinding = function (e) {
            return []
          }, t
        }(u.AbstractKeybindingService);
        t.StandaloneKeybindingService = I;
        var D = function () {
          function e() {
            this._onDidUpdateConfiguration = new p.Emitter, this.onDidUpdateConfiguration = this._onDidUpdateConfiguration.event, this._configuration = new s.Configuration(
                new g.DefaultConfigurationModel, new s.ConfigurationModel)
          }

          return e.prototype.configuration = function () {
            return this._configuration
          }, e.prototype.reloadConfiguration = function (e) {
            return r.TPromise.as(this.getConfiguration(e))
          }, e.prototype.getConfiguration = function (e, t) {
            return this.configuration().getValue(e, t)
          }, e.prototype.lookup = function (e, t) {
            return this.configuration().lookup(e, t)
          }, e.prototype.keys = function () {
            return this.configuration().keys()
          }, e.prototype.values = function () {
            return this._configuration.values()
          }, e.prototype.getConfigurationData = function () {
            return this.configuration().toData()
          }, e
        }();
        t.SimpleConfigurationService = D;
        var O = function () {
          function e(e) {
            var t = this;
            this.configurationService = e, this._onDidUpdateConfigurationEmitter = new p.Emitter, this.configurationService.onDidUpdateConfiguration(
                function () {
                  t._onDidUpdateConfigurationEmitter.fire()
                })
          }

          return e.prototype.getConfiguration = function () {
            return this.configurationService.getConfiguration()
          }, e
        }();
        t.SimpleResourceConfigurationService = O;
        var R = function () {
          function e(e) {
            this._commandService = e
          }

          return e.prototype.createMenu = function (e, t) {
            return new C.Menu(e, r.TPromise.as(!0), this._commandService, t)
          }, e
        }();
        t.SimpleMenuService = R;
        var P = function () {
          function e() {
            this.isOptedIn = !1
          }

          return e.prototype.publicLog = function (e, t) {
            return r.TPromise.as(null)
          }, e.prototype.getTelemetryInfo = function () {
            return null
          }, e
        }();
        t.StandaloneTelemetryService = P;
        var A = function () {
          function e() {
            this._onDidChangeWorkspaceName = new p.Emitter, this.onDidChangeWorkspaceName = this._onDidChangeWorkspaceName.event, this._onDidChangeWorkspaceRoots = new p.Emitter, this.onDidChangeWorkspaceRoots = this._onDidChangeWorkspaceRoots.event, this.legacyWorkspace = {
              resource: o.default.from(
                  {scheme: e.SCHEME, authority: "model", path: "/"})
            }, this.workspace = {
              id: "4064f6ec-cb38-4ad0-af64-ee6467e63c82",
              roots: [this.legacyWorkspace.resource],
              name: this.legacyWorkspace.resource.fsPath
            }
          }

          return e.prototype.getLegacyWorkspace = function () {
            return this.legacyWorkspace
          }, e.prototype.getWorkspace = function () {
            return this.workspace
          }, e.prototype.saveWorkspace = function () {
            return r.TPromise.as(null)
          }, e.prototype.getRoot = function (t) {
            return t && t.scheme === e.SCHEME ? this.workspace.roots[0] : void 0
          }, e.prototype.hasWorkspace = function () {
            return !0
          }, e.prototype.hasFolderWorkspace = function () {
            return !0
          }, e.prototype.hasMultiFolderWorkspace = function () {
            return !1
          }, e.prototype.isInsideWorkspace = function (t) {
            return t && t.scheme === e.SCHEME
          }, e.prototype.toResource = function (e) {
            return o.default.file(e)
          }, e
        }();
        t.SimpleWorkspaceContextService = A
      }), define(d[76], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.ID = "storageService", t.IStorageService = n.createDecorator(
        t.ID);
    !function (e) {
      e[e.GLOBAL = 0] = "GLOBAL", e[e.WORKSPACE = 1] = "WORKSPACE"
    }(t.StorageScope || (t.StorageScope = {})), t.NullStorageService = {
      _serviceBrand: void 0,
      store: function () {
      },
      swap: function () {
      },
      remove: function () {
      },
      get: function (e, t, n) {
        return n
      },
      getInteger: function (e, t, n) {
        return n
      },
      getBoolean: function (e, t, n) {
        return n
      }
    }
  }), define(d[66], h([1, 0, 11, 3, 15, 28, 168, 132, 412, 410, 76]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function () {
          function e() {
            this._keys = Object.create(null), this._values = Object.create(null)
          }

          return e.prototype.has = function (e) {
            var t = e.getId();
            return !!this._values[t]
          }, e.prototype.get = function (e) {
            var t = e.getId();
            return this._values[t]
          }, e.prototype.put = function (e, t) {
            var n = e.getId();
            this._keys[n] = e, this._values[n] = t
          }, e.prototype.remove = function (e) {
            var t = e.getId();
            delete this._keys[t], delete this._values[t]
          }, e.prototype.getKeys = function () {
            var e = this;
            return Object.keys(this._keys).map(function (t) {
              return e._keys[t]
            })
          }, e.prototype.getValues = function () {
            var e = this;
            return Object.keys(this._keys).map(function (t) {
              return e._values[t]
            })
          }, e
        }();
        t.readFontInfo = function (e) {
          return h.INSTANCE.readConfiguration(e)
        }, t.restoreFontInfo = function (e) {
          var t = e.get("editorFontInfo", c.StorageScope.GLOBAL);
          if ("string" == typeof t) {
            var n = null;
            try {
              n = JSON.parse(t)
            } catch (e) {
              return
            }
            Array.isArray(n) && h.INSTANCE.restoreFontInfo(n)
          }
        }, t.saveFontInfo = function (e) {
          var t = h.INSTANCE.saveFontInfo();
          e.store("editorFontInfo", JSON.stringify(t), c.StorageScope.GLOBAL)
        };
        var h = function (e) {
          function t() {
            var t = e.call(this) || this;
            return t._onDidChange = t._register(
                new n.Emitter), t.onDidChange = t._onDidChange.event, t._cache = new d, t._evictUntrustedReadingsTimeout = -1, t
          }

          return f(t, e), t.prototype.dispose = function () {
            -1 !== this._evictUntrustedReadingsTimeout && (clearTimeout(
                this._evictUntrustedReadingsTimeout), this._evictUntrustedReadingsTimeout = -1), e.prototype.dispose.call(
                this)
          }, t.prototype._writeToCache = function (e, t) {
            var n = this;
            this._cache.put(e, t), t.isTrusted || -1
            !== this._evictUntrustedReadingsTimeout
            || (this._evictUntrustedReadingsTimeout = setTimeout(function () {
              n._evictUntrustedReadingsTimeout = -1, n._evictUntrustedReadings()
            }, 5e3))
          }, t.prototype._evictUntrustedReadings = function () {
            for (var e = this._cache.getValues(), t = !1, n = 0, i = e.length;
                n < i; n++) {
              var o = e[n];
              o.isTrusted || (t = !0, this._cache.remove(o))
            }
            t && this._onDidChange.fire()
          }, t.prototype.saveFontInfo = function () {
            return this._cache.getValues().filter(function (e) {
              return e.isTrusted
            })
          }, t.prototype.restoreFontInfo = function (e) {
            for (var t = 0, n = e.length; t < n; t++) {
              var i = new a.FontInfo(e[t], !1);
              this._writeToCache(i, i)
            }
          }, t.prototype.readConfiguration = function (e) {
            if (!this._cache.has(e)) {
              var n = t._actualReadConfiguration(e);
              (n.typicalHalfwidthCharacterWidth <= 2
                  || n.typicalFullwidthCharacterWidth <= 2 || n.spaceWidth <= 2
                  || n.maxDigitWidth <= 2) && (n = new a.FontInfo({
                zoomLevel: r.getZoomLevel(),
                fontFamily: n.fontFamily,
                fontWeight: n.fontWeight,
                fontSize: n.fontSize,
                lineHeight: n.lineHeight,
                letterSpacing: n.letterSpacing,
                isMonospace: n.isMonospace,
                typicalHalfwidthCharacterWidth: Math.max(
                    n.typicalHalfwidthCharacterWidth, 5),
                typicalFullwidthCharacterWidth: Math.max(
                    n.typicalFullwidthCharacterWidth, 5),
                spaceWidth: Math.max(n.spaceWidth, 5),
                maxDigitWidth: Math.max(n.maxDigitWidth, 5)
              }, !1)), this._writeToCache(e, n)
            }
            return this._cache.get(e)
          }, t.createRequest = function (e, t, n, i) {
            var o = new l.CharWidthRequest(e, t);
            return n.push(o), i && i.push(o), o
          }, t._actualReadConfiguration = function (e) {
            var t = [], n = [], i = this.createRequest("n", 0, t, n),
                o = this.createRequest("ｍ", 0, t, null),
                s = this.createRequest(" ", 0, t, n),
                u = this.createRequest("0", 0, t, n),
                c = this.createRequest("1", 0, t, n),
                d = this.createRequest("2", 0, t, n),
                h = this.createRequest("3", 0, t, n),
                p = this.createRequest("4", 0, t, n),
                f = this.createRequest("5", 0, t, n),
                g = this.createRequest("6", 0, t, n),
                m = this.createRequest("7", 0, t, n),
                v = this.createRequest("8", 0, t, n),
                _ = this.createRequest("9", 0, t, n);
            this.createRequest("→", 0, t, n), this.createRequest("·", 0, t,
                n), this.createRequest("|", 0, t, n), this.createRequest("/", 0,
                t, n), this.createRequest("-", 0, t, n), this.createRequest("_",
                0, t, n), this.createRequest("i", 0, t, n), this.createRequest(
                "l", 0, t, n), this.createRequest("m", 0, t,
                n), this.createRequest("|", 1, t, n), this.createRequest("_", 1,
                t, n), this.createRequest("i", 1, t, n), this.createRequest("l",
                1, t, n), this.createRequest("m", 1, t, n), this.createRequest(
                "n", 1, t, n), this.createRequest("|", 2, t,
                n), this.createRequest("_", 2, t, n), this.createRequest("i", 2,
                t, n), this.createRequest("l", 2, t, n), this.createRequest("m",
                2, t, n), this.createRequest("n", 2, t, n), l.readCharWidths(e,
                t);
            for (var y = Math.max(u.width, c.width, d.width, h.width, p.width,
                    f.width, g.width, m.width, v.width, _.width), C = !0,
                b = n[0].width, w = 1, S = n.length; w < S; w++) {
              var E = b - n[w].width;
              if (E < -.001 || E > .001) {
                C = !1;
                break
              }
            }
            var L = r.getTimeSinceLastZoomLevelChanged() > 2e3;
            return new a.FontInfo({
              zoomLevel: r.getZoomLevel(),
              fontFamily: e.fontFamily,
              fontWeight: e.fontWeight,
              fontSize: e.fontSize,
              lineHeight: e.lineHeight,
              letterSpacing: e.letterSpacing,
              isMonospace: C,
              typicalHalfwidthCharacterWidth: i.width,
              typicalFullwidthCharacterWidth: o.width,
              spaceWidth: s.width,
              maxDigitWidth: y
            }, L)
          }, t.INSTANCE = new t, t
        }(i.Disposable), p = function (e) {
          function t(t, n) {
            void 0 === n && (n = null);
            var i = e.call(this, t) || this;
            return i._elementSizeObserver = i._register(
                new u.ElementSizeObserver(n, function () {
                  return i._onReferenceDomElementSizeChanged()
                })), i._register(h.INSTANCE.onDidChange(function () {
              return i._onCSSBasedConfigurationChanged()
            })), i._validatedOptions.automaticLayout
            && i._elementSizeObserver.startObserving(), i._register(
                r.onDidChangeZoomLevel(function (e) {
                  return i._recomputeOptions()
                })), i._register(r.onDidChangeAccessibilitySupport(function () {
              return i._recomputeOptions()
            })), i._recomputeOptions(), i
          }

          return f(t, e), t.applyFontInfoSlow = function (e, t) {
            e.style.fontFamily = t.fontFamily, e.style.fontWeight = t.fontWeight, e.style.fontSize = t.fontSize
                + "px", e.style.lineHeight = t.lineHeight
                + "px", e.style.letterSpacing = t.letterSpacing + "px"
          }, t.applyFontInfo = function (e, t) {
            e.setFontFamily(t.fontFamily), e.setFontWeight(
                t.fontWeight), e.setFontSize(t.fontSize), e.setLineHeight(
                t.lineHeight), e.setLetterSpacing(t.letterSpacing)
          }, t.prototype._onReferenceDomElementSizeChanged = function () {
            this._recomputeOptions()
          }, t.prototype._onCSSBasedConfigurationChanged = function () {
            this._recomputeOptions()
          }, t.prototype.observeReferenceElement = function (e) {
            this._elementSizeObserver.observe(e)
          }, t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.prototype._getExtraEditorClassName = function () {
            var e = "";
            return r.isIE ? e += "ie " : r.isFirefox ? e += "ff " : r.isEdge
                && (e += "edge "), o.isMacintosh && (e += "mac "), e
          }, t.prototype._getEnvConfiguration = function () {
            return {
              extraEditorClassName: this._getExtraEditorClassName(),
              outerWidth: this._elementSizeObserver.getWidth(),
              outerHeight: this._elementSizeObserver.getHeight(),
              emptySelectionClipboard: r.isWebKit,
              pixelRatio: r.getPixelRatio(),
              zoomLevel: r.getZoomLevel(),
              accessibilitySupport: r.getAccessibilitySupport()
            }
          }, t.prototype.readConfiguration = function (e) {
            return h.INSTANCE.readConfiguration(e)
          }, t
        }(s.CommonEditorConfiguration);
        t.Configuration = p
      }), define(d[443], h([1, 0, 27, 112, 66, 35]),
      function (e, t, n, i, o, r) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var s = function (e) {
          function t(t) {
            var n = e.call(this, t) || this;
            return n._visibleLines = new i.VisibleLinesCollection(
                n), n.domNode = n._visibleLines.domNode, n._dynamicOverlays = [], n._isFocused = !1, n.domNode.setClassName(
                "view-overlays"), n
          }

          return f(t, e), t.prototype.shouldRender = function () {
            if (e.prototype.shouldRender.call(this)) {
              return !0;
            }
            for (var t = 0, n = this._dynamicOverlays.length; t < n;
                t++) {
              if (this._dynamicOverlays[t].shouldRender()) {
                return !0;
              }
            }
            return !1
          }, t.prototype.dispose = function () {
            e.prototype.dispose.call(this);
            for (var t = 0, n = this._dynamicOverlays.length; t < n;
                t++) {
              this._dynamicOverlays[t].dispose();
            }
            this._dynamicOverlays = null
          }, t.prototype.getDomNode = function () {
            return this.domNode
          }, t.prototype.createVisibleLine = function () {
            return new a(this._context.configuration, this._dynamicOverlays)
          }, t.prototype.addDynamicOverlay = function (e) {
            this._dynamicOverlays.push(e)
          }, t.prototype.onConfigurationChanged = function (e) {
            this._visibleLines.onConfigurationChanged(e);
            for (var t = this._visibleLines.getStartLineNumber(),
                n = this._visibleLines.getEndLineNumber(), i = t; i <= n;
                i++) {
              this._visibleLines.getVisibleLine(
                  i).onConfigurationChanged(e);
            }
            return !0
          }, t.prototype.onFlushed = function (e) {
            return this._visibleLines.onFlushed(e)
          }, t.prototype.onFocusChanged = function (e) {
            return this._isFocused = e.isFocused, !0
          }, t.prototype.onLinesChanged = function (e) {
            return this._visibleLines.onLinesChanged(e)
          }, t.prototype.onLinesDeleted = function (e) {
            return this._visibleLines.onLinesDeleted(e)
          }, t.prototype.onLinesInserted = function (e) {
            return this._visibleLines.onLinesInserted(e)
          }, t.prototype.onScrollChanged = function (e) {
            return this._visibleLines.onScrollChanged(e) || !0
          }, t.prototype.onTokensChanged = function (e) {
            return this._visibleLines.onTokensChanged(e)
          }, t.prototype.onZonesChanged = function (e) {
            return this._visibleLines.onZonesChanged(e)
          }, t.prototype.prepareRender = function (e) {
            for (var t = this._dynamicOverlays.filter(function (e) {
              return e.shouldRender()
            }), n = 0, i = t.length; n < i; n++) {
              var o = t[n];
              o.prepareRender(e), o.onDidRender()
            }
            return null
          }, t.prototype.render = function (e) {
            this._viewOverlaysRender(e), this.domNode.toggleClassName("focused",
                this._isFocused)
          }, t.prototype._viewOverlaysRender = function (e) {
            this._visibleLines.renderLines(e.viewportData)
          }, t
        }(r.ViewPart);
        t.ViewOverlays = s;
        var a = function () {
          function e(e, t) {
            this._configuration = e, this._lineHeight = this._configuration.editor.lineHeight, this._dynamicOverlays = t, this._domNode = null, this._renderedContent = null
          }

          return e.prototype.getDomNode = function () {
            return this._domNode ? this._domNode.domNode : null
          }, e.prototype.setDomNode = function (e) {
            this._domNode = n.createFastDomNode(e)
          }, e.prototype.onContentChanged = function () {
          }, e.prototype.onTokensChanged = function () {
          }, e.prototype.onConfigurationChanged = function (e) {
            e.lineHeight
            && (this._lineHeight = this._configuration.editor.lineHeight)
          }, e.prototype.renderLine = function (e, t, n) {
            for (var i = "", o = 0, r = this._dynamicOverlays.length; o < r;
                o++) {
              i += this._dynamicOverlays[o].render(n.startLineNumber, e);
            }
            return this._renderedContent === i ? null
                : (this._renderedContent = i, '<div style="position:absolute;top:'
                + t + "px;width:100%;height:" + this._lineHeight + 'px;">' + i
                + "</div>")
          }, e.prototype.layoutLine = function (e, t) {
            this._domNode && (this._domNode.setTop(t), this._domNode.setHeight(
                this._lineHeight))
          }, e
        }();
        t.ViewOverlayLine = a;
        var u = function (e) {
          function t(t) {
            var n = e.call(this, t) || this;
            return n._contentWidth = n._context.configuration.editor.layoutInfo.contentWidth, n.domNode.setHeight(
                0), n
          }

          return f(t, e), t.prototype.onConfigurationChanged = function (t) {
            return t.layoutInfo
            && (this._contentWidth = this._context.configuration.editor.layoutInfo.contentWidth), e.prototype.onConfigurationChanged.call(
                this, t)
          }, t.prototype.onScrollChanged = function (t) {
            return e.prototype.onScrollChanged.call(this, t)
                || t.scrollWidthChanged
          }, t.prototype._viewOverlaysRender = function (t) {
            e.prototype._viewOverlaysRender.call(this,
                t), this.domNode.setWidth(
                Math.max(t.scrollWidth, this._contentWidth))
          }, t
        }(s);
        t.ContentViewOverlays = u;
        var l = function (e) {
          function t(t) {
            var n = e.call(this, t) || this;
            return n._contentLeft = n._context.configuration.editor.layoutInfo.contentLeft, n.domNode.setClassName(
                "margin-view-overlays"), n.domNode.setWidth(
                1), o.Configuration.applyFontInfo(n.domNode,
                n._context.configuration.editor.fontInfo), n
          }

          return f(t, e), t.prototype.onConfigurationChanged = function (t) {
            var n = !1;
            return t.fontInfo && (o.Configuration.applyFontInfo(this.domNode,
                this._context.configuration.editor.fontInfo), n = !0), t.layoutInfo
            && (this._contentLeft = this._context.configuration.editor.layoutInfo.contentLeft, n = !0), e.prototype.onConfigurationChanged.call(
                this, t) || n
          }, t.prototype.onScrollChanged = function (t) {
            return e.prototype.onScrollChanged.call(this, t)
                || t.scrollHeightChanged
          }, t.prototype._viewOverlaysRender = function (t) {
            e.prototype._viewOverlaysRender.call(this, t);
            var n = Math.min(t.scrollHeight, 1e6);
            this.domNode.setHeight(n), this.domNode.setWidth(this._contentLeft)
          }, t
        }(s);
        t.MarginViewOverlays = l
      }), define(d[444], h([1, 0, 27, 12, 2, 49, 66, 4]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var u = function () {
          return function (e, t, n, i) {
            this.top = e, this.left = t, this.width = n, this.textContent = i
          }
        }(), l = function () {
          function e(e, t) {
            this._context = e, this._isSecondary = t, this._cursorStyle = this._context.configuration.editor.viewInfo.cursorStyle, this._lineHeight = this._context.configuration.editor.lineHeight, this._typicalHalfwidthCharacterWidth = this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth, this._isVisible = !0, this._domNode = n.createFastDomNode(
                document.createElement("div")), this._isSecondary
                ? this._domNode.setClassName("cursor secondary")
                : this._domNode.setClassName("cursor"), this._domNode.setHeight(
                this._lineHeight), this._domNode.setTop(
                0), this._domNode.setLeft(0), s.Configuration.applyFontInfo(
                this._domNode,
                this._context.configuration.editor.fontInfo), this._domNode.setDisplay(
                "none"), this.updatePosition(new i.Position(1,
                1)), this._isInEditableRange = !0, this._lastRenderedContent = "", this._renderData = null
          }

          return e.prototype.getDomNode = function () {
            return this._domNode
          }, e.prototype.getIsInEditableRange = function () {
            return this._isInEditableRange
          }, e.prototype.getPosition = function () {
            return this._position
          }, e.prototype.show = function () {
            this._isVisible || (this._domNode.setVisibility(
                "inherit"), this._isVisible = !0)
          }, e.prototype.hide = function () {
            this._isVisible && (this._domNode.setVisibility(
                "hidden"), this._isVisible = !1)
          }, e.prototype.onConfigurationChanged = function (e) {
            return e.lineHeight
            && (this._lineHeight = this._context.configuration.editor.lineHeight), e.viewInfo
            && (this._cursorStyle = this._context.configuration.editor.viewInfo.cursorStyle), e.fontInfo
            && (s.Configuration.applyFontInfo(this._domNode,
                this._context.configuration.editor.fontInfo), this._typicalHalfwidthCharacterWidth = this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth), !0
          }, e.prototype.onCursorPositionChanged = function (e, t) {
            return this.updatePosition(e), this._isInEditableRange = t, !0
          }, e.prototype._prepareRender = function (e) {
            if (this._cursorStyle === r.TextEditorCursorStyle.Line
                || this._cursorStyle === r.TextEditorCursorStyle.LineThin) {
              var t = e.visibleRangeForPosition(this._position);
              if (!t) {
                return null;
              }
              var n;
              n = this._cursorStyle === r.TextEditorCursorStyle.Line
                  ? a.computeScreenAwareSize(2) : a.computeScreenAwareSize(1);
              var i = e.getVerticalOffsetForLineNumber(
                  this._position.lineNumber) - e.bigNumbersDelta;
              return new u(i, t.left, n, "")
            }
            var s = e.linesVisibleRangesForRange(
                new o.Range(this._position.lineNumber, this._position.column,
                    this._position.lineNumber, this._position.column + 1), !1);
            if (!s || 0 === s.length || 0 === s[0].ranges.length) {
              return null;
            }
            var l = s[0].ranges[0],
                c = l.width < 1 ? this._typicalHalfwidthCharacterWidth
                    : l.width, d = "";
            this._cursorStyle === r.TextEditorCursorStyle.Block
            && (d = this._context.model.getLineContent(
                this._position.lineNumber).charAt(this._position.column - 1));
            var h = e.getVerticalOffsetForLineNumber(this._position.lineNumber)
                - e.bigNumbersDelta;
            return new u(h, l.left, c, d)
          }, e.prototype.prepareRender = function (e) {
            this._renderData = this._prepareRender(e)
          }, e.prototype.render = function (e) {
            return this._renderData ? (this._lastRenderedContent
            !== this._renderData.textContent
            && (this._lastRenderedContent = this._renderData.textContent, this._domNode.domNode.textContent = this._lastRenderedContent), this._domNode.setDisplay(
                "block"), this._domNode.setTop(
                this._renderData.top), this._domNode.setLeft(
                this._renderData.left), this._domNode.setWidth(
                this._renderData.width), this._domNode.setLineHeight(
                this._lineHeight), this._domNode.setHeight(this._lineHeight), {
              domNode: this._domNode.domNode,
              position: this._position,
              contentLeft: this._renderData.left,
              height: this._lineHeight,
              width: 2
            }) : (this._domNode.setDisplay("none"), null)
          }, e.prototype.updatePosition = function (e) {
            this._position = e
          }, e
        }();
        t.ViewCursor = l
      }), define(d[58], h([1, 0, 16]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.ITelemetryService = n.createDecorator(
        "telemetryService")
  }), define(d[13], h([1, 0, 10, 24, 31, 105, 44, 58, 12, 56, 85, 64, 19, 42]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p) {
        "use strict";

        function g(e) {
          return e.get(p.ICodeEditorService).getFocusedCodeEditor()
        }

        function m(e) {
          var t = e.get(d.IEditorService),
              n = t.getActiveEditor && t.getActiveEditor();
          return p.getCodeEditor(n)
        }

        function v(e) {
          return w.registerEditorCommand(e), e
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var y = function () {
          function e(e) {
            this.id = e.id, this.precondition = e.precondition, this._kbOpts = e.kbOpts, this._description = e.description
          }

          return e.prototype.toCommandAndKeybindingRule = function (e) {
            var t = this, n = this._kbOpts || {primary: 0}, i = n.kbExpr;
            this.precondition && (i = i ? h.ContextKeyExpr.and(i,
                this.precondition) : this.precondition);
            var o = "number" == typeof n.weight ? n.weight : e;
            return {
              id: this.id,
              handler: function (e, n) {
                return t.runCommand(e, n)
              },
              weight: o,
              when: i,
              primary: n.primary,
              secondary: n.secondary,
              win: n.win,
              linux: n.linux,
              mac: n.mac,
              description: this._description
            }
          }, e
        }();
        t.Command = y;
        var C = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.bindToContribution = function (e) {
            return function (t) {
              function n(e) {
                var n = t.call(this, e) || this;
                return n._callback = e.handler, n
              }

              return f(n, t), n.prototype.runEditorCommand = function (t, n,
                  i) {
                e(n) && this._callback(e(n))
              }, n
            }(t)
          }, t.prototype.runCommand = function (e, t) {
            var n = this, i = g(e);
            if (i || (i = m(e)), i) {
              return i.invokeWithinContext(function (e) {
                if (e.get(h.IContextKeyService).contextMatchesRules(
                    n.precondition)) {
                  return n.runEditorCommand(e, i, t)
                }
              })
            }
          }, t
        }(y);
        t.EditorCommand = C;
        var b = function (e) {
          function t(t) {
            var n = e.call(this, t) || this;
            return n.label = t.label, n.alias = t.alias, n.menuOpts = t.menuOpts, n
          }

          return f(t, e), t.prototype.toMenuItem = function () {
            return this.menuOpts ? {
              command: {id: this.id, title: this.label},
              when: this.precondition,
              group: this.menuOpts.group,
              order: this.menuOpts.order
            } : null
          }, t.prototype.runEditorCommand = function (e, t, n) {
            return this.reportTelemetry(e, t), this.run(e, t, n || {})
          }, t.prototype.reportTelemetry = function (e, t) {
            e.get(a.ITelemetryService).publicLog("editorActionInvoked",
                _({name: this.label, id: this.id}, t.getTelemetryData()))
          }, t
        }(C);
        t.EditorAction = b, t.editorAction = function (e) {
          w.registerEditorAction(new e)
        }, t.editorCommand = function (e) {
          v(new e)
        }, t.registerEditorCommand = v, t.commonEditorContribution = function (e) {
          E.INSTANCE.registerEditorContribution(e)
        };
        var w;
        !function (e) {
          function t(e, t) {
            o.CommandsRegistry.registerCommand(e, function (e, n) {
              return t(e, n || {})
            })
          }

          e.registerEditorAction = function (e) {
            E.INSTANCE.registerEditorAction(e)
          }, e.getEditorActions = function () {
            return E.INSTANCE.getEditorActions()
          }, e.getEditorCommand = function (e) {
            return E.INSTANCE.getEditorCommand(e)
          }, e.getEditorContributions = function () {
            return E.INSTANCE.getEditorContributions()
          }, e.commandWeight = function (e) {
            return void 0 === e
            && (e = 0), r.KeybindingsRegistry.WEIGHT.editorContrib(e)
          }, e.registerEditorCommand = function (e) {
            E.INSTANCE.registerEditorCommand(e)
          }, e.registerLanguageCommand = t, e.registerDefaultLanguageCommand = function (e,
              o) {
            t(e, function (e, t) {
              var r = t.resource, s = t.position;
              if (!(r instanceof i.default)) {
                throw n.illegalArgument(
                    "resource");
              }
              if (!u.Position.isIPosition(s)) {
                throw n.illegalArgument(
                    "position");
              }
              var a = e.get(l.IModelService).getModel(r);
              if (!a) {
                throw n.illegalArgument(
                    "Can not find open model for " + r);
              }
              var c = u.Position.lift(s);
              return o(a, c, t)
            })
          }
        }(w = t.CommonEditorRegistry || (t.CommonEditorRegistry = {}));
        var S = {EditorCommonContributions: "editor.commonContributions"},
            E = function () {
              function e() {
                this.editorContributions = [], this.editorActions = [], this.editorCommands = Object.create(
                    null)
              }

              return e.prototype.registerEditorContribution = function (e) {
                this.editorContributions.push(e)
              }, e.prototype.registerEditorAction = function (e) {
                var t = e.toMenuItem();
                t && c.MenuRegistry.appendMenuItem(c.MenuId.EditorContext,
                    t), r.KeybindingsRegistry.registerCommandAndKeybindingRule(
                    e.toCommandAndKeybindingRule(
                        r.KeybindingsRegistry.WEIGHT.editorContrib())), this.editorActions.push(
                    e)
              }, e.prototype.getEditorContributions = function () {
                return this.editorContributions.slice(0)
              }, e.prototype.getEditorActions = function () {
                return this.editorActions.slice(0)
              }, e.prototype.registerEditorCommand = function (e) {
                r.KeybindingsRegistry.registerCommandAndKeybindingRule(
                    e.toCommandAndKeybindingRule(
                        r.KeybindingsRegistry.WEIGHT.editorContrib())), this.editorCommands[e.id] = e
              }, e.prototype.getEditorCommand = function (e) {
                return this.editorCommands[e] || null
              }, e.INSTANCE = new e, e
            }();
        s.Registry.add(S.EditorCommonContributions, E.INSTANCE)
      }), define(d[447],
      h([1, 0, 10, 11, 3, 7, 84, 19, 321, 39, 12, 2, 22, 20, 330, 488, 406, 55,
        21, 13]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, v, _, y, C) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var b = 0, w = function (e) {
          function t(t, n, o, r) {
            var u = e.call(this) || this;
            return u._onDidDispose = u._register(
                new i.Emitter), u.onDidDispose = u._onDidDispose.event, u._onDidChangeModelContent = u._register(
                new i.Emitter), u.onDidChangeModelContent = u._onDidChangeModelContent.event, u._onDidChangeModelLanguage = u._register(
                new i.Emitter), u.onDidChangeModelLanguage = u._onDidChangeModelLanguage.event, u._onDidChangeModelOptions = u._register(
                new i.Emitter), u.onDidChangeModelOptions = u._onDidChangeModelOptions.event, u._onDidChangeModelDecorations = u._register(
                new i.Emitter), u.onDidChangeModelDecorations = u._onDidChangeModelDecorations.event, u._onDidChangeConfiguration = u._register(
                new i.Emitter), u.onDidChangeConfiguration = u._onDidChangeConfiguration.event, u._onDidChangeModel = u._register(
                new i.Emitter), u.onDidChangeModel = u._onDidChangeModel.event, u._onDidChangeCursorPosition = u._register(
                new i.Emitter), u.onDidChangeCursorPosition = u._onDidChangeCursorPosition.event, u._onDidChangeCursorSelection = u._register(
                new i.Emitter), u.onDidChangeCursorSelection = u._onDidChangeCursorSelection.event, u._onDidLayoutChange = u._register(
                new i.Emitter), u.onDidLayoutChange = u._onDidLayoutChange.event, u._onDidFocusEditorText = u._register(
                new i.Emitter), u.onDidFocusEditorText = u._onDidFocusEditorText.event, u._onDidBlurEditorText = u._register(
                new i.Emitter), u.onDidBlurEditorText = u._onDidBlurEditorText.event, u._onDidFocusEditor = u._register(
                new i.Emitter), u.onDidFocusEditor = u._onDidFocusEditor.event, u._onDidBlurEditor = u._register(
                new i.Emitter), u.onDidBlurEditor = u._onDidBlurEditor.event, u._onWillType = u._register(
                new i.Emitter), u.onWillType = u._onWillType.event, u._onDidType = u._register(
                new i.Emitter), u.onDidType = u._onDidType.event, u._onDidPaste = u._register(
                new i.Emitter), u.onDidPaste = u._onDidPaste.event, u.domElement = t, u.id = ++b, u._decorationTypeKeysToIds = {}, u._decorationTypeSubtypes = {}, n = n
                || {}, u._configuration = u._register(
                u._createConfiguration(n)), u._register(
                u._configuration.onDidChange(function (e) {
                  u._onDidChangeConfiguration.fire(e), e.layoutInfo
                  && u._onDidLayoutChange.fire(
                      u._configuration.editor.layoutInfo)
                })), u._contextKeyService = u._register(
                r.createScoped(u.domElement)), u._register(
                new S(u, u._contextKeyService)), u._register(
                new v.EditorModeContext(u,
                    u._contextKeyService)), u._instantiationService = o.createChild(
                new s.ServiceCollection([a.IContextKeyService,
                  u._contextKeyService])), u._attachModel(
                null), u._contributions = {}, u._actions = {}, u
          }

          return f(t, e), t.prototype.getId = function () {
            return this.getEditorType() + ":" + this.id
          }, t.prototype.getEditorType = function () {
            return p.EditorType.ICodeEditor
          }, t.prototype.destroy = function () {
            this.dispose()
          }, t.prototype.dispose = function () {
            for (var t = Object.keys(this._contributions), n = 0, i = t.length;
                n < i; n++) {
              var o = t[n];
              this._contributions[o].dispose()
            }
            this._contributions = {}, this._actions = {}, this._postDetachModelCleanup(
                this._detachModel()), this._onDidDispose.fire(), e.prototype.dispose.call(
                this)
          }, t.prototype.invokeWithinContext = function (e) {
            return this._instantiationService.invokeFunction(e)
          }, t.prototype.updateOptions = function (e) {
            this._configuration.updateOptions(e)
          }, t.prototype.getConfiguration = function () {
            return this._configuration.editor
          }, t.prototype.getRawConfiguration = function () {
            return this._configuration.getRawOptions()
          }, t.prototype.getValue = function (e) {
            if (void 0 === e && (e = null), this.model) {
              var t = !(!e || !e.preserveBOM),
                  n = p.EndOfLinePreference.TextDefined;
              return e && e.lineEnding && "\n" === e.lineEnding
                  ? n = p.EndOfLinePreference.LF : e && e.lineEnding && "\r\n"
                  === e.lineEnding
                  && (n = p.EndOfLinePreference.CRLF), this.model.getValue(n, t)
            }
            return ""
          }, t.prototype.setValue = function (e) {
            this.model && this.model.setValue(e)
          }, t.prototype.getModel = function () {
            return this.model
          }, t.prototype.setModel = function (e) {
            if (void 0 === e && (e = null), this.model !== e) {
              var t = this._detachModel();
              this._attachModel(e);
              var n = {
                oldModelUrl: t ? t.uri : null,
                newModelUrl: e ? e.uri : null
              };
              this._onDidChangeModel.fire(n), this._postDetachModelCleanup(t)
            }
          }, t.prototype.getCenteredRangeInViewport = function () {
            return this.hasView ? this.viewModel.getCenteredRangeInViewport()
                : null
          }, t.prototype.getVisibleColumnFromPosition = function (e) {
            if (!this.model) {
              return e.column;
            }
            var t = this.model.validatePosition(e),
                n = this.model.getOptions().tabSize;
            return l.CursorColumns.visibleColumnFromColumn(
                this.model.getLineContent(t.lineNumber), t.column, n) + 1
          }, t.prototype.getPosition = function () {
            return this.cursor ? this.cursor.getPosition().clone() : null
          }, t.prototype.setPosition = function (e, t, n, i) {
            if (void 0 === t && (t = !1), void 0 === n && (n = !1), void 0 === i
            && (i = !1), this.cursor) {
              if (!c.Position.isIPosition(e)) {
                throw new Error(
                    "Invalid arguments");
              }
              this.cursor.setSelections("api", [{
                selectionStartLineNumber: e.lineNumber,
                selectionStartColumn: e.column,
                positionLineNumber: e.lineNumber,
                positionColumn: e.column
              }]), t && this.revealPosition(e, n, i)
            }
          }, t.prototype._sendRevealRange = function (e, t, n) {
            if (this.model && this.cursor) {
              if (!d.Range.isIRange(e)) {
                throw new Error("Invalid arguments");
              }
              var i = this.model.validateRange(e),
                  o = this.viewModel.coordinatesConverter.convertModelRangeToViewRange(
                      i);
              this.cursor.emitCursorRevealRange(o, t, n)
            }
          }, t.prototype.revealLine = function (e) {
            this._revealLine(e, 0)
          }, t.prototype.revealLineInCenter = function (e) {
            this._revealLine(e, 1)
          }, t.prototype.revealLineInCenterIfOutsideViewport = function (e) {
            this._revealLine(e, 2)
          }, t.prototype._revealLine = function (e, t) {
            if ("number" != typeof e) {
              throw new Error("Invalid arguments");
            }
            this._sendRevealRange(new d.Range(e, 1, e, 1), t, !1)
          }, t.prototype.revealPosition = function (e, t, n) {
            void 0 === t && (t = !1), void 0 === n
            && (n = !1), this._revealPosition(e, t ? 1 : 0, n)
          }, t.prototype.revealPositionInCenter = function (e) {
            this._revealPosition(e, 1, !0)
          }, t.prototype.revealPositionInCenterIfOutsideViewport = function (e) {
            this._revealPosition(e, 2, !0)
          }, t.prototype._revealPosition = function (e, t, n) {
            if (!c.Position.isIPosition(e)) {
              throw new Error(
                  "Invalid arguments");
            }
            this._sendRevealRange(
                new d.Range(e.lineNumber, e.column, e.lineNumber, e.column), t,
                n)
          }, t.prototype.getSelection = function () {
            return this.cursor ? this.cursor.getSelection().clone() : null
          }, t.prototype.getSelections = function () {
            if (!this.cursor) {
              return null;
            }
            for (var e = this.cursor.getSelections(), t = [], n = 0,
                i = e.length; n < i; n++) {
              t[n] = e[n].clone();
            }
            return t
          }, t.prototype.setSelection = function (e, t, n, i) {
            void 0 === t && (t = !1), void 0 === n && (n = !1), void 0 === i
            && (i = !1);
            var o = h.Selection.isISelection(e), r = d.Range.isIRange(e);
            if (!o && !r) {
              throw new Error("Invalid arguments");
            }
            if (o) {
              this._setSelectionImpl(e, t, n, i);
            } else if (r) {
              var s = {
                selectionStartLineNumber: e.startLineNumber,
                selectionStartColumn: e.startColumn,
                positionLineNumber: e.endLineNumber,
                positionColumn: e.endColumn
              };
              this._setSelectionImpl(s, t, n, i)
            }
          }, t.prototype._setSelectionImpl = function (e, t, n, i) {
            if (this.cursor) {
              var o = new h.Selection(e.selectionStartLineNumber,
                  e.selectionStartColumn, e.positionLineNumber,
                  e.positionColumn);
              this.cursor.setSelections("api", [o]), t && this.revealRange(o, n,
                  i)
            }
          }, t.prototype.revealLines = function (e, t) {
            this._revealLines(e, t, 0)
          }, t.prototype.revealLinesInCenter = function (e, t) {
            this._revealLines(e, t, 1)
          }, t.prototype.revealLinesInCenterIfOutsideViewport = function (e,
              t) {
            this._revealLines(e, t, 2)
          }, t.prototype._revealLines = function (e, t, n) {
            if ("number" != typeof e || "number" != typeof t) {
              throw new Error(
                  "Invalid arguments");
            }
            this._sendRevealRange(new d.Range(e, 1, t, 1), n, !1)
          }, t.prototype.revealRange = function (e, t, n) {
            void 0 === t && (t = !1), void 0 === n
            && (n = !0), this._revealRange(e, t ? 1 : 0, n)
          }, t.prototype.revealRangeInCenter = function (e) {
            this._revealRange(e, 1, !0)
          }, t.prototype.revealRangeInCenterIfOutsideViewport = function (e) {
            this._revealRange(e, 2, !0)
          }, t.prototype.revealRangeAtTop = function (e) {
            this._revealRange(e, 3, !0)
          }, t.prototype._revealRange = function (e, t, n) {
            if (!d.Range.isIRange(e)) {
              throw new Error("Invalid arguments");
            }
            this._sendRevealRange(d.Range.lift(e), t, n)
          }, t.prototype.setSelections = function (e) {
            if (this.cursor) {
              if (!e || 0 === e.length) {
                throw new Error("Invalid arguments");
              }
              for (var t = 0, n = e.length; t < n;
                  t++) {
                if (!h.Selection.isISelection(e[t])) {
                  throw new Error(
                      "Invalid arguments");
                }
              }
              this.cursor.setSelections("api", e)
            }
          }, t.prototype.getScrollWidth = function () {
            return this.hasView ? this.viewModel.viewLayout.getScrollWidth()
                : -1
          }, t.prototype.getScrollLeft = function () {
            return this.hasView ? this.viewModel.viewLayout.getScrollLeft() : -1
          }, t.prototype.getScrollHeight = function () {
            return this.hasView ? this.viewModel.viewLayout.getScrollHeight()
                : -1
          }, t.prototype.getScrollTop = function () {
            return this.hasView ? this.viewModel.viewLayout.getScrollTop() : -1
          }, t.prototype.setScrollLeft = function (e) {
            if (this.hasView) {
              if ("number" != typeof e) {
                throw new Error("Invalid arguments");
              }
              this.viewModel.viewLayout.setScrollPosition({scrollLeft: e})
            }
          }, t.prototype.setScrollTop = function (e) {
            if (this.hasView) {
              if ("number" != typeof e) {
                throw new Error("Invalid arguments");
              }
              this.viewModel.viewLayout.setScrollPosition({scrollTop: e})
            }
          }, t.prototype.setScrollPosition = function (e) {
            this.hasView && this.viewModel.viewLayout.setScrollPosition(e)
          }, t.prototype.saveViewState = function () {
            if (!this.cursor || !this.hasView) {
              return null;
            }
            for (var e = {}, t = Object.keys(this._contributions), n = 0,
                i = t.length; n < i; n++) {
              var o = t[n], r = this._contributions[o];
              "function" == typeof r.saveViewState && (e[o] = r.saveViewState())
            }
            return {
              cursorState: this.cursor.saveState(),
              viewState: this.viewModel.viewLayout.saveState(),
              contributionsState: e
            }
          }, t.prototype.restoreViewState = function (e) {
            if (this.cursor && this.hasView && e && e.cursorState
                && e.viewState) {
              var t = e, n = t.cursorState;
              Array.isArray(n) ? this.cursor.restoreState(n)
                  : this.cursor.restoreState(
                      [n]), this.viewModel.viewLayout.restoreState(t.viewState);
              for (var i = e.contributionsState || {},
                  o = Object.keys(this._contributions), r = 0, s = o.length;
                  r < s; r++) {
                var a = o[r], u = this._contributions[a];
                "function" == typeof u.restoreViewState && u.restoreViewState(
                    i[a])
              }
            }
          }, t.prototype.onVisible = function () {
          }, t.prototype.onHide = function () {
          }, t.prototype.getContribution = function (e) {
            return this._contributions[e] || null
          }, t.prototype.getActions = function () {
            for (var e = [], t = Object.keys(this._actions), n = 0,
                i = t.length; n < i; n++) {
              var o = t[n];
              e.push(this._actions[o])
            }
            return e
          }, t.prototype.getSupportedActions = function () {
            var e = this.getActions();
            return e = e.filter(function (e) {
              return e.isSupported()
            })
          }, t.prototype.getAction = function (e) {
            return this._actions[e] || null
          }, t.prototype.trigger = function (e, t, i) {
            if (i = i || {}, t === p.Handler.Type) {
              if (!this.cursor || "string" != typeof i.text || 0
                  === i.text.length) {
                return;
              }
              return "keyboard" === e && this._onWillType.fire(
                  i.text), this.cursor.trigger(e, t, i), void ("keyboard" === e
                  && this._onDidType.fire(i.text))
            }
            if (t !== p.Handler.Paste) {
              var o = this.getAction(t);
              if (o) {
                r.TPromise.as(o.run()).done(null,
                    n.onUnexpectedError);
              } else if (this.cursor) {
                var s = C.CommonEditorRegistry.getEditorCommand(t);
                if (s) {
                  return i = i || {}, i.source = e, void r.TPromise.as(
                      s.runEditorCommand(null, this, i)).done(null,
                      n.onUnexpectedError);
                }
                this.cursor.trigger(e, t, i)
              }
            } else {
              if (!this.cursor || "string" != typeof i.text || 0
                  === i.text.length) {
                return;
              }
              var a = this.cursor.getSelection().getStartPosition();
              this.cursor.trigger(e, t, i);
              var u = this.cursor.getSelection().getStartPosition();
              "keyboard" === e && this._onDidPaste.fire(
                  new d.Range(a.lineNumber, a.column, u.lineNumber, u.column))
            }
          }, t.prototype._getCursors = function () {
            return this.cursor
          }, t.prototype._getCursorConfiguration = function () {
            return this.cursor.context.config
          }, t.prototype.pushUndoStop = function () {
            return !!this.model && (!this._configuration.editor.readOnly
                && (this.model.pushStackElement(), !0))
          }, t.prototype.executeEdits = function (e, t, n) {
            var i = this;
            return !!this.cursor && (!this._configuration.editor.readOnly
                && (this.model.pushEditOperations(this.cursor.getSelections(),
                    t, function () {
                      return n || i.cursor.getSelections()
                    }), n && this.cursor.setSelections(e, n), !0))
          }, t.prototype.executeCommand = function (e, t) {
            this.cursor && this.cursor.trigger(e, p.Handler.ExecuteCommand, t)
          }, t.prototype.executeCommands = function (e, t) {
            this.cursor && this.cursor.trigger(e, p.Handler.ExecuteCommands, t)
          }, t.prototype.changeDecorations = function (e) {
            return this.model ? this.model.changeDecorations(e, this.id) : null
          }, t.prototype.getLineDecorations = function (e) {
            return this.model ? this.model.getLineDecorations(e, this.id,
                this._configuration.editor.readOnly) : null
          }, t.prototype.deltaDecorations = function (e, t) {
            return this.model ? 0 === e.length && 0 === t.length ? e
                : this.model.deltaDecorations(e, t, this.id) : []
          }, t.prototype.setDecorations = function (e, t) {
            var n = {}, i = this._decorationTypeSubtypes[e] || {};
            this._decorationTypeSubtypes[e] = n;
            for (var o = [], r = 0, s = t; r < s.length; r++) {
              var a = s[r], u = e;
              a.renderOptions && (u = e + "-" + (c = m.hash(
                  a.renderOptions).toString(16)), i[c] || n[c]
              || this._registerDecorationType(u, a.renderOptions,
                  e), n[c] = !0);
              var l = this._resolveDecorationOptions(u, !!a.hoverMessage);
              a.hoverMessage && (l.hoverMessage = a.hoverMessage), o.push(
                  {range: a.range, options: l})
            }
            for (var c in i) {
              n[c] || this._removeDecorationType(e + "-" + c);
            }
            var d = this._decorationTypeKeysToIds[e] || [];
            this._decorationTypeKeysToIds[e] = this.deltaDecorations(d, o)
          }, t.prototype.removeDecorations = function (e) {
            var t = this._decorationTypeKeysToIds[e];
            t && this.deltaDecorations(t,
                []), this._decorationTypeKeysToIds.hasOwnProperty(e)
            && delete this._decorationTypeKeysToIds[e], this._decorationTypeSubtypes.hasOwnProperty(
                e) && delete this._decorationTypeSubtypes[e]
          }, t.prototype.getLayoutInfo = function () {
            return this._configuration.editor.layoutInfo
          }, t.prototype._attachModel = function (e) {
            var t = this;
            this.model = e
                || null, this.listenersToRemove = [], this.viewModel = null, this.cursor = null, this.model
                ? (this.domElement.setAttribute("data-mode-id",
                    this.model.getLanguageIdentifier().language), this._configuration.setIsDominatedByLongLines(
                    this.model.isDominatedByLongLines()), this._configuration.setMaxLineNumber(
                    this.model.getLineCount()), this.model.onBeforeAttached(), this.viewModel = new g.ViewModel(
                    this.id, this._configuration,
                    this.model), this.listenersToRemove.push(
                    this.model.addBulkListener(function (e) {
                      for (var n = 0, i = e.length; n < i; n++) {
                        var o = e[n].type, r = e[n].data;
                        switch (o) {
                          case _.TextModelEventType.ModelDecorationsChanged:
                            t._onDidChangeModelDecorations.fire(r);
                            break;
                          case _.TextModelEventType.ModelLanguageChanged:
                            t.domElement.setAttribute("data-mode-id",
                                t.model.getLanguageIdentifier().language), t._onDidChangeModelLanguage.fire(
                                r);
                            break;
                          case _.TextModelEventType.ModelContentChanged:
                            t._onDidChangeModelContent.fire(r);
                            break;
                          case _.TextModelEventType.ModelOptionsChanged:
                            t._onDidChangeModelOptions.fire(r);
                            break;
                          case _.TextModelEventType.ModelDispose:
                            t.setModel(null)
                        }
                      }
                    })), this.cursor = new u.Cursor(this._configuration,
                    this.model,
                    this.viewModel), this._createView(), this.listenersToRemove.push(
                    this.cursor.onDidChange(function (e) {
                      for (var n = [], i = 0, o = e.selections.length; i < o;
                          i++) {
                        n[i] = e.selections[i].getPosition();
                      }
                      var r = {
                        position: n[0],
                        secondaryPositions: n.slice(1),
                        reason: e.reason,
                        source: e.source
                      };
                      t._onDidChangeCursorPosition.fire(r);
                      var s = {
                        selection: e.selections[0],
                        secondarySelections: e.selections.slice(1),
                        source: e.source,
                        reason: e.reason
                      };
                      t._onDidChangeCursorSelection.fire(s)
                    }))) : this.hasView = !1
          }, t.prototype._postDetachModelCleanup = function (e) {
            if (e) {
              if (this._decorationTypeKeysToIds = {}, this._decorationTypeSubtypes) {
                for (var t in this._decorationTypeSubtypes) {
                  var n = this._decorationTypeSubtypes[t];
                  for (var i in n) {
                    this._removeDecorationType(t + "-" + i)
                  }
                }
                this._decorationTypeSubtypes = {}
              }
              e.removeAllDecorationsWithOwnerId(this.id)
            }
          }, t.prototype._detachModel = function () {
            this.model
            && this.model.onBeforeDetached(), this.hasView = !1, this.listenersToRemove = o.dispose(
                this.listenersToRemove), this.cursor
            && (this.cursor.dispose(), this.cursor = null), this.viewModel
            && (this.viewModel.dispose(), this.viewModel = null);
            var e = this.model;
            return this.model = null, this.domElement.removeAttribute(
                "data-mode-id"), e
          }, t.prototype.getTelemetryData = function () {
            return null
          }, t
        }(o.Disposable);
        t.CommonCodeEditor = w;
        var S = function (e) {
          function t(t, n) {
            var i = e.call(this) || this;
            return i._editor = t, i._editorId = n.createKey("editorId",
                t.getId()), i._editorFocus = y.EditorContextKeys.focus.bindTo(
                n), i._editorTextFocus = y.EditorContextKeys.textFocus.bindTo(
                n), i._editorTabMovesFocus = y.EditorContextKeys.tabMovesFocus.bindTo(
                n), i._editorReadonly = y.EditorContextKeys.readOnly.bindTo(
                n), i._hasMultipleSelections = y.EditorContextKeys.hasMultipleSelections.bindTo(
                n), i._hasNonEmptySelection = y.EditorContextKeys.hasNonEmptySelection.bindTo(
                n), i._register(i._editor.onDidChangeConfiguration(function () {
              return i._updateFromConfig()
            })), i._register(i._editor.onDidChangeCursorSelection(function () {
              return i._updateFromSelection()
            })), i._register(i._editor.onDidFocusEditor(function () {
              return i._updateFromFocus()
            })), i._register(i._editor.onDidBlurEditor(function () {
              return i._updateFromFocus()
            })), i._register(i._editor.onDidFocusEditorText(function () {
              return i._updateFromFocus()
            })), i._register(i._editor.onDidBlurEditorText(function () {
              return i._updateFromFocus()
            })), i._updateFromConfig(), i._updateFromSelection(), i._updateFromFocus(), i
          }

          return f(t, e), t.prototype._updateFromConfig = function () {
            var e = this._editor.getConfiguration();
            this._editorTabMovesFocus.set(
                e.tabFocusMode), this._editorReadonly.set(e.readOnly)
          }, t.prototype._updateFromSelection = function () {
            var e = this._editor.getSelections();
            e ? (this._hasMultipleSelections.set(
                    e.length > 1), this._hasNonEmptySelection.set(
                    e.some(function (e) {
                      return !e.isEmpty()
                    })))
                : (this._hasMultipleSelections.reset(), this._hasNonEmptySelection.reset())
          }, t.prototype._updateFromFocus = function () {
            this._editorFocus.set(
                this._editor.hasWidgetFocus()), this._editorTextFocus.set(
                this._editor.isFocused())
          }, t
        }(o.Disposable)
      }), define(d[134],
      h([1, 0, 12, 2, 20, 39, 54, 173, 13, 311, 21, 105, 42, 19, 29, 64, 119,
        170]), function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, v, _) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var y = o.Handler, C = d.KeybindingsRegistry.WEIGHT.editorCore(),
            b = function (e) {
              function t() {
                return null !== e && e.apply(this, arguments) || this
              }

              return f(t, e), t.prototype.runEditorCommand = function (e, t,
                  n) {
                this.runCoreEditorCommand(t._getCursors(), n || {})
              }, t
            }(u.EditorCommand);
        t.CoreEditorCommand = b;
        var w;
        !function (e) {
          e.description = {
            description: "Scroll editor in the given direction",
            args: [{
              name: "Editor scroll argument object",
              description: "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t",
              constraint: function (e) {
                if (!g.isObject(e)) {
                  return !1;
                }
                var t = e;
                return !(!g.isString(t.to) || !g.isUndefined(t.by)
                    && !g.isString(t.by) || !g.isUndefined(t.value)
                    && !g.isNumber(t.value) || !g.isUndefined(t.revealCursor)
                    && !g.isBoolean(t.revealCursor))
              }
            }]
          }, e.RawDirection = {
            Up: "up",
            Down: "down"
          }, e.RawUnit = {
            Line: "line",
            WrappedLine: "wrappedLine",
            Page: "page",
            HalfPage: "halfPage"
          }, e.parse = function (t) {
            var n;
            switch (t.to) {
              case e.RawDirection.Up:
                n = 1;
                break;
              case e.RawDirection.Down:
                n = 2;
                break;
              default:
                return null
            }
            var i;
            switch (t.by) {
              case e.RawUnit.Line:
                i = 1;
                break;
              case e.RawUnit.WrappedLine:
                i = 2;
                break;
              case e.RawUnit.Page:
                i = 3;
                break;
              case e.RawUnit.HalfPage:
                i = 4;
                break;
              default:
                i = 2
            }
            return {
              direction: n,
              unit: i,
              value: Math.floor(t.value || 1),
              revealCursor: !!t.revealCursor,
              select: !!t.select
            }
          };
          !function (e) {
            e[e.Up = 1] = "Up", e[e.Down = 2] = "Down"
          }(e.Direction || (e.Direction = {}));
          !function (e) {
            e[e.Line = 1] = "Line", e[e.WrappedLine = 2] = "WrappedLine", e[e.Page = 3] = "Page", e[e.HalfPage = 4] = "HalfPage"
          }(e.Unit || (e.Unit = {}))
        }(w = t.EditorScroll_ || (t.EditorScroll_ = {}));
        var S;
        !function (e) {
          e.description = {
            description: "Reveal the given line at the given logical position",
            args: [{
              name: "Reveal line argument object",
              description: "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed .\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t```\n\t\t\t\t",
              constraint: function (e) {
                if (!g.isObject(e)) {
                  return !1;
                }
                var t = e;
                return !(!g.isNumber(t.lineNumber) || !g.isUndefined(t.at)
                    && !g.isString(t.at))
              }
            }]
          }, e.RawAtArgument = {Top: "top", Center: "center", Bottom: "bottom"}
        }(S = t.RevealLine_ || (t.RevealLine_ = {}));
        var E;
        !function (e) {
          var t = function (e) {
            function t(t) {
              var n = e.call(this, t) || this;
              return n._inSelectionMode = t.inSelectionMode, n
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              e.context.model.pushStackElement(), e.setStates(t.source,
                  s.CursorChangeReason.Explicit,
                  [a.CursorMoveCommands.moveTo(e.context, e.getPrimaryCursor(),
                      this._inSelectionMode, t.position,
                      t.viewPosition)]), e.reveal(!0, 0)
            }, t
          }(b);
          e.MoveTo = u.registerEditorCommand(new t({
            id: "_moveTo",
            inSelectionMode: !1,
            precondition: null
          })), e.MoveToSelect = u.registerEditorCommand(new t(
              {id: "_moveToSelect", inSelectionMode: !0, precondition: null}));
          var o = function (e) {
            function t() {
              return null !== e && e.apply(this, arguments) || this
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              e.context.model.pushStackElement();
              var n = this._getColumnSelectResult(e.context,
                  e.getPrimaryCursor(), e.getColumnSelectData(), t);
              e.setStates(t.source, s.CursorChangeReason.Explicit,
                  n.viewStates.map(function (e) {
                    return r.CursorState.fromViewState(e)
                  })), e.setColumnSelectData({
                toViewLineNumber: n.toLineNumber,
                toViewVisualColumn: n.toVisualColumn
              }), e.reveal(!0, n.reversed ? 1 : 2)
            }, t
          }(b);
          e.ColumnSelect = u.registerEditorCommand(new (function (e) {
            function t() {
              return e.call(this, {id: "columnSelect", precondition: null})
                  || this
            }

            return f(t, e), t.prototype._getColumnSelectResult = function (e, t,
                i, o) {
              var r, s = e.model.validatePosition(o.position);
              return r = o.viewPosition ? e.validateViewPosition(
                      new n.Position(o.viewPosition.lineNumber,
                          o.viewPosition.column), s)
                  : e.convertModelPositionToViewPosition(
                      s), l.ColumnSelection.columnSelect(e.config, e.viewModel,
                  t.viewState.selection, r.lineNumber, o.mouseColumn - 1)
            }, t
          }(o))), e.CursorColumnSelectLeft = u.registerEditorCommand(
              new (function (e) {
                function t() {
                  return e.call(this, {
                    id: "cursorColumnSelectLeft",
                    precondition: null,
                    kbOpts: {
                      weight: C,
                      kbExpr: c.EditorContextKeys.textFocus,
                      primary: 3599,
                      linux: {primary: 0}
                    }
                  }) || this
                }

                return f(t,
                    e), t.prototype._getColumnSelectResult = function (e, t, n,
                    i) {
                  return l.ColumnSelection.columnSelectLeft(e.config,
                      e.viewModel, t.viewState, n.toViewLineNumber,
                      n.toViewVisualColumn)
                }, t
              }(o))), e.CursorColumnSelectRight = u.registerEditorCommand(
              new (function (e) {
                function t() {
                  return e.call(this, {
                    id: "cursorColumnSelectRight",
                    precondition: null,
                    kbOpts: {
                      weight: C,
                      kbExpr: c.EditorContextKeys.textFocus,
                      primary: 3601,
                      linux: {primary: 0}
                    }
                  }) || this
                }

                return f(t,
                    e), t.prototype._getColumnSelectResult = function (e, t, n,
                    i) {
                  return l.ColumnSelection.columnSelectRight(e.config,
                      e.viewModel, t.viewState, n.toViewLineNumber,
                      n.toViewVisualColumn)
                }, t
              }(o)));
          var d = function (e) {
            function t(t) {
              var n = e.call(this, t) || this;
              return n._isPaged = t.isPaged, n
            }

            return f(t, e), t.prototype._getColumnSelectResult = function (e, t,
                n, i) {
              return l.ColumnSelection.columnSelectUp(e.config, e.viewModel,
                  t.viewState, this._isPaged, n.toViewLineNumber,
                  n.toViewVisualColumn)
            }, t
          }(o);
          e.CursorColumnSelectUp = u.registerEditorCommand(new d({
            isPaged: !1,
            id: "cursorColumnSelectUp",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 3600,
              linux: {primary: 0}
            }
          })), e.CursorColumnSelectPageUp = u.registerEditorCommand(new d({
            isPaged: !0,
            id: "cursorColumnSelectPageUp",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 3595,
              linux: {primary: 0}
            }
          }));
          var h = function (e) {
            function t(t) {
              var n = e.call(this, t) || this;
              return n._isPaged = t.isPaged, n
            }

            return f(t, e), t.prototype._getColumnSelectResult = function (e, t,
                n, i) {
              return l.ColumnSelection.columnSelectDown(e.config, e.viewModel,
                  t.viewState, this._isPaged, n.toViewLineNumber,
                  n.toViewVisualColumn)
            }, t
          }(o);
          e.CursorColumnSelectDown = u.registerEditorCommand(new h({
            isPaged: !1,
            id: "cursorColumnSelectDown",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 3602,
              linux: {primary: 0}
            }
          })), e.CursorColumnSelectPageDown = u.registerEditorCommand(new h({
            isPaged: !0,
            id: "cursorColumnSelectPageDown",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 3596,
              linux: {primary: 0}
            }
          }));
          var p = function (e) {
            function t() {
              return e.call(this, {
                id: "cursorMove",
                precondition: null,
                description: a.CursorMove.description
              }) || this
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              var n = a.CursorMove.parse(t);
              n && this._runCursorMove(e, t.source, n)
            }, t.prototype._runCursorMove = function (e, t, n) {
              e.context.model.pushStackElement(), e.setStates(t,
                  s.CursorChangeReason.Explicit,
                  r.CursorState.ensureInEditableRange(e.context,
                      a.CursorMoveCommands.move(e.context, e.getAll(),
                          n))), e.reveal(!0, 0)
            }, t
          }(b);
          e.CursorMoveImpl = p, e.CursorMove = u.registerEditorCommand(new p);
          var g;
          !function (e) {
            e[e.PAGE_SIZE_MARKER = -1] = "PAGE_SIZE_MARKER"
          }(g || (g = {}));
          var m = function (t) {
            function n(e) {
              var n = t.call(this, e) || this;
              return n._staticArgs = e.args, n
            }

            return f(n, t), n.prototype.runCoreEditorCommand = function (t, n) {
              var i = this._staticArgs;
              -1 === this._staticArgs.value && (i = {
                direction: this._staticArgs.direction,
                unit: this._staticArgs.unit,
                select: this._staticArgs.select,
                value: t.context.config.pageSize
              }), e.CursorMove._runCursorMove(t, n.source, i)
            }, n
          }(b);
          e.CursorLeft = u.registerEditorCommand(new m({
            args: {direction: 0, unit: 0, select: !1, value: 1},
            id: "cursorLeft",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 15,
              mac: {primary: 15, secondary: [288]}
            }
          })), e.CursorLeftSelect = u.registerEditorCommand(new m({
            args: {direction: 0, unit: 0, select: !0, value: 1},
            id: "cursorLeftSelect",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 1039
            }
          })), e.CursorRight = u.registerEditorCommand(new m({
            args: {direction: 1, unit: 0, select: !1, value: 1},
            id: "cursorRight",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 17,
              mac: {primary: 17, secondary: [292]}
            }
          })), e.CursorRightSelect = u.registerEditorCommand(new m({
            args: {direction: 1, unit: 0, select: !0, value: 1},
            id: "cursorRightSelect",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 1041
            }
          })), e.CursorUp = u.registerEditorCommand(new m({
            args: {direction: 2, unit: 2, select: !1, value: 1},
            id: "cursorUp",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 16,
              mac: {primary: 16, secondary: [302]}
            }
          })), e.CursorUpSelect = u.registerEditorCommand(new m({
            args: {direction: 2, unit: 2, select: !0, value: 1},
            id: "cursorUpSelect",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 1040,
              secondary: [3088],
              mac: {primary: 1040},
              linux: {primary: 1040}
            }
          })), e.CursorPageUp = u.registerEditorCommand(new m({
            args: {direction: 2, unit: 2, select: !1, value: -1},
            id: "cursorPageUp",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 11
            }
          })), e.CursorPageUpSelect = u.registerEditorCommand(new m({
            args: {direction: 2, unit: 2, select: !0, value: -1},
            id: "cursorPageUpSelect",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 1035
            }
          })), e.CursorDown = u.registerEditorCommand(new m({
            args: {direction: 3, unit: 2, select: !1, value: 1},
            id: "cursorDown",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 18,
              mac: {primary: 18, secondary: [300]}
            }
          })), e.CursorDownSelect = u.registerEditorCommand(new m({
            args: {direction: 3, unit: 2, select: !0, value: 1},
            id: "cursorDownSelect",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 1042,
              secondary: [3090],
              mac: {primary: 1042},
              linux: {primary: 1042}
            }
          })), e.CursorPageDown = u.registerEditorCommand(new m({
            args: {direction: 3, unit: 2, select: !1, value: -1},
            id: "cursorPageDown",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 12
            }
          })), e.CursorPageDownSelect = u.registerEditorCommand(new m({
            args: {direction: 3, unit: 2, select: !0, value: -1},
            id: "cursorPageDownSelect",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 1036
            }
          })), e.CreateCursor = u.registerEditorCommand(new (function (e) {
            function t() {
              return e.call(this, {id: "createCursor", precondition: null})
                  || this
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              var n = e.context;
              if (!n.config.readOnly && !n.model.hasEditableRange()) {
                var i;
                i = t.wholeLine ? a.CursorMoveCommands.line(n,
                        e.getPrimaryCursor(), !1, t.position, t.viewPosition)
                    : a.CursorMoveCommands.moveTo(n, e.getPrimaryCursor(), !1,
                        t.position, t.viewPosition);
                var o = e.getAll();
                if (o.length > 1) {
                  for (var r = i.modelState
                          ? i.modelState.position : null,
                      u = i.viewState ? i.viewState.position : null, l = 0,
                      c = o.length; l < c; l++) {
                    var d = o[l];
                    if ((!r || d.modelState.selection.containsPosition(r))
                        && (!u
                            || d.viewState.selection.containsPosition(
                                u))) {
                      return o.splice(l,
                          1), e.context.model.pushStackElement(), void e.setStates(
                          t.source, s.CursorChangeReason.Explicit, o)
                    }
                  }
                }
                o.push(i), e.context.model.pushStackElement(), e.setStates(
                    t.source, s.CursorChangeReason.Explicit, o)
              }
            }, t
          }(b))), e.LastCursorMoveToSelect = u.registerEditorCommand(
              new (function (e) {
                function t() {
                  return e.call(this,
                          {id: "_lastCursorMoveToSelect", precondition: null})
                      || this
                }

                return f(t, e), t.prototype.runCoreEditorCommand = function (e,
                    t) {
                  var n = e.context;
                  if (!n.config.readOnly && !n.model.hasEditableRange()) {
                    var i = e.getLastAddedCursorIndex(),
                        o = e.getAll().slice(0);
                    o[i] = a.CursorMoveCommands.moveTo(n, o[i], !0, t.position,
                        t.viewPosition), e.context.model.pushStackElement(), e.setStates(
                        t.source, s.CursorChangeReason.Explicit, o)
                  }
                }, t
              }(b)));
          var v = function (e) {
            function t(t) {
              var n = e.call(this, t) || this;
              return n._inSelectionMode = t.inSelectionMode, n
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              e.context.model.pushStackElement(), e.setStates(t.source,
                  s.CursorChangeReason.Explicit,
                  r.CursorState.ensureInEditableRange(e.context,
                      a.CursorMoveCommands.moveToBeginningOfLine(e.context,
                          e.getAll(), this._inSelectionMode))), e.reveal(!0, 0)
            }, t
          }(b);
          e.CursorHome = u.registerEditorCommand(new v({
            inSelectionMode: !1,
            id: "cursorHome",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 14,
              mac: {primary: 14, secondary: [2063]}
            }
          })), e.CursorHomeSelect = u.registerEditorCommand(new v({
            inSelectionMode: !0,
            id: "cursorHomeSelect",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 1038,
              mac: {primary: 1038, secondary: [3087]}
            }
          })), e.CursorLineStart = u.registerEditorCommand(new (function (e) {
            function t() {
              return e.call(this, {
                id: "cursorLineStart",
                precondition: null,
                kbOpts: {
                  weight: C,
                  kbExpr: c.EditorContextKeys.textFocus,
                  primary: 0,
                  mac: {primary: 287}
                }
              }) || this
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              e.context.model.pushStackElement(), e.setStates(t.source,
                  s.CursorChangeReason.Explicit,
                  r.CursorState.ensureInEditableRange(e.context,
                      this._exec(e.context, e.getAll()))), e.reveal(!0, 0)
            }, t.prototype._exec = function (e, t) {
              for (var n = [], i = 0, o = t.length; i < o; i++) {
                var s = t[i], a = s.modelState.position.lineNumber;
                n[i] = r.CursorState.fromModelState(
                    s.modelState.move(!1, a, 1, 0))
              }
              return n
            }, t
          }(b)));
          var _ = function (e) {
            function t(t) {
              var n = e.call(this, t) || this;
              return n._inSelectionMode = t.inSelectionMode, n
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              e.context.model.pushStackElement(), e.setStates(t.source,
                  s.CursorChangeReason.Explicit,
                  r.CursorState.ensureInEditableRange(e.context,
                      a.CursorMoveCommands.moveToEndOfLine(e.context,
                          e.getAll(), this._inSelectionMode))), e.reveal(!0, 0)
            }, t
          }(b);
          e.CursorEnd = u.registerEditorCommand(new _({
            inSelectionMode: !1,
            id: "cursorEnd",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 13,
              mac: {primary: 13, secondary: [2065]}
            }
          })), e.CursorEndSelect = u.registerEditorCommand(new _({
            inSelectionMode: !0,
            id: "cursorEndSelect",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 1037,
              mac: {primary: 1037, secondary: [3089]}
            }
          })), e.CursorLineEnd = u.registerEditorCommand(new (function (e) {
            function t() {
              return e.call(this, {
                id: "cursorLineEnd",
                precondition: null,
                kbOpts: {
                  weight: C,
                  kbExpr: c.EditorContextKeys.textFocus,
                  primary: 0,
                  mac: {primary: 291}
                }
              }) || this
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              e.context.model.pushStackElement(), e.setStates(t.source,
                  s.CursorChangeReason.Explicit,
                  r.CursorState.ensureInEditableRange(e.context,
                      this._exec(e.context, e.getAll()))), e.reveal(!0, 0)
            }, t.prototype._exec = function (e, t) {
              for (var n = [], i = 0, o = t.length; i < o; i++) {
                var s = t[i], a = s.modelState.position.lineNumber,
                    u = e.model.getLineMaxColumn(a);
                n[i] = r.CursorState.fromModelState(
                    s.modelState.move(!1, a, u, 0))
              }
              return n
            }, t
          }(b)));
          var y = function (e) {
            function t(t) {
              var n = e.call(this, t) || this;
              return n._inSelectionMode = t.inSelectionMode, n
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              e.context.model.pushStackElement(), e.setStates(t.source,
                  s.CursorChangeReason.Explicit,
                  r.CursorState.ensureInEditableRange(e.context,
                      a.CursorMoveCommands.moveToBeginningOfBuffer(e.context,
                          e.getAll(), this._inSelectionMode))), e.reveal(!0, 0)
            }, t
          }(b);
          e.CursorTop = u.registerEditorCommand(new y({
            inSelectionMode: !1,
            id: "cursorTop",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 2062,
              mac: {primary: 2064}
            }
          })), e.CursorTopSelect = u.registerEditorCommand(new y({
            inSelectionMode: !0,
            id: "cursorTopSelect",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 3086,
              mac: {primary: 3088}
            }
          }));
          var E = function (e) {
            function t(t) {
              var n = e.call(this, t) || this;
              return n._inSelectionMode = t.inSelectionMode, n
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              e.context.model.pushStackElement(), e.setStates(t.source,
                  s.CursorChangeReason.Explicit,
                  r.CursorState.ensureInEditableRange(e.context,
                      a.CursorMoveCommands.moveToEndOfBuffer(e.context,
                          e.getAll(), this._inSelectionMode))), e.reveal(!0, 0)
            }, t
          }(b);
          e.CursorBottom = u.registerEditorCommand(new E({
            inSelectionMode: !1,
            id: "cursorBottom",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 2061,
              mac: {primary: 2066}
            }
          })), e.CursorBottomSelect = u.registerEditorCommand(new E({
            inSelectionMode: !0,
            id: "cursorBottomSelect",
            precondition: null,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 3085,
              mac: {primary: 3090}
            }
          }));
          var L = function (e) {
            function t() {
              return e.call(this, {
                id: "editorScroll",
                precondition: null,
                description: w.description
              }) || this
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              var n = w.parse(t);
              n && this._runEditorScroll(e, t.source, n)
            }, t.prototype._runEditorScroll = function (e, t, n) {
              var i = this._computeDesiredScrollTop(e.context, n);
              if (n.revealCursor) {
                var o = e.context.getCompletelyVisibleViewRangeAtScrollTop(i);
                e.setStates(t, s.CursorChangeReason.Explicit,
                    [a.CursorMoveCommands.findPositionInViewportIfOutside(
                        e.context, e.getPrimaryCursor(), o, n.select)])
              }
              e.scrollTo(i)
            }, t.prototype._computeDesiredScrollTop = function (e, t) {
              if (1 === t.unit) {
                var i = e.getCompletelyVisibleModelRange(), o = void 0;
                o = 1 === t.direction ? Math.max(1, i.startLineNumber - t.value)
                    : Math.min(e.model.getLineCount(),
                        i.startLineNumber + t.value);
                var r = e.convertModelPositionToViewPosition(
                    new n.Position(o, 1));
                return e.getVerticalOffsetForViewLine(r.lineNumber)
              }
              var s;
              s = 3 === t.unit ? e.config.pageSize * t.value : 4 === t.unit
                  ? Math.round(e.config.pageSize / 2) * t.value : t.value;
              var a = (1 === t.direction ? -1 : 1) * s;
              return e.getScrollTop() + a * e.config.lineHeight
            }, t
          }(b);
          e.EditorScrollImpl = L, e.EditorScroll = u.registerEditorCommand(
              new L), e.ScrollLineUp = u.registerEditorCommand(
              new (function (t) {
                function n() {
                  return t.call(this, {
                    id: "scrollLineUp",
                    precondition: null,
                    kbOpts: {
                      weight: C,
                      kbExpr: c.EditorContextKeys.textFocus,
                      primary: 2064,
                      mac: {primary: 267}
                    }
                  }) || this
                }

                return f(n, t), n.prototype.runCoreEditorCommand = function (t,
                    n) {
                  e.EditorScroll._runEditorScroll(t, n.source, {
                    direction: 1,
                    unit: 2,
                    value: 1,
                    revealCursor: !1,
                    select: !1
                  })
                }, n
              }(b))), e.ScrollPageUp = u.registerEditorCommand(
              new (function (t) {
                function n() {
                  return t.call(this, {
                    id: "scrollPageUp",
                    precondition: null,
                    kbOpts: {
                      weight: C,
                      kbExpr: c.EditorContextKeys.textFocus,
                      primary: 2059,
                      win: {primary: 523},
                      linux: {primary: 523}
                    }
                  }) || this
                }

                return f(n, t), n.prototype.runCoreEditorCommand = function (t,
                    n) {
                  e.EditorScroll._runEditorScroll(t, n.source, {
                    direction: 1,
                    unit: 3,
                    value: 1,
                    revealCursor: !1,
                    select: !1
                  })
                }, n
              }(b))), e.ScrollLineDown = u.registerEditorCommand(
              new (function (t) {
                function n() {
                  return t.call(this, {
                    id: "scrollLineDown",
                    precondition: null,
                    kbOpts: {
                      weight: C,
                      kbExpr: c.EditorContextKeys.textFocus,
                      primary: 2066,
                      mac: {primary: 268}
                    }
                  }) || this
                }

                return f(n, t), n.prototype.runCoreEditorCommand = function (t,
                    n) {
                  e.EditorScroll._runEditorScroll(t, n.source, {
                    direction: 2,
                    unit: 2,
                    value: 1,
                    revealCursor: !1,
                    select: !1
                  })
                }, n
              }(b))), e.ScrollPageDown = u.registerEditorCommand(
              new (function (t) {
                function n() {
                  return t.call(this, {
                    id: "scrollPageDown",
                    precondition: null,
                    kbOpts: {
                      weight: C,
                      kbExpr: c.EditorContextKeys.textFocus,
                      primary: 2060,
                      win: {primary: 524},
                      linux: {primary: 524}
                    }
                  }) || this
                }

                return f(n, t), n.prototype.runCoreEditorCommand = function (t,
                    n) {
                  e.EditorScroll._runEditorScroll(t, n.source, {
                    direction: 2,
                    unit: 3,
                    value: 1,
                    revealCursor: !1,
                    select: !1
                  })
                }, n
              }(b)));
          var x = function (e) {
            function t(t) {
              var n = e.call(this, t) || this;
              return n._inSelectionMode = t.inSelectionMode, n
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              e.context.model.pushStackElement(), e.setStates(t.source,
                  s.CursorChangeReason.Explicit,
                  [a.CursorMoveCommands.word(e.context, e.getPrimaryCursor(),
                      this._inSelectionMode, t.position)]), e.reveal(!0, 0)
            }, t
          }(b);
          e.WordSelect = u.registerEditorCommand(new x({
            inSelectionMode: !1,
            id: "_wordSelect",
            precondition: null
          })), e.WordSelectDrag = u.registerEditorCommand(new x({
            inSelectionMode: !0,
            id: "_wordSelectDrag",
            precondition: null
          })), e.LastCursorWordSelect = u.registerEditorCommand(
              new (function (e) {
                function t() {
                  return e.call(this,
                      {id: "lastCursorWordSelect", precondition: null}) || this
                }

                return f(t, e), t.prototype.runCoreEditorCommand = function (e,
                    t) {
                  var n = e.context;
                  if (!n.config.readOnly && !n.model.hasEditableRange()) {
                    var i = e.getLastAddedCursorIndex(),
                        o = e.getAll().slice(0);
                    o[i] = a.CursorMoveCommands.word(n, o[i], !0,
                        t.position), n.model.pushStackElement(), e.setStates(
                        t.source, s.CursorChangeReason.Explicit, o)
                  }
                }, t
              }(b)));
          var N = function (e) {
            function t(t) {
              var n = e.call(this, t) || this;
              return n._inSelectionMode = t.inSelectionMode, n
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              e.context.model.pushStackElement(), e.setStates(t.source,
                  s.CursorChangeReason.Explicit,
                  [a.CursorMoveCommands.line(e.context, e.getPrimaryCursor(),
                      this._inSelectionMode, t.position,
                      t.viewPosition)]), e.reveal(!1, 0)
            }, t
          }(b);
          e.LineSelect = u.registerEditorCommand(new N({
            inSelectionMode: !1,
            id: "_lineSelect",
            precondition: null
          })), e.LineSelectDrag = u.registerEditorCommand(new N({
            inSelectionMode: !0,
            id: "_lineSelectDrag",
            precondition: null
          }));
          var M = function (e) {
            function t(t) {
              var n = e.call(this, t) || this;
              return n._inSelectionMode = t.inSelectionMode, n
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              var n = e.context;
              if (!n.config.readOnly && !n.model.hasEditableRange()) {
                var i = e.getLastAddedCursorIndex(), o = e.getAll().slice(0);
                o[i] = a.CursorMoveCommands.line(e.context, o[i],
                    this._inSelectionMode, t.position,
                    t.viewPosition), e.context.model.pushStackElement(), e.setStates(
                    t.source, s.CursorChangeReason.Explicit, o)
              }
            }, t
          }(b);
          e.LastCursorLineSelect = u.registerEditorCommand(new M({
            inSelectionMode: !1,
            id: "lastCursorLineSelect",
            precondition: null
          })), e.LastCursorLineSelectDrag = u.registerEditorCommand(new M({
            inSelectionMode: !0,
            id: "lastCursorLineSelectDrag",
            precondition: null
          })), e.ExpandLineSelection = u.registerEditorCommand(
              new (function (e) {
                function t() {
                  return e.call(this, {
                    id: "expandLineSelection",
                    precondition: null,
                    kbOpts: {
                      weight: C,
                      kbExpr: c.EditorContextKeys.textFocus,
                      primary: 2087
                    }
                  }) || this
                }

                return f(t, e), t.prototype.runCoreEditorCommand = function (e,
                    t) {
                  e.context.model.pushStackElement(), e.setStates(t.source,
                      s.CursorChangeReason.Explicit,
                      r.CursorState.ensureInEditableRange(e.context,
                          a.CursorMoveCommands.expandLineSelection(e.context,
                              e.getAll()))), e.reveal(!0, 0)
                }, t
              }(b))), e.CancelSelection = u.registerEditorCommand(
              new (function (e) {
                function t() {
                  return e.call(this, {
                    id: "cancelSelection",
                    precondition: c.EditorContextKeys.hasNonEmptySelection,
                    kbOpts: {
                      weight: C,
                      kbExpr: c.EditorContextKeys.textFocus,
                      primary: 9,
                      secondary: [1033]
                    }
                  }) || this
                }

                return f(t, e), t.prototype.runCoreEditorCommand = function (e,
                    t) {
                  e.context.model.pushStackElement(), e.setStates(t.source,
                      s.CursorChangeReason.Explicit,
                      [a.CursorMoveCommands.cancelSelection(e.context,
                          e.getPrimaryCursor())]), e.reveal(!0, 0)
                }, t
              }(b))), e.RemoveSecondaryCursors = u.registerEditorCommand(
              new (function (e) {
                function t() {
                  return e.call(this, {
                    id: "removeSecondaryCursors",
                    precondition: c.EditorContextKeys.hasMultipleSelections,
                    kbOpts: {
                      weight: C + 1,
                      kbExpr: c.EditorContextKeys.textFocus,
                      primary: 9,
                      secondary: [1033]
                    }
                  }) || this
                }

                return f(t, e), t.prototype.runCoreEditorCommand = function (e,
                    t) {
                  e.context.model.pushStackElement(), e.setStates(t.source,
                      s.CursorChangeReason.Explicit,
                      [e.getPrimaryCursor()]), e.reveal(!0, 0)
                }, t
              }(b))), e.RevealLine = u.registerEditorCommand(new (function (e) {
            function t() {
              return e.call(this, {
                id: "revealLine",
                precondition: null,
                description: S.description
              }) || this
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              var n = t, o = n.lineNumber + 1;
              o < 1 && (o = 1);
              var r = e.context.model.getLineCount();
              o > r && (o = r);
              var s = new i.Range(o, 1, o, e.context.model.getLineMaxColumn(o)),
                  a = 0;
              if (n.at) {
                switch (n.at) {
                  case S.RawAtArgument.Top:
                    a = 3;
                    break;
                  case S.RawAtArgument.Center:
                    a = 1;
                    break;
                  case S.RawAtArgument.Bottom:
                    a = 4
                }
              }
              var u = e.context.convertModelRangeToViewRange(s);
              e.revealRange(!1, u, a)
            }, t
          }(b))), e.SelectAll = u.registerEditorCommand(new (function (e) {
            function t() {
              return e.call(this, {id: "selectAll", precondition: null}) || this
            }

            return f(t, e), t.prototype.runCoreEditorCommand = function (e, t) {
              e.context.model.pushStackElement(), e.setStates(t.source,
                  s.CursorChangeReason.Explicit,
                  [a.CursorMoveCommands.selectAll(e.context,
                      e.getPrimaryCursor())])
            }, t
          }(b)))
        }(E = t.CoreNavigationCommands || (t.CoreNavigationCommands = {}));
        !function (e) {
          e.LineBreakInsert = u.registerEditorCommand(new (function (e) {
            function t() {
              return e.call(this, {
                id: "lineBreakInsert",
                precondition: c.EditorContextKeys.writable,
                kbOpts: {
                  weight: C,
                  kbExpr: c.EditorContextKeys.textFocus,
                  primary: null,
                  mac: {primary: 301}
                }
              }) || this
            }

            return f(t, e), t.prototype.runEditorCommand = function (e, t, n) {
              t.pushUndoStop(), t.executeCommands(this.id,
                  v.TypeOperations.lineBreakInsert(t._getCursorConfiguration(),
                      t.getModel(), t.getSelections()))
            }, t
          }(u.EditorCommand))), e.Outdent = u.registerEditorCommand(
              new (function (e) {
                function t() {
                  return e.call(this, {
                    id: "outdent",
                    precondition: c.EditorContextKeys.writable,
                    kbOpts: {
                      weight: C,
                      kbExpr: p.ContextKeyExpr.and(
                          c.EditorContextKeys.textFocus,
                          c.EditorContextKeys.tabDoesNotMoveFocus),
                      primary: 1026
                    }
                  }) || this
                }

                return f(t, e), t.prototype.runEditorCommand = function (e, t,
                    n) {
                  t.pushUndoStop(), t.executeCommands(this.id,
                      v.TypeOperations.outdent(t._getCursorConfiguration(),
                          t.getModel(), t.getSelections())), t.pushUndoStop()
                }, t
              }(u.EditorCommand))), e.Tab = u.registerEditorCommand(
              new (function (e) {
                function t() {
                  return e.call(this, {
                    id: "tab",
                    precondition: c.EditorContextKeys.writable,
                    kbOpts: {
                      weight: C,
                      kbExpr: p.ContextKeyExpr.and(
                          c.EditorContextKeys.textFocus,
                          c.EditorContextKeys.tabDoesNotMoveFocus),
                      primary: 2
                    }
                  }) || this
                }

                return f(t, e), t.prototype.runEditorCommand = function (e, t,
                    n) {
                  t.pushUndoStop(), t.executeCommands(this.id,
                      v.TypeOperations.tab(t._getCursorConfiguration(),
                          t.getModel(), t.getSelections())), t.pushUndoStop()
                }, t
              }(u.EditorCommand))), e.DeleteLeft = u.registerEditorCommand(
              new (function (e) {
                function t() {
                  return e.call(this, {
                    id: "deleteLeft",
                    precondition: c.EditorContextKeys.writable,
                    kbOpts: {
                      weight: C,
                      kbExpr: c.EditorContextKeys.textFocus,
                      primary: 1,
                      secondary: [1025],
                      mac: {primary: 1, secondary: [1025, 294, 257]}
                    }
                  }) || this
                }

                return f(t, e), t.prototype.runEditorCommand = function (e, t,
                    n) {
                  var i = _.DeleteOperations.deleteLeft(
                      t._getCursorConfiguration(), t.getModel(),
                      t.getSelections()), o = i[0], r = i[1];
                  o && t.pushUndoStop(), t.executeCommands(this.id, r)
                }, t
              }(u.EditorCommand))), e.DeleteRight = u.registerEditorCommand(
              new (function (e) {
                function t() {
                  return e.call(this, {
                    id: "deleteRight",
                    precondition: c.EditorContextKeys.writable,
                    kbOpts: {
                      weight: C,
                      kbExpr: c.EditorContextKeys.textFocus,
                      primary: 20,
                      mac: {primary: 20, secondary: [290, 276]}
                    }
                  }) || this
                }

                return f(t, e), t.prototype.runEditorCommand = function (e, t,
                    n) {
                  var i = _.DeleteOperations.deleteRight(
                      t._getCursorConfiguration(), t.getModel(),
                      t.getSelections()), o = i[0], r = i[1];
                  o && t.pushUndoStop(), t.executeCommands(this.id, r)
                }, t
              }(u.EditorCommand)))
        }(t.CoreEditingCommands || (t.CoreEditingCommands = {}));
        var L;
        !function (e) {
          function t(e) {
            return e.get(h.ICodeEditorService).getFocusedCodeEditor()
          }

          function n(e) {
            var t = e.get(m.IEditorService),
                n = t.getActiveEditor && t.getActiveEditor();
            return h.getCodeEditor(n)
          }

          function i(e) {
            d.KeybindingsRegistry.registerCommandAndKeybindingRule(
                e.toCommandAndKeybindingRule(C))
          }

          function o(e) {
            i(new s("default:" + e, e)), i(new s(e, e))
          }

          var r = function (e) {
            function i(t) {
              var n = e.call(this, t) || this;
              return n._editorHandler = t.editorHandler, n._inputHandler = t.inputHandler, n
            }

            return f(i, e), i.prototype.runCommand = function (e, i) {
              var o = t(e);
              if (o && o.isFocused()) {
                return this._runEditorHandler(o, i);
              }
              var r = document.activeElement;
              if (!(r && ["input", "textarea"].indexOf(r.tagName.toLowerCase())
                  >= 0)) {
                var s = n(e);
                return s ? (s.focus(), this._runEditorHandler(s, i)) : void 0
              }
              document.execCommand(this._inputHandler)
            }, i.prototype._runEditorHandler = function (e, t) {
              var n = this._editorHandler;
              "string" == typeof n ? e.trigger("keyboard", n, t) : ((t = t
                  || {}).source = "keyboard", n.runEditorCommand(null, e, t))
            }, i
          }(u.Command);
          i(new r({
            editorHandler: E.SelectAll,
            inputHandler: "selectAll",
            id: "editor.action.selectAll",
            precondition: null,
            kbOpts: {weight: C, kbExpr: null, primary: 2079}
          })), i(new r({
            editorHandler: y.Undo,
            inputHandler: "undo",
            id: y.Undo,
            precondition: c.EditorContextKeys.writable,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 2104
            }
          })), i(new r({
            editorHandler: y.Redo,
            inputHandler: "redo",
            id: y.Redo,
            precondition: c.EditorContextKeys.writable,
            kbOpts: {
              weight: C,
              kbExpr: c.EditorContextKeys.textFocus,
              primary: 2103,
              secondary: [3128],
              mac: {primary: 3128}
            }
          }));
          var s = function (e) {
            function n(t, n) {
              var i = e.call(this, {id: t, precondition: null}) || this;
              return i._handlerId = n, i
            }

            return f(n, e), n.prototype.runCommand = function (e, n) {
              var i = t(e);
              i && i.trigger("keyboard", this._handlerId, n)
            }, n
          }(u.Command);
          o(y.Type), o(y.ReplacePreviousChar), o(y.CompositionStart), o(
              y.CompositionEnd), o(y.Paste), o(y.Cut)
        }(L || (L = {}))
      }), define(d[449], h([1, 0, 12, 20, 134]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e(e, t, n, i, o) {
        this.configuration = e, this.viewModel = t, this._execCoreEditorCommandFunc = n, this.outgoingEvents = i, this.commandService = o
      }

      return e.prototype._execMouseCommand = function (e, t) {
        t.source = "mouse", this._execCoreEditorCommandFunc(e, t)
      }, e.prototype.paste = function (e, t, n) {
        this.commandService.executeCommand(i.Handler.Paste,
            {text: t, pasteOnNewLine: n})
      }, e.prototype.type = function (e, t) {
        this.commandService.executeCommand(i.Handler.Type, {text: t})
      }, e.prototype.replacePreviousChar = function (e, t, n) {
        this.commandService.executeCommand(i.Handler.ReplacePreviousChar,
            {text: t, replaceCharCnt: n})
      }, e.prototype.compositionStart = function (e) {
        this.commandService.executeCommand(i.Handler.CompositionStart, {})
      }, e.prototype.compositionEnd = function (e) {
        this.commandService.executeCommand(i.Handler.CompositionEnd, {})
      }, e.prototype.cut = function (e) {
        this.commandService.executeCommand(i.Handler.Cut, {})
      }, e.prototype._validateViewColumn = function (e) {
        var t = this.viewModel.getLineMinColumn(e.lineNumber);
        return e.column < t ? new n.Position(e.lineNumber, t) : e
      }, e.prototype._hasMulticursorModifier = function (e) {
        switch (this.configuration.editor.multiCursorModifier) {
          case"altKey":
            return e.altKey;
          case"ctrlKey":
            return e.ctrlKey;
          case"metaKey":
            return e.metaKey
        }
        return !1
      }, e.prototype._hasNonMulticursorModifier = function (e) {
        switch (this.configuration.editor.multiCursorModifier) {
          case"altKey":
            return e.ctrlKey || e.metaKey;
          case"ctrlKey":
            return e.altKey || e.metaKey;
          case"metaKey":
            return e.ctrlKey || e.altKey
        }
        return !1
      }, e.prototype.dispatchMouse = function (e) {
        e.startedOnLineNumbers ? this._hasMulticursorModifier(e)
                ? e.inSelectionMode ? this.lastCursorLineSelect(e.position)
                    : this.createCursor(e.position, !0) : e.inSelectionMode
                    ? this.lineSelectDrag(e.position) : this.lineSelect(e.position)
            : e.mouseDownCount >= 4 ? this.selectAll() : 3 === e.mouseDownCount
                ? this._hasMulticursorModifier(e) ? e.inSelectionMode
                    ? this.lastCursorLineSelectDrag(e.position)
                    : this.lastCursorLineSelect(e.position) : e.inSelectionMode
                    ? this.lineSelectDrag(e.position) : this.lineSelect(e.position)
                : 2 === e.mouseDownCount ? this._hasMulticursorModifier(e)
                    ? this.lastCursorWordSelect(e.position) : e.inSelectionMode
                        ? this.wordSelectDrag(e.position) : this.wordSelect(
                            e.position) : this._hasMulticursorModifier(e)
                    ? this._hasNonMulticursorModifier(e) || (e.shiftKey
                    ? this.columnSelect(e.position, e.mouseColumn)
                    : e.inSelectionMode ? this.lastCursorMoveToSelect(e.position)
                        : this.createCursor(e.position, !1)) : e.inSelectionMode
                        ? this.moveToSelect(e.position) : this.moveTo(e.position)
      }, e.prototype._usualArgs = function (e) {
        return e = this._validateViewColumn(
            e), {position: this.convertViewToModelPosition(e), viewPosition: e}
      }, e.prototype.moveTo = function (e) {
        this._execMouseCommand(o.CoreNavigationCommands.MoveTo,
            this._usualArgs(e))
      }, e.prototype.moveToSelect = function (e) {
        this._execMouseCommand(o.CoreNavigationCommands.MoveToSelect,
            this._usualArgs(e))
      }, e.prototype.columnSelect = function (e, t) {
        e = this._validateViewColumn(e), this._execMouseCommand(
            o.CoreNavigationCommands.ColumnSelect, {
              position: this.convertViewToModelPosition(e),
              viewPosition: e,
              mouseColumn: t
            })
      }, e.prototype.createCursor = function (e, t) {
        e = this._validateViewColumn(e), this._execMouseCommand(
            o.CoreNavigationCommands.CreateCursor, {
              position: this.convertViewToModelPosition(e),
              viewPosition: e,
              wholeLine: t
            })
      }, e.prototype.lastCursorMoveToSelect = function (e) {
        this._execMouseCommand(o.CoreNavigationCommands.LastCursorMoveToSelect,
            this._usualArgs(e))
      }, e.prototype.wordSelect = function (e) {
        this._execMouseCommand(o.CoreNavigationCommands.WordSelect,
            this._usualArgs(e))
      }, e.prototype.wordSelectDrag = function (e) {
        this._execMouseCommand(o.CoreNavigationCommands.WordSelectDrag,
            this._usualArgs(e))
      }, e.prototype.lastCursorWordSelect = function (e) {
        this._execMouseCommand(o.CoreNavigationCommands.LastCursorWordSelect,
            this._usualArgs(e))
      }, e.prototype.lineSelect = function (e) {
        this._execMouseCommand(o.CoreNavigationCommands.LineSelect,
            this._usualArgs(e))
      }, e.prototype.lineSelectDrag = function (e) {
        this._execMouseCommand(o.CoreNavigationCommands.LineSelectDrag,
            this._usualArgs(e))
      }, e.prototype.lastCursorLineSelect = function (e) {
        this._execMouseCommand(o.CoreNavigationCommands.LastCursorLineSelect,
            this._usualArgs(e))
      }, e.prototype.lastCursorLineSelectDrag = function (e) {
        this._execMouseCommand(
            o.CoreNavigationCommands.LastCursorLineSelectDrag,
            this._usualArgs(e))
      }, e.prototype.selectAll = function () {
        this._execMouseCommand(o.CoreNavigationCommands.SelectAll, {})
      }, e.prototype.convertViewToModelPosition = function (e) {
        return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(
            e)
      }, e.prototype.emitKeyDown = function (e) {
        this.outgoingEvents.emitKeyDown(e)
      }, e.prototype.emitKeyUp = function (e) {
        this.outgoingEvents.emitKeyUp(e)
      }, e.prototype.emitContextMenu = function (e) {
        this.outgoingEvents.emitContextMenu(e)
      }, e.prototype.emitMouseMove = function (e) {
        this.outgoingEvents.emitMouseMove(e)
      }, e.prototype.emitMouseLeave = function (e) {
        this.outgoingEvents.emitMouseLeave(e)
      }, e.prototype.emitMouseUp = function (e) {
        this.outgoingEvents.emitMouseUp(e)
      }, e.prototype.emitMouseDown = function (e) {
        this.outgoingEvents.emitMouseDown(e)
      }, e.prototype.emitMouseDrag = function (e) {
        this.outgoingEvents.emitMouseDrag(e)
      }, e.prototype.emitMouseDrop = function (e) {
        this.outgoingEvents.emitMouseDrop(e)
      }, e
    }();
    t.ViewController = r
  }), define(d[450], h([1, 0, 342, 21, 13, 241]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function (e) {
      function t(t, n) {
        var i = e.call(this, n) || this;
        return i.left = t, i
      }

      return f(t, e), t.prototype.run = function (e, t) {
        for (var n = [], i = t.getSelections(), o = 0; o < i.length;
            o++) {
          n.push(new r.MoveCaretCommand(i[o], this.left));
        }
        t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop()
      }, t
    }(o.EditorAction);
    (function (e) {
      function t() {
        return e.call(this, !0, {
          id: "editor.action.moveCarretLeftAction",
          label: n.localize(0, null),
          alias: "Move Caret Left",
          precondition: i.EditorContextKeys.writable
        }) || this
      }

      f(t, e), t = v([o.editorAction], t)
    })(s), function (e) {
      function t() {
        return e.call(this, !1, {
          id: "editor.action.moveCarretRightAction",
          label: n.localize(1, null),
          alias: "Move Caret Right",
          precondition: i.EditorContextKeys.writable
        }) || this
      }

      f(t, e), t = v([o.editorAction], t)
    }(s)
  }), define(d[451], h([1, 0, 343, 2, 21, 13, 73]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        !function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.transposeLetters",
              label: n.localize(0, null),
              alias: "Transpose Letters",
              precondition: o.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: o.EditorContextKeys.textFocus,
                primary: 0,
                mac: {primary: 306}
              }
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            for (var n = t.getModel(), o = [], r = t.getSelections(), a = 0;
                a < r.length; a++) {
              var u = r[a];
              if (u.isEmpty()) {
                var l = u.startLineNumber, c = u.startColumn;
                if (1 !== c && c !== n.getLineMaxColumn(l)) {
                  var d = n.getLineContent(l), h = d.charAt(c - 2),
                      p = d.charAt(c - 1), f = new i.Range(l, c - 1, l, c + 1);
                  o.push(new s.ReplaceCommand(f, p + h))
                }
              }
            }
            o.length > 0 && (t.pushUndoStop(), t.executeCommands(this.id,
                o), t.pushUndoStop())
          }, t = v([r.editorAction], t)
        }(r.EditorAction)
      }), define(d[452], h([1, 0, 344, 28, 15, 42, 13, 154, 21, 314]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";

        function l(e) {
          return e ? s.editorAction : function () {
          }
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var c = "9_cutcopypaste",
            d = o.isNative || document.queryCommandSupported("cut"),
            h = o.isNative || document.queryCommandSupported("copy"),
            p = h && !i.isEdgeOrIE,
            g = o.isNative || !i.isChrome && document.queryCommandSupported(
                "paste"), m = function (e) {
              function t(t, n) {
                var i = e.call(this, n) || this;
                return i.browserCommand = t, i
              }

              return f(t, e), t.prototype.runCommand = function (e, t) {
                var n = e.get(r.ICodeEditorService).getFocusedCodeEditor();
                n && n.isFocused() ? n.trigger("keyboard", this.id, t)
                    : document.execCommand(this.browserCommand)
              }, t.prototype.run = function (e, t) {
                t.focus(), document.execCommand(this.browserCommand)
              }, t
            }(s.EditorAction);
        (function (e) {
          function t() {
            var t = {
              kbExpr: u.EditorContextKeys.textFocus,
              primary: 2102,
              win: {primary: 2102, secondary: [1044]}
            };
            return o.isNative || (t = null), e.call(this, "cut", {
              id: "editor.action.clipboardCutAction",
              label: n.localize(0, null),
              alias: "Cut",
              precondition: u.EditorContextKeys.writable,
              kbOpts: t,
              menuOpts: {group: c, order: 1}
            }) || this
          }

          f(t, e), t.prototype.run = function (t, n) {
            !n.getConfiguration().emptySelectionClipboard
            && n.getSelection().isEmpty() || e.prototype.run.call(this, t, n)
          }, t = v([l(d)], t)
        })(m), function (e) {
          function t() {
            var t = {
              kbExpr: u.EditorContextKeys.textFocus,
              primary: 2081,
              win: {primary: 2081, secondary: [2067]}
            };
            return o.isNative || (t = null), e.call(this, "copy", {
              id: "editor.action.clipboardCopyAction",
              label: n.localize(1, null),
              alias: "Copy",
              precondition: null,
              kbOpts: t,
              menuOpts: {group: c, order: 2}
            }) || this
          }

          f(t, e), t.prototype.run = function (t, n) {
            !n.getConfiguration().emptySelectionClipboard
            && n.getSelection().isEmpty() || e.prototype.run.call(this, t, n)
          }, t = v([l(h)], t)
        }(m), function (e) {
          function t() {
            var t = {
              kbExpr: u.EditorContextKeys.textFocus,
              primary: 2100,
              win: {primary: 2100, secondary: [1043]}
            };
            return o.isNative || (t = null), e.call(this, "paste", {
              id: "editor.action.clipboardPasteAction",
              label: n.localize(2, null),
              alias: "Paste",
              precondition: u.EditorContextKeys.writable,
              kbOpts: t,
              menuOpts: {group: c, order: 3}
            }) || this
          }

          f(t, e), t = v([l(g)], t)
        }(m), function (e) {
          function t() {
            return e.call(this, "copy", {
              id: "editor.action.clipboardCopyWithSyntaxHighlightingAction",
              label: n.localize(3, null),
              alias: "Copy With Syntax Highlighting",
              precondition: null,
              kbOpts: {kbExpr: u.EditorContextKeys.textFocus, primary: null}
            }) || this
          }

          f(t, e), t.prototype.run = function (t, n) {
            !n.getConfiguration().emptySelectionClipboard
            && n.getSelection().isEmpty()
            || (a.CopyOptions.forceCopyWithSyntaxHighlighting = !0, e.prototype.run.call(
                this, t, n), a.CopyOptions.forceCopyWithSyntaxHighlighting = !1)
          }, t = v([l(p)], t)
        }(m)
      }), define(d[453], h([1, 0, 10, 33, 24, 7, 13, 17, 56, 18]),
      function (e, t, n, i, o, r, s, a, u, l) {
        "use strict";

        function c(e) {
          var t = [], o = a.CodeLensProviderRegistry.ordered(e),
              s = o.map(function (i) {
                return l.asWinJsPromise(function (t) {
                  return i.provideCodeLenses(e, t)
                }).then(function (e) {
                  if (Array.isArray(e)) {
                    for (var n = 0, o = e; n < o.length;
                        n++) {
                      var r = o[n];
                      t.push({symbol: r, provider: i})
                    }
                  }
                }, n.onUnexpectedExternalError)
              });
          return r.TPromise.join(s).then(function () {
            return i.mergeSort(t, function (e, t) {
              return e.symbol.range.startLineNumber
              < t.symbol.range.startLineNumber ? -1
                  : e.symbol.range.startLineNumber
                  > t.symbol.range.startLineNumber ? 1 : o.indexOf(e.provider)
                  < o.indexOf(t.provider) ? -1 : o.indexOf(e.provider)
                  > o.indexOf(t.provider) ? 1 : e.symbol.range.startColumn
                  < t.symbol.range.startColumn ? -1 : e.symbol.range.startColumn
                  > t.symbol.range.startColumn ? 1 : 0
            })
          })
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.getCodeLensData = c, s.CommonEditorRegistry.registerLanguageCommand(
            "_executeCodeLensProvider", function (e, t) {
              var i = t.resource;
              if (!(i instanceof o.default)) {
                throw n.illegalArgument();
              }
              var r = e.get(u.IModelService).getModel(i);
              if (!r) {
                throw n.illegalArgument();
              }
              return c(r).then(function (e) {
                return e.map(function (e) {
                  return e.symbol
                })
              })
            })
      }), define(d[454], h([1, 0, 345, 40, 21, 13, 189, 250]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var u = function (e) {
          function t(t, n) {
            var i = e.call(this, n) || this;
            return i._type = t, i
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = t.getModel();
            if (n) {
              for (var i = [], o = t.getSelections(), r = n.getOptions(), s = 0;
                  s < o.length; s++) {
                i.push(
                    new a.LineCommentCommand(o[s], r.tabSize, this._type));
              }
              t.pushUndoStop(), t.executeCommands(this.id, i), t.pushUndoStop()
            }
          }, t
        }(r.EditorAction);
        (function (e) {
          function t() {
            return e.call(this, 0, {
              id: "editor.action.commentLine",
              label: n.localize(0, null),
              alias: "Toggle Line Comment",
              precondition: o.EditorContextKeys.writable,
              kbOpts: {kbExpr: o.EditorContextKeys.textFocus, primary: 2133}
            }) || this
          }

          f(t, e), t = v([r.editorAction], t)
        })(u), function (e) {
          function t() {
            return e.call(this, 1, {
              id: "editor.action.addCommentLine",
              label: n.localize(1, null),
              alias: "Add Line Comment",
              precondition: o.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: o.EditorContextKeys.textFocus,
                primary: i.KeyChord(2089, 2081)
              }
            }) || this
          }

          f(t, e), t = v([r.editorAction], t)
        }(u), function (e) {
          function t() {
            return e.call(this, 2, {
              id: "editor.action.removeCommentLine",
              label: n.localize(2, null),
              alias: "Remove Line Comment",
              precondition: o.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: o.EditorContextKeys.textFocus,
                primary: i.KeyChord(2089, 2099)
              }
            }) || this
          }

          f(t, e), t = v([r.editorAction], t)
        }(u), function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.blockComment",
              label: n.localize(3, null),
              alias: "Toggle Block Comment",
              precondition: o.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: o.EditorContextKeys.textFocus,
                primary: 1567,
                linux: {primary: 3103}
              }
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            for (var n = [], i = t.getSelections(), o = 0; o < i.length;
                o++) {
              n.push(new s.BlockCommentCommand(i[o]));
            }
            t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop()
          }, t = v([r.editorAction], t)
        }(r.EditorAction)
      }), define(d[455],
      h([1, 0, 346, 3, 7, 4, 75, 69, 46, 19, 85, 21, 13, 25, 30]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var m = function () {
          function e(e, t, n, i, o, r) {
            var s = this;
            this._contextMenuService = t, this._contextViewService = n, this._contextKeyService = i, this._keybindingService = o, this._menuService = r, this._toDispose = [], this._contextMenuIsBeingShownCount = 0, this._editor = e, this._toDispose.push(
                this._editor.onContextMenu(function (e) {
                  return s._onContextMenu(e)
                })), this._toDispose.push(
                this._editor.onDidScrollChange(function (e) {
                  s._contextMenuIsBeingShownCount > 0
                  && s._contextViewService.hideContextView()
                })), this._toDispose.push(this._editor.onKeyDown(function (e) {
              58 === e.keyCode
              && (e.preventDefault(), e.stopPropagation(), s.showContextMenu())
            }))
          }

          return t = e, e.get = function (e) {
            return e.getContribution(t.ID)
          }, e.prototype._onContextMenu = function (e) {
            if (!this._editor.getConfiguration().contribInfo.contextmenu) {
              return this._editor.focus(), void (e.target.position
                  && !this._editor.getSelection().containsPosition(
                      e.target.position) && this._editor.setPosition(
                      e.target.position));
            }
            if (e.target.type !== p.MouseTargetType.OVERLAY_WIDGET
                && (e.event.preventDefault(), e.target.type
                === p.MouseTargetType.CONTENT_TEXT || e.target.type
                === p.MouseTargetType.CONTENT_EMPTY || e.target.type
                === p.MouseTargetType.TEXTAREA)) {
              this._editor.focus(), e.target.position
              && !this._editor.getSelection().containsPosition(
                  e.target.position) && this._editor.setPosition(
                  e.target.position);
              var t;
              e.target.type !== p.MouseTargetType.TEXTAREA && (t = {
                x: e.event.posx,
                y: e.event.posy + 1
              }), this.showContextMenu(t)
            }
          }, e.prototype.showContextMenu = function (e) {
            if (this._editor.getConfiguration().contribInfo.contextmenu) {
              if (this._contextMenuService) {
                var t = this._getMenuActions();
                t.length > 0 && this._doShowContextMenu(t, e)
              } else {
                this._editor.focus()
              }
            }
          }, e.prototype._getMenuActions = function () {
            var e = [], t = this._menuService.createMenu(c.MenuId.EditorContext,
                    this._contextKeyService),
                n = t.getActions({arg: this._editor.getModel().uri});
            t.dispose();
            for (var i = 0, o = n; i < o.length; i++) {
              var r = o[i][1];
              e.push.apply(e, r), e.push(new s.Separator)
            }
            return e.pop(), e
          }, e.prototype._doShowContextMenu = function (e, t) {
            var n = this;
            void 0 === t && (t = null);
            var i = this._editor.getConfiguration().contribInfo.hover;
            this._editor.updateOptions({hover: !1});
            var a = t;
            if (!a) {
              this._editor.revealPosition(
                  this._editor.getPosition()), this._editor.render();
              var u = this._editor.getScrolledVisiblePosition(
                      this._editor.getPosition()),
                  l = r.getDomNodePagePosition(this._editor.getDomNode()),
                  c = l.left + u.left, d = l.top + u.top + u.height;
              a = {x: c, y: d}
            }
            this._contextMenuIsBeingShownCount++, this._contextMenuService.showContextMenu(
                {
                  getAnchor: function () {
                    return a
                  }, getActions: function () {
                    return o.TPromise.as(e)
                  }, getActionItem: function (e) {
                    var t = n._keybindingFor(e);
                    if (t) {
                      return new s.ActionItem(e, e,
                          {label: !0, keybinding: t.getLabel(), isMenu: !0});
                    }
                    var i = e;
                    return "function" == typeof i.getActionItem
                        ? i.getActionItem() : new s.ActionItem(e, e,
                            {icon: !0, label: !0, isMenu: !0})
                  }, getKeyBinding: function (e) {
                    return n._keybindingFor(e)
                  }, onHide: function (e) {
                    n._contextMenuIsBeingShownCount--, n._editor.focus(), n._editor.updateOptions(
                        {hover: i})
                  }
                })
          }, e.prototype._keybindingFor = function (e) {
            return this._keybindingService.lookupKeybinding(e.id)
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.dispose = function () {
            this._contextMenuIsBeingShownCount > 0
            && this._contextViewService.hideContextView(), this._toDispose = i.dispose(
                this._toDispose)
          }, e.ID = "editor.contrib.contextmenu", e = t = v(
              [g.editorContribution, y(1, a.IContextMenuService),
                y(2, a.IContextViewService), y(3, l.IContextKeyService),
                y(4, u.IKeybindingService), y(5, c.IMenuService)], e);
          var t
        }();
        t.ContextMenuController = m;
        !function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.showContextMenu",
              label: n.localize(0, null),
              alias: "Show Editor Context Menu",
              precondition: null,
              kbOpts: {kbExpr: d.EditorContextKeys.textFocus, primary: 1092}
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            m.get(t).showContextMenu()
          }, t = v([h.editorAction], t)
        }(h.EditorAction)
      }), define(d[456], h([1, 0, 13, 3, 21, 30]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      function e(e) {
        this.selections = e
      }

      return e.prototype.equals = function (e) {
        var t = this.selections.length;
        if (t !== e.selections.length) {
          return !1;
        }
        for (var n = 0; n < t; n++) {
          if (!this.selections[n].equalsSelection(
              e.selections[n])) {
            return !1;
          }
        }
        return !0
      }, e
    }(), a = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n._editor = t, n._isCursorUndo = !1, n._undoStack = [], n._prevState = n._readState(), n._register(
            t.onDidChangeModel(function (e) {
              n._undoStack = [], n._prevState = null
            })), n._register(t.onDidChangeModelContent(function (e) {
          n._undoStack = [], n._prevState = null
        })), n._register(t.onDidChangeCursorSelection(function (e) {
          !n._isCursorUndo && n._prevState && (n._undoStack.push(
              n._prevState), n._undoStack.length > 50
          && (n._undoStack = n._undoStack.splice(0,
              n._undoStack.length - 50))), n._prevState = n._readState()
        })), n
      }

      return f(t, e), n = t, t.get = function (e) {
        return e.getContribution(n.ID)
      }, t.prototype._readState = function () {
        return this._editor.getModel() ? new s(this._editor.getSelections())
            : null
      }, t.prototype.getId = function () {
        return n.ID
      }, t.prototype.cursorUndo = function () {
        for (var e = new s(this._editor.getSelections());
            this._undoStack.length > 0;) {
          var t = this._undoStack.pop();
          if (!t.equals(
              e)) {
            return this._isCursorUndo = !0, this._editor.setSelections(
                t.selections), void (this._isCursorUndo = !1)
          }
        }
      }, t.ID = "editor.contrib.cursorUndoController", t = n = v(
          [r.editorContribution], t);
      var n
    }(i.Disposable);
    t.CursorUndoController = a;
    var u = function (e) {
      function t() {
        return e.call(this, {
          id: "cursorUndo",
          precondition: null,
          kbOpts: {kbExpr: o.EditorContextKeys.textFocus, primary: 2099}
        }) || this
      }

      return f(t, e), t.prototype.runEditorCommand = function (e, t, n) {
        a.get(t).cursorUndo()
      }, t = v([n.editorCommand], t)
    }(n.EditorCommand);
    t.CursorUndo = u
  }), define(d[176],
      h([1, 0, 348, 434, 40, 3, 19, 2, 22, 9, 20, 13, 121, 253, 252, 17, 18, 54,
        21, 76, 34]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, C, b, w, S) {
        "use strict";

        function E(e, t) {
          var n = L.get(e);
          if (!n) {
            return null;
          }
          var i, o, r = n.getState(), s = r.wholeWord, a = r.matchCase;
          if (!e.isFocused() && r.isRevealed && r.searchString.length
              > 0) {
            i = r.searchString;
          } else {
            var l = e.getSelection();
            if (l.startLineNumber !== l.endLineNumber
                && !t.allowMultiline) {
              return null;
            }
            if (l.isEmpty()) {
              var c = e.getModel().getWordAtPosition(l.getStartPosition());
              if (!c) {
                return null;
              }
              i = c.word, o = new u.Selection(l.startLineNumber, c.startColumn,
                  l.startLineNumber, c.endColumn)
            } else {
              i = e.getModel().getValueInRange(l).replace(/\r\n/g, "\n");
            }
            t.changeFindSearchString && n.setSearchString(i)
          }
          return t.highlightFindOptions && n.highlightFindOptions(), {
            searchText: i,
            matchCase: a,
            wholeWord: s,
            currentMatch: o
          }
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        !function (e) {
          e[e.NoFocusChange = 0] = "NoFocusChange", e[e.FocusFindInput = 1] = "FocusFindInput", e[e.FocusReplaceInput = 2] = "FocusReplaceInput"
        }(t.FindStartFocusAction
            || (t.FindStartFocusAction = {})), t.CONTEXT_FIND_WIDGET_VISIBLE = new s.RawContextKey(
            "findWidgetVisible",
            !1), t.CONTEXT_FIND_WIDGET_NOT_VISIBLE = t.CONTEXT_FIND_WIDGET_VISIBLE.toNegated(), t.CONTEXT_FIND_INPUT_FOCUSSED = new s.RawContextKey(
            "findInputFocussed", !1);
        var L = function (e) {
          function n(n, o, r) {
            var s = e.call(this) || this;
            return s._editor = n, s._findWidgetVisible = t.CONTEXT_FIND_WIDGET_VISIBLE.bindTo(
                o), s._storageService = r, s._updateHistoryDelayer = new _.Delayer(
                500), s._currentHistoryNavigator = new i.HistoryNavigator, s._state = s._register(
                new p.FindReplaceState), s.loadQueryState(), s._register(
                s._state.addChangeListener(function (e) {
                  return s._onStateChanged(e)
                })), s._model = null, s._register(
                s._editor.onDidChangeModel(function () {
                  var e = s._editor.getModel() && s._state.isRevealed;
                  s.disposeModel(), s._state.change({
                    searchScope: null,
                    matchCase: s._storageService.getBoolean("editor.matchCase",
                        w.StorageScope.WORKSPACE, !1),
                    wholeWord: s._storageService.getBoolean("editor.wholeWord",
                        w.StorageScope.WORKSPACE, !1),
                    isRegex: s._storageService.getBoolean("editor.isRegex",
                        w.StorageScope.WORKSPACE, !1)
                  }, !1), e && s._start({
                    forceRevealReplace: !1,
                    seedSearchStringFromSelection: !1,
                    shouldFocus: 0,
                    shouldAnimate: !1
                  })
                })), s
          }

          return f(n, e), n.get = function (e) {
            return e.getContribution(n.ID)
          }, n.prototype.dispose = function () {
            this.disposeModel(), e.prototype.dispose.call(this)
          }, n.prototype.disposeModel = function () {
            this._model && (this._model.dispose(), this._model = null)
          }, n.prototype.getId = function () {
            return n.ID
          }, n.prototype._onStateChanged = function (e) {
            this.saveQueryState(e), e.updateHistory && e.searchString
            && this._delayedUpdateHistory(), e.isRevealed
            && (this._state.isRevealed ? this._findWidgetVisible.set(!0)
                : (this._findWidgetVisible.reset(), this.disposeModel()))
          }, n.prototype.saveQueryState = function (e) {
            e.isRegex && void 0 !== this._state.isRegex
            && this._storageService.store("editor.isRegex", this._state.isRegex,
                w.StorageScope.WORKSPACE), e.wholeWord && void 0
            !== this._state.wholeWord && this._storageService.store(
                "editor.wholeWord", this._state.wholeWord,
                w.StorageScope.WORKSPACE), e.matchCase && void 0
            !== this._state.matchCase && this._storageService.store(
                "editor.matchCase", this._state.matchCase,
                w.StorageScope.WORKSPACE)
          }, n.prototype.loadQueryState = function () {
            this._state.change({
              matchCase: this._storageService.getBoolean("editor.matchCase",
                  w.StorageScope.WORKSPACE, this._state.matchCase),
              wholeWord: this._storageService.getBoolean("editor.wholeWord",
                  w.StorageScope.WORKSPACE, this._state.wholeWord),
              isRegex: this._storageService.getBoolean("editor.isRegex",
                  w.StorageScope.WORKSPACE, this._state.isRegex)
            }, !1)
          }, n.prototype._delayedUpdateHistory = function () {
            this._updateHistoryDelayer.trigger(this._updateHistory.bind(this))
          }, n.prototype._updateHistory = function () {
            this._state.searchString && this._currentHistoryNavigator.add(
                this._state.searchString)
          }, n.prototype.getState = function () {
            return this._state
          }, n.prototype.getHistory = function () {
            return this._currentHistoryNavigator
          }, n.prototype.closeFindWidget = function () {
            this._state.change({isRevealed: !1, searchScope: null},
                !1), this._editor.focus()
          }, n.prototype.toggleCaseSensitive = function () {
            this._state.change({matchCase: !this._state.matchCase}, !1)
          }, n.prototype.toggleWholeWords = function () {
            this._state.change({wholeWord: !this._state.wholeWord}, !1)
          }, n.prototype.toggleRegex = function () {
            this._state.change({isRegex: !this._state.isRegex}, !1)
          }, n.prototype.toggleSearchScope = function () {
            if (this._state.searchScope) {
              this._state.change({searchScope: null},
                  !0);
            } else {
              var e = this._editor.getSelection();
              1 === e.endColumn && e.endLineNumber > e.startLineNumber
              && (e = e.setEndPosition(e.endLineNumber - 1, 1)), e.isEmpty()
              || this._state.change({searchScope: e}, !0)
            }
          }, n.prototype.setSearchString = function (e) {
            this._state.change({searchString: e}, !1)
          }, n.prototype.highlightFindOptions = function () {
          }, n.prototype._start = function (e) {
            if (this.disposeModel(), this._editor.getModel()) {
              var t = {isRevealed: !0};
              if (e.seedSearchStringFromSelection
                  && this._editor.getConfiguration().contribInfo.find.seedSearchStringFromSelection) {
                var n = g.getSelectionSearchString(this._editor);
                n && (this._state.isRegex
                    ? t.searchString = l.escapeRegExpCharacters(n)
                    : t.searchString = n)
              }
              e.forceRevealReplace ? t.isReplaceRevealed = !0
                  : this._findWidgetVisible.get()
                  || (t.isReplaceRevealed = !1), this._state.change(t,
                  !1), this._model
              || (this._model = new h.FindModelBoundToEditorModel(this._editor,
                  this._state))
            }
          }, n.prototype.start = function (e) {
            this._start(e)
          }, n.prototype.moveToNextMatch = function () {
            return !!this._model && (this._model.moveToNextMatch(), !0)
          }, n.prototype.moveToPrevMatch = function () {
            return !!this._model && (this._model.moveToPrevMatch(), !0)
          }, n.prototype.replace = function () {
            return !!this._model && (this._model.replace(), !0)
          }, n.prototype.replaceAll = function () {
            return !!this._model && (this._model.replaceAll(), !0)
          }, n.prototype.selectAllMatches = function () {
            return !!this._model
                && (this._model.selectAllMatches(), this._editor.focus(), !0)
          }, n.prototype.showPreviousFindTerm = function () {
            var e = this._currentHistoryNavigator.previous();
            return e && this._state.change({searchString: e}, !1, !1), !0
          }, n.prototype.showNextFindTerm = function () {
            var e = this._currentHistoryNavigator.next();
            return e && this._state.change({searchString: e}, !1, !1), !0
          }, n.ID = "editor.contrib.findController", n = v(
              [y(1, s.IContextKeyService), y(2, w.IStorageService)], n)
        }(r.Disposable);
        t.CommonFindController = L;
        var x = function (e) {
          function t() {
            return e.call(this, {
              id: h.FIND_IDS.StartFindAction,
              label: n.localize(0, null),
              alias: "Find",
              precondition: null,
              kbOpts: {
                kbExpr: null,
                primary: 2084,
                mac: {primary: 2084, secondary: [2083]}
              }
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = L.get(t);
            n && n.start({
              forceRevealReplace: !1,
              seedSearchStringFromSelection: !0,
              shouldFocus: 1,
              shouldAnimate: !0
            })
          }, t = v([d.editorAction], t)
        }(d.EditorAction);
        t.StartFindAction = x;
        var N = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = L.get(t);
            n && !this._run(n) && (n.start({
              forceRevealReplace: !1,
              seedSearchStringFromSelection: 0
                  === n.getState().searchString.length,
              shouldFocus: 0,
              shouldAnimate: !0
            }), this._run(n))
          }, t
        }(d.EditorAction);
        t.MatchFindAction = N;
        var M = function (e) {
          function t() {
            return e.call(this, {
              id: h.FIND_IDS.NextMatchFindAction,
              label: n.localize(1, null),
              alias: "Find Next",
              precondition: null,
              kbOpts: {
                kbExpr: b.EditorContextKeys.focus,
                primary: 61,
                mac: {primary: 2085, secondary: [61]}
              }
            }) || this
          }

          return f(t, e), t.prototype._run = function (e) {
            return e.moveToNextMatch()
          }, t = v([d.editorAction], t)
        }(N);
        t.NextMatchFindAction = M;
        var T = function (e) {
          function t() {
            return e.call(this, {
              id: h.FIND_IDS.PreviousMatchFindAction,
              label: n.localize(2, null),
              alias: "Find Previous",
              precondition: null,
              kbOpts: {
                kbExpr: b.EditorContextKeys.focus,
                primary: 1085,
                mac: {primary: 3109, secondary: [1085]}
              }
            }) || this
          }

          return f(t, e), t.prototype._run = function (e) {
            return e.moveToPrevMatch()
          }, t = v([d.editorAction], t)
        }(N);
        t.PreviousMatchFindAction = T;
        var k = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = L.get(t);
            if (n) {
              var i = g.getSelectionSearchString(t);
              i && n.setSearchString(i), this._run(n) || (n.start({
                forceRevealReplace: !1,
                seedSearchStringFromSelection: !1,
                shouldFocus: 0,
                shouldAnimate: !0
              }), this._run(n))
            }
          }, t
        }(d.EditorAction);
        t.SelectionMatchFindAction = k;
        var I = function (e) {
          function t() {
            return e.call(this, {
              id: h.FIND_IDS.NextSelectionMatchFindAction,
              label: n.localize(3, null),
              alias: "Find Next Selection",
              precondition: null,
              kbOpts: {kbExpr: b.EditorContextKeys.focus, primary: 2109}
            }) || this
          }

          return f(t, e), t.prototype._run = function (e) {
            return e.moveToNextMatch()
          }, t = v([d.editorAction], t)
        }(k);
        t.NextSelectionMatchFindAction = I;
        var D = function (e) {
          function t() {
            return e.call(this, {
              id: h.FIND_IDS.PreviousSelectionMatchFindAction,
              label: n.localize(4, null),
              alias: "Find Previous Selection",
              precondition: null,
              kbOpts: {kbExpr: b.EditorContextKeys.focus, primary: 3133}
            }) || this
          }

          return f(t, e), t.prototype._run = function (e) {
            return e.moveToPrevMatch()
          }, t = v([d.editorAction], t)
        }(k);
        t.PreviousSelectionMatchFindAction = D;
        var O = function (e) {
          function t() {
            return e.call(this, {
              id: h.FIND_IDS.StartFindReplaceAction,
              label: n.localize(5, null),
              alias: "Replace",
              precondition: null,
              kbOpts: {kbExpr: null, primary: 2086, mac: {primary: 2596}}
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            if (!t.getConfiguration().readOnly) {
              var n = L.get(t), i = t.getSelection(),
                  o = !i.isEmpty() && i.startLineNumber === i.endLineNumber,
                  r = n.getState().searchString || o ? 2 : 1;
              n && n.start({
                forceRevealReplace: !0,
                seedSearchStringFromSelection: o,
                shouldFocus: r,
                shouldAnimate: !0
              })
            }
          }, t = v([d.editorAction], t)
        }(d.EditorAction);
        t.StartFindReplaceAction = O;
        var R = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype._getNextMatch = function (e) {
            var t = E(e, {
              changeFindSearchString: !0,
              allowMultiline: !0,
              highlightFindOptions: !0
            });
            if (!t) {
              return null;
            }
            if (t.currentMatch) {
              return t.currentMatch;
            }
            var n = e.getSelections(), i = n[n.length - 1],
                o = e.getModel().findNextMatch(t.searchText, i.getEndPosition(),
                    !1, t.matchCase,
                    t.wholeWord ? e.getConfiguration().wordSeparators : null,
                    !1);
            return o ? new u.Selection(o.range.startLineNumber,
                    o.range.startColumn, o.range.endLineNumber, o.range.endColumn)
                : null
          }, t
        }(d.EditorAction);
        t.SelectNextFindMatchAction = R;
        var P = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype._getPreviousMatch = function (e) {
            var t = E(e, {
              changeFindSearchString: !0,
              allowMultiline: !0,
              highlightFindOptions: !0
            });
            if (!t) {
              return null;
            }
            if (t.currentMatch) {
              return t.currentMatch;
            }
            var n = e.getSelections(), i = n[n.length - 1],
                o = e.getModel().findPreviousMatch(t.searchText,
                    i.getStartPosition(), !1, t.matchCase,
                    t.wholeWord ? e.getConfiguration().wordSeparators : null,
                    !1);
            return o ? new u.Selection(o.range.startLineNumber,
                    o.range.startColumn, o.range.endLineNumber, o.range.endColumn)
                : null
          }, t
        }(d.EditorAction);
        t.SelectPreviousFindMatchAction = P;
        var A = function (e) {
          function t() {
            return e.call(this, {
              id: h.FIND_IDS.AddSelectionToNextFindMatchAction,
              label: n.localize(6, null),
              alias: "Add Selection To Next Find Match",
              precondition: null,
              kbOpts: {kbExpr: b.EditorContextKeys.focus, primary: 2082}
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = t.getSelections();
            if (n.length > 1) {
              var i = t.getModel(), o = L.get(t);
              if (!o) {
                return;
              }
              var r = o.getState().matchCase, s = !0,
                  a = i.getValueInRange(n[0]);
              r || (a = a.toLowerCase());
              for (var l = 1, c = n.length; l < c; l++) {
                if ((p = n[l]).isEmpty()) {
                  s = !1;
                  break
                }
                var d = i.getValueInRange(p);
                if (r || (d = d.toLowerCase()), a !== d) {
                  s = !1;
                  break
                }
              }
              if (!s) {
                for (var h = [], l = 0, c = n.length; l < c; l++) {
                  var p = n[l];
                  if (p.isEmpty()) {
                    var f = t.getModel().getWordAtPosition(
                        p.getStartPosition());
                    if (f) {
                      h[l] = new u.Selection(p.startLineNumber, f.startColumn,
                          p.startLineNumber, f.endColumn);
                      continue
                    }
                  }
                  h[l] = p
                }
                return void t.setSelections(h)
              }
            }
            var g = this._getNextMatch(t);
            g && (t.setSelections(
                n.concat(g)), t.revealRangeInCenterIfOutsideViewport(g))
          }, t = v([d.editorAction], t)
        }(R);
        t.AddSelectionToNextFindMatchAction = A;
        var F = function (e) {
          function t() {
            return e.call(this, {
              id: h.FIND_IDS.AddSelectionToPreviousFindMatchAction,
              label: n.localize(7, null),
              alias: "Add Selection To Previous Find Match",
              precondition: null
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = this._getPreviousMatch(t);
            if (n) {
              var i = t.getSelections();
              t.setSelections(
                  i.concat(n)), t.revealRangeInCenterIfOutsideViewport(n)
            }
          }, t = v([d.editorAction], t)
        }(P);
        t.AddSelectionToPreviousFindMatchAction = F;
        var W = function (e) {
          function t() {
            return e.call(this, {
              id: h.FIND_IDS.MoveSelectionToNextFindMatchAction,
              label: n.localize(8, null),
              alias: "Move Last Selection To Next Find Match",
              precondition: null,
              kbOpts: {
                kbExpr: b.EditorContextKeys.focus,
                primary: o.KeyChord(2089, 2082)
              }
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = this._getNextMatch(t);
            if (n) {
              var i = t.getSelections();
              t.setSelections(i.slice(0, i.length - 1).concat(
                  n)), t.revealRangeInCenterIfOutsideViewport(n)
            }
          }, t = v([d.editorAction], t)
        }(R);
        t.MoveSelectionToNextFindMatchAction = W;
        var B = function (e) {
          function t() {
            return e.call(this, {
              id: h.FIND_IDS.MoveSelectionToPreviousFindMatchAction,
              label: n.localize(9, null),
              alias: "Move Last Selection To Previous Find Match",
              precondition: null
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = this._getPreviousMatch(t);
            if (n) {
              var i = t.getSelections();
              t.setSelections(i.slice(0, i.length - 1).concat(
                  n)), t.revealRangeInCenterIfOutsideViewport(n)
            }
          }, t = v([d.editorAction], t)
        }(P);
        t.MoveSelectionToPreviousFindMatchAction = B;
        var V = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = L.get(t);
            if (!n) {
              return null;
            }
            var i = null, o = n.getState();
            if (o.isRevealed && o.isRegex && o.searchString.length
                > 0) {
              i = t.getModel().findMatches(o.searchString, !0, o.isRegex,
                  o.matchCase,
                  o.wholeWord ? t.getConfiguration().wordSeparators : null,
                  !1).map(function (e) {
                return e.range
              });
            } else {
              var r = E(t, {
                changeFindSearchString: !0,
                allowMultiline: !0,
                highlightFindOptions: !0
              });
              if (!r) {
                return;
              }
              i = t.getModel().findMatches(r.searchText, !0, !1, r.matchCase,
                  r.wholeWord ? t.getConfiguration().wordSeparators : null,
                  !1).map(function (e) {
                return e.range
              })
            }
            if (i.length > 0) {
              for (var s = t.getSelection(), a = 0, l = i.length; a < l; a++) {
                var c = i[a];
                if (c.intersectRanges(s)) {
                  i.splice(a, 1), i.unshift(c);
                  break
                }
              }
              t.setSelections(i.map(function (e) {
                return new u.Selection(e.startLineNumber, e.startColumn,
                    e.endLineNumber, e.endColumn)
              }))
            }
          }, t
        }(d.EditorAction);
        t.AbstractSelectHighlightsAction = V;
        var H = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.selectHighlights",
              label: n.localize(10, null),
              alias: "Select All Occurrences of Find Match",
              precondition: null,
              kbOpts: {kbExpr: b.EditorContextKeys.focus, primary: 3114}
            }) || this
          }

          return f(t, e), t = v([d.editorAction], t)
        }(V);
        t.SelectHighlightsAction = H;
        var z = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.changeAll",
              label: n.localize(11, null),
              alias: "Change All Occurrences",
              precondition: b.EditorContextKeys.writable,
              kbOpts: {kbExpr: b.EditorContextKeys.textFocus, primary: 2108},
              menuOpts: {group: "1_modification", order: 1.2}
            }) || this
          }

          return f(t, e), t = v([d.editorAction], t)
        }(V);
        t.CompatChangeAll = z;
        var K = function () {
          function e(e, t, n, i) {
            this.searchText = t, this.matchCase = n, this.wordSeparators = i
          }

          return e.softEquals = function (e, t) {
            return !e && !t || !(!e || !t) && (e.searchText === t.searchText
                && e.matchCase === t.matchCase && e.wordSeparators
                === t.wordSeparators)
          }, e
        }(), U = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n.editor = t, n._isEnabled = t.getConfiguration().contribInfo.selectionHighlight, n.decorations = [], n.updateSoon = n._register(
                new _.RunOnceScheduler(function () {
                  return n._update()
                }, 300)), n.state = null, n._register(
                t.onDidChangeConfiguration(function (e) {
                  n._isEnabled = t.getConfiguration().contribInfo.selectionHighlight
                })), n._register(t.onDidChangeCursorSelection(function (e) {
              n._isEnabled && (e.selection.isEmpty() ? e.reason
                  === C.CursorChangeReason.Explicit ? (!n.state
                  || n.state.lastWordUnderCursor
                  && n.state.lastWordUnderCursor.containsPosition(
                      e.selection.getStartPosition()) || n._setState(
                      null), n.updateSoon.schedule()) : n._setState(null)
                  : n._update())
            })), n._register(t.onDidChangeModel(function (e) {
              n._setState(null)
            })), n._register(
                L.get(t).getState().addChangeListener(function (e) {
                  n._update()
                })), n
          }

          return f(t, e), n = t, t.prototype.getId = function () {
            return n.ID
          }, t.prototype._update = function () {
            this._setState(n._createState(this._isEnabled, this.editor))
          }, t._createState = function (e, t) {
            var n = t.getModel();
            if (!n) {
              return null;
            }
            var i = t.getConfiguration(), o = null;
            if (!e) {
              return null;
            }
            var r = E(t, {
              changeFindSearchString: !1,
              allowMultiline: !1,
              highlightFindOptions: !1
            });
            if (!r) {
              return null;
            }
            var s = m.DocumentHighlightProviderRegistry.has(n);
            if (r.currentMatch) {
              if (s) {
                return null;
              }
              if (!i.contribInfo.occurrencesHighlight) {
                return null;
              }
              o = r.currentMatch
            }
            if (/^[ \t]+$/.test(r.searchText)) {
              return null;
            }
            if (r.searchText.length > 200) {
              return null;
            }
            var a = L.get(t);
            if (!a) {
              return null;
            }
            var u = a.getState().matchCase, l = t.getSelections(),
                c = n.getValueInRange(l[0]);
            u || (c = c.toLowerCase());
            for (var d = 1; d < l.length; d++) {
              var h = n.getValueInRange(l[d]);
              if (u || (h = h.toLowerCase()), c !== h) {
                return null
              }
            }
            return new K(o, r.searchText, r.matchCase,
                r.wholeWord ? t.getConfiguration().wordSeparators : null)
          }, t.prototype._setState = function (e) {
            if (K.softEquals(this.state,
                e)) {
              this.state = e;
            } else if (this.state = e, this.state) {
              var t = this.editor.getModel(),
                  i = m.DocumentHighlightProviderRegistry.has(t),
                  o = t.findMatches(this.state.searchText, !0, !1,
                      this.state.matchCase, this.state.wordSeparators, !1).map(
                      function (e) {
                        return e.range
                      });
              o.sort(a.Range.compareRangesUsingStarts);
              var r = this.editor.getSelections();
              r.sort(a.Range.compareRangesUsingStarts);
              for (var s = [], u = 0, l = 0, c = o.length, d = r.length;
                  u < c;) {
                var h = o[u];
                if (l >= d) {
                  s.push(h), u++;
                } else {
                  var p = a.Range.compareRangesUsingStarts(h, r[l]);
                  p < 0 ? (s.push(h), u++) : p > 0 ? l++ : (u++, l++)
                }
              }
              var f = s.map(function (e) {
                return {
                  range: e,
                  options: i ? n._SELECTION_HIGHLIGHT
                      : n._SELECTION_HIGHLIGHT_OVERVIEW
                }
              });
              this.decorations = this.editor.deltaDecorations(this.decorations,
                  f)
            } else {
              this.decorations.length > 0
              && (this.decorations = this.editor.deltaDecorations(
                  this.decorations, []))
            }
          }, t.prototype.dispose = function () {
            this._setState(null), e.prototype.dispose.call(this)
          }, t.ID = "editor.contrib.selectionHighlighter", t._SELECTION_HIGHLIGHT_OVERVIEW = S.ModelDecorationOptions.register(
              {
                stickiness: c.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
                className: "selectionHighlight",
                overviewRuler: {
                  color: "#A0A0A0",
                  darkColor: "#A0A0A0",
                  position: c.OverviewRulerLane.Center
                }
              }), t._SELECTION_HIGHLIGHT = S.ModelDecorationOptions.register({
            stickiness: c.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
            className: "selectionHighlight"
          }), t = n = v([d.commonEditorContribution], t);
          var n
        }(r.Disposable);
        t.SelectionHighlighter = U;
        var j = function (e) {
          function i() {
            return e.call(this, {
              id: h.FIND_IDS.ShowNextFindTermAction,
              label: n.localize(12, null),
              alias: "Show Next Find Term",
              precondition: t.CONTEXT_FIND_WIDGET_VISIBLE,
              kbOpts: {
                weight: d.CommonEditorRegistry.commandWeight(5),
                kbExpr: s.ContextKeyExpr.and(t.CONTEXT_FIND_INPUT_FOCUSSED,
                    b.EditorContextKeys.focus),
                primary: h.ShowNextFindTermKeybinding.primary,
                mac: h.ShowNextFindTermKeybinding.mac,
                win: h.ShowNextFindTermKeybinding.win,
                linux: h.ShowNextFindTermKeybinding.linux
              }
            }) || this
          }

          return f(i, e), i.prototype._run = function (e) {
            return e.showNextFindTerm()
          }, i = v([d.editorAction], i)
        }(N);
        t.ShowNextFindTermAction = j;
        var q = function (e) {
          function i() {
            return e.call(this, {
              id: h.FIND_IDS.ShowPreviousFindTermAction,
              label: n.localize(13, null),
              alias: "Find Show Previous Find Term",
              precondition: t.CONTEXT_FIND_WIDGET_VISIBLE,
              kbOpts: {
                weight: d.CommonEditorRegistry.commandWeight(5),
                kbExpr: s.ContextKeyExpr.and(t.CONTEXT_FIND_INPUT_FOCUSSED,
                    b.EditorContextKeys.focus),
                primary: h.ShowPreviousFindTermKeybinding.primary,
                mac: h.ShowPreviousFindTermKeybinding.mac,
                win: h.ShowPreviousFindTermKeybinding.win,
                linux: h.ShowPreviousFindTermKeybinding.linux
              }
            }) || this
          }

          return f(i, e), i.prototype._run = function (e) {
            return e.showPreviousFindTerm()
          }, i = v([d.editorAction], i)
        }(N);
        t.ShpwPreviousFindTermAction = q;
        var G = d.EditorCommand.bindToContribution(L.get);
        d.CommonEditorRegistry.registerEditorCommand(new G({
          id: h.FIND_IDS.CloseFindWidgetCommand,
          precondition: t.CONTEXT_FIND_WIDGET_VISIBLE,
          handler: function (e) {
            return e.closeFindWidget()
          },
          kbOpts: {
            weight: d.CommonEditorRegistry.commandWeight(5),
            kbExpr: b.EditorContextKeys.focus,
            primary: 9,
            secondary: [1033]
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new G({
          id: h.FIND_IDS.ToggleCaseSensitiveCommand,
          precondition: null,
          handler: function (e) {
            return e.toggleCaseSensitive()
          },
          kbOpts: {
            weight: d.CommonEditorRegistry.commandWeight(5),
            kbExpr: b.EditorContextKeys.focus,
            primary: h.ToggleCaseSensitiveKeybinding.primary,
            mac: h.ToggleCaseSensitiveKeybinding.mac,
            win: h.ToggleCaseSensitiveKeybinding.win,
            linux: h.ToggleCaseSensitiveKeybinding.linux
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new G({
          id: h.FIND_IDS.ToggleWholeWordCommand,
          precondition: null,
          handler: function (e) {
            return e.toggleWholeWords()
          },
          kbOpts: {
            weight: d.CommonEditorRegistry.commandWeight(5),
            kbExpr: b.EditorContextKeys.focus,
            primary: h.ToggleWholeWordKeybinding.primary,
            mac: h.ToggleWholeWordKeybinding.mac,
            win: h.ToggleWholeWordKeybinding.win,
            linux: h.ToggleWholeWordKeybinding.linux
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new G({
          id: h.FIND_IDS.ToggleRegexCommand,
          precondition: null,
          handler: function (e) {
            return e.toggleRegex()
          },
          kbOpts: {
            weight: d.CommonEditorRegistry.commandWeight(5),
            kbExpr: b.EditorContextKeys.focus,
            primary: h.ToggleRegexKeybinding.primary,
            mac: h.ToggleRegexKeybinding.mac,
            win: h.ToggleRegexKeybinding.win,
            linux: h.ToggleRegexKeybinding.linux
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new G({
          id: h.FIND_IDS.ToggleSearchScopeCommand,
          precondition: null,
          handler: function (e) {
            return e.toggleSearchScope()
          },
          kbOpts: {
            weight: d.CommonEditorRegistry.commandWeight(5),
            kbExpr: b.EditorContextKeys.focus,
            primary: h.ToggleSearchScopeKeybinding.primary,
            mac: h.ToggleSearchScopeKeybinding.mac,
            win: h.ToggleSearchScopeKeybinding.win,
            linux: h.ToggleSearchScopeKeybinding.linux
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new G({
          id: h.FIND_IDS.ReplaceOneAction,
          precondition: t.CONTEXT_FIND_WIDGET_VISIBLE,
          handler: function (e) {
            return e.replace()
          },
          kbOpts: {
            weight: d.CommonEditorRegistry.commandWeight(5),
            kbExpr: b.EditorContextKeys.focus,
            primary: 3094
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new G({
          id: h.FIND_IDS.ReplaceAllAction,
          precondition: t.CONTEXT_FIND_WIDGET_VISIBLE,
          handler: function (e) {
            return e.replaceAll()
          },
          kbOpts: {
            weight: d.CommonEditorRegistry.commandWeight(5),
            kbExpr: b.EditorContextKeys.focus,
            primary: 2563
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new G({
          id: h.FIND_IDS.SelectAllMatchesAction,
          precondition: t.CONTEXT_FIND_WIDGET_VISIBLE,
          handler: function (e) {
            return e.selectAllMatches()
          },
          kbOpts: {
            weight: d.CommonEditorRegistry.commandWeight(5),
            kbExpr: b.EditorContextKeys.focus,
            primary: 515
          }
        }))
      }), define(d[458],
      h([1, 0, 349, 29, 4, 18, 40, 3, 2, 13, 25, 30, 333, 257, 256, 21, 328]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m) {
        "use strict";

        function _(e) {
          if (!i.isUndefined(e)) {
            if (!i.isObject(e)) {
              return !1;
            }
            var t = e;
            if (!i.isUndefined(t.levels) && !i.isNumber(t.levels)) {
              return !1;
            }
            if (!i.isUndefined(t.direction) && !i.isString(
                t.direction)) {
              return !1
            }
          }
          return !0
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var y = function () {
          function e(e) {
            var t = this;
            this.editor = e, this._isEnabled = this.editor.getConfiguration().contribInfo.folding, this._showFoldingControls = this.editor.getConfiguration().contribInfo.showFoldingControls, this.globalToDispose = [], this.localToDispose = [], this.decorations = [], this.computeToken = 0, this.globalToDispose.push(
                this.editor.onDidChangeModel(function () {
                  return t.onModelChanged()
                })), this.globalToDispose.push(
                this.editor.onDidChangeConfiguration(function (e) {
                  var n = t._isEnabled;
                  t._isEnabled = t.editor.getConfiguration().contribInfo.folding, n
                  !== t._isEnabled && t.onModelChanged();
                  var i = t._showFoldingControls;
                  t._showFoldingControls = t.editor.getConfiguration().contribInfo.showFoldingControls, i
                  !== t._showFoldingControls && t.updateHideFoldIconClass()
                })), this.onModelChanged()
          }

          return t = e, e.get = function (e) {
            return e.getContribution(g.ID)
          }, e.prototype.getId = function () {
            return g.ID
          }, e.prototype.dispose = function () {
            this.cleanState(), this.globalToDispose = a.dispose(
                this.globalToDispose)
          }, e.prototype.updateHideFoldIconClass = function () {
            var e = this.editor.getDomNode();
            e && o.toggleClass(e, "alwaysShowFoldIcons",
                "always" === this._showFoldingControls)
          }, e.prototype.saveViewState = function () {
            var e = this.editor.getModel();
            if (!e) {
              return {};
            }
            var t = [];
            return this.decorations.forEach(function (n) {
              if (n.isCollapsed) {
                var i = n.getDecorationRange(e);
                i && t.push({
                  startLineNumber: i.startLineNumber,
                  endLineNumber: i.endLineNumber,
                  indent: n.indent,
                  isCollapsed: !0
                })
              }
            }), {collapsedRegions: t, lineCount: e.getLineCount()}
          }, e.prototype.restoreViewState = function (e) {
            var t = this.editor.getModel();
            t && this._isEnabled && e && Array.isArray(e.collapsedRegions) && 0
            !== e.collapsedRegions.length && e.lineCount === t.getLineCount()
            && (this.cleanState(), this.applyRegions(
                e.collapsedRegions), this.onModelChanged())
          }, e.prototype.cleanState = function () {
            this.localToDispose = a.dispose(this.localToDispose)
          }, e.prototype.applyRegions = function (e) {
            var n = this, i = this.editor.getModel();
            if (i) {
              var o = !1;
              e = p.limitByIndent(e, t.MAX_FOLDING_REGIONS).sort(
                  function (e, t) {
                    return e.startLineNumber - t.startLineNumber
                  }), this.editor.changeDecorations(function (t) {
                for (var r = [], s = 0, a = 0;
                    a < n.decorations.length && s < e.length;) {
                  var u = (c = n.decorations[a]).getDecorationRange(i);
                  if (u) {
                    for (; s < e.length && u.startLineNumber
                    > e[s].startLineNumber;) {
                      d = e[s];
                      o = o || d.isCollapsed, r.push(
                          new h.CollapsibleRegion(d, i, t)), s++
                    }
                    if (s < e.length) {
                      var l = e[s];
                      u.startLineNumber < l.startLineNumber ? (o = o
                              || c.isCollapsed, c.dispose(t), a++)
                          : u.startLineNumber === l.startLineNumber
                          && (!c.isCollapsed || c.startLineNumber
                          === l.startLineNumber && c.endLineNumber
                          === l.endLineNumber
                          || (o = !0), l.isCollapsed = c.isCollapsed, c.update(
                              l, i, t), r.push(c), a++, s++)
                    }
                  } else {
                    o = o || c.isCollapsed, c.dispose(t), a++
                  }
                }
                for (; a < n.decorations.length;) {
                  var c = n.decorations[a];
                  o = o || c.isCollapsed, c.dispose(t), a++
                }
                for (; s < e.length;) {
                  var d = e[s];
                  o = o || d.isCollapsed, r.push(
                      new h.CollapsibleRegion(d, i, t)), s++
                }
                n.decorations = r
              }), o && this.updateHiddenAreas()
            }
          }, e.prototype.onModelChanged = function () {
            var e = this;
            this.cleanState(), this.updateHideFoldIconClass();
            var t = this.editor.getModel();
            this._isEnabled && t
            && (this.computeAndApplyCollapsibleRegions(), this.contentChangedScheduler = new r.RunOnceScheduler(
                function () {
                  return e.computeAndApplyCollapsibleRegions()
                }, 200), this.cursorChangedScheduler = new r.RunOnceScheduler(
                function () {
                  return e.revealCursor()
                }, 200), this.localToDispose.push(
                this.contentChangedScheduler), this.localToDispose.push(
                this.cursorChangedScheduler), this.localToDispose.push(
                this.editor.onDidChangeModelContent(function (t) {
                  return e.contentChangedScheduler.schedule()
                })), this.localToDispose.push(
                this.editor.onDidChangeCursorPosition(function (t) {
                  e._isEnabled && e.cursorChangedScheduler.schedule()
                })), this.localToDispose.push(
                this.editor.onMouseDown(function (t) {
                  return e.onEditorMouseDown(t)
                })), this.localToDispose.push(
                this.editor.onMouseUp(function (t) {
                  return e.onEditorMouseUp(t)
                })), this.localToDispose.push({
              dispose: function () {
                return e.disposeDecorations()
              }
            }))
          }, e.prototype.computeAndApplyCollapsibleRegions = function () {
            var e = this.editor.getModel();
            this.applyRegions(e ? p.computeRanges(e) : [])
          }, e.prototype.disposeDecorations = function () {
            var e = this;
            this.editor.changeDecorations(function (t) {
              e.decorations.forEach(function (e) {
                return e.dispose(t)
              })
            }), this.decorations = [], this.editor.setHiddenAreas([])
          }, e.prototype.revealCursor = function () {
            var e = this, t = this.editor.getModel();
            if (t) {
              var n = !1, i = this.editor.getSelections();
              this.editor.changeDecorations(function (o) {
                return e.decorations.forEach(function (e) {
                  if (e.isCollapsed) {
                    var r = e.getDecorationRange(t);
                    if (r) {
                      for (var s = 0, a = i; s < a.length; s++) {
                        var u = a[s];
                        if (r.startLineNumber < u.selectionStartLineNumber
                            && u.selectionStartLineNumber <= r.endLineNumber) {
                          e.setCollapsed(!1, o), n = !0;
                          break
                        }
                      }
                    }
                  }
                })
              }), n && this.updateHiddenAreas(
                  this.editor.getPosition().lineNumber)
            }
          }, e.prototype.onEditorMouseDown = function (e) {
            if (this.mouseDownInfo = null, 0 !== this.decorations.length) {
              var t = e.target.range;
              if (t && e.event.leftButton) {
                var n = this.editor.getModel(), i = !1;
                switch (e.target.type) {
                  case c.MouseTargetType.GUTTER_LINE_DECORATIONS:
                    i = !0;
                    break;
                  case c.MouseTargetType.CONTENT_EMPTY:
                  case c.MouseTargetType.CONTENT_TEXT:
                    if (t.startColumn === n.getLineMaxColumn(
                        t.startLineNumber)) {
                      break;
                    }
                    return;
                  default:
                    return
                }
                this.mouseDownInfo = {
                  lineNumber: t.startLineNumber,
                  iconClicked: i
                }
              }
            }
          }, e.prototype.onEditorMouseUp = function (e) {
            var t = this;
            if (this.mouseDownInfo) {
              var n = this.mouseDownInfo.lineNumber,
                  i = this.mouseDownInfo.iconClicked, o = e.target.range;
              if (o && o.startLineNumber === n) {
                var r = this.editor.getModel();
                if (i) {
                  if (e.target.type
                      !== c.MouseTargetType.GUTTER_LINE_DECORATIONS) {
                    return
                  }
                } else if (o.startColumn !== r.getLineMaxColumn(n)) {
                  return;
                }
                this.editor.changeDecorations(function (e) {
                  for (var o = 0; o < t.decorations.length; o++) {
                    var s = t.decorations[o], a = s.getDecorationRange(r);
                    if (a && a.startLineNumber === n) {
                      return void ((i
                          || s.isCollapsed) && (s.setCollapsed(!s.isCollapsed,
                          e), t.updateHiddenAreas(n)))
                    }
                  }
                })
              }
            }
          }, e.prototype.updateHiddenAreas = function (e) {
            var t = this.editor.getModel(), n = this.editor.getSelections(),
                i = !1, o = [];
            this.decorations.filter(function (e) {
              return e.isCollapsed
            }).forEach(function (e) {
              var r = e.getDecorationRange(t);
              r && (o.push(
                  new u.Range(r.startLineNumber + 1, 1, r.endLineNumber,
                      1)), n.forEach(function (e, o) {
                u.Range.containsPosition(r, e.getStartPosition())
                && (n[o] = e = e.setStartPosition(r.startLineNumber,
                    t.getLineMaxColumn(
                        r.startLineNumber)), i = !0), u.Range.containsPosition(
                    r, e.getEndPosition()) && (n[o] = e.setEndPosition(
                    r.startLineNumber,
                    t.getLineMaxColumn(r.startLineNumber)), i = !0)
              }))
            }), i && this.editor.setSelections(n), this.editor.setHiddenAreas(
                o), e && this.editor.revealPositionInCenterIfOutsideViewport(
                {lineNumber: e, column: 1})
          }, e.prototype.unfold = function (e) {
            var t = this, n = this.editor.getModel(), i = !1,
                o = this.editor.getSelections(), r = !1;
            o.forEach(function (s, a) {
              var u = h.getCollapsibleRegionsToUnfoldAtLine(t.decorations, n,
                  s.startLineNumber, e);
              if (u.length > 0 && (u.forEach(function (e, n) {
                t.editor.changeDecorations(function (t) {
                  e.setCollapsed(!1, t), i = !0
                })
              }), !h.doesLineBelongsToCollapsibleRegion(u[0].foldingRange,
                  s.startLineNumber))) {
                var l = u[0].startLineNumber,
                    c = n.getLineMaxColumn(u[0].startLineNumber);
                o[a] = s.setEndPosition(l, c).setStartPosition(l, c), r = !0
              }
            }), r && this.editor.setSelections(o), i && this.updateHiddenAreas(
                o[0].startLineNumber)
          }, e.prototype.fold = function (e, t) {
            var n = this, i = !1, o = this.editor.getSelections();
            o.forEach(function (o) {
              var r = o.startLineNumber;
              h.getCollapsibleRegionsToFoldAtLine(n.decorations,
                  n.editor.getModel(), r, e, t).forEach(function (e) {
                return n.editor.changeDecorations(function (t) {
                  e.setCollapsed(!0, t), i = !0
                })
              })
            }), i && this.updateHiddenAreas(o[0].startLineNumber)
          }, e.prototype.foldUnfoldRecursively = function (e) {
            var t = this, n = !1, i = this.editor.getModel(),
                o = this.editor.getSelections();
            o.forEach(function (o) {
              for (var r, s = o.startLineNumber, a = [], u = 0,
                  l = t.decorations.length; u < l; u++) {
                var c = t.decorations[u], d = c.getDecorationRange(i);
                if (d && (d.startLineNumber >= s && (d.endLineNumber <= r
                    || void 0 === r))) {
                  if (d.startLineNumber !== s && void 0 === r) {
                    return;
                  }
                  r = r || d.endLineNumber, a.push(c)
                }
              }
              a.length > 0 && a.forEach(function (i) {
                t.editor.changeDecorations(function (t) {
                  i.setCollapsed(e, t), n = !0
                })
              })
            }), n && this.updateHiddenAreas(o[0].startLineNumber)
          }, e.prototype.foldAll = function () {
            this.changeAll(!0)
          }, e.prototype.unfoldAll = function () {
            this.changeAll(!1)
          }, e.prototype.changeAll = function (e) {
            var t = this;
            if (this.decorations.length > 0) {
              var n = !0;
              this.editor.changeDecorations(function (i) {
                t.decorations.forEach(function (t) {
                  e !== t.isCollapsed && (t.setCollapsed(e, i), n = !0)
                })
              }), n && this.updateHiddenAreas(
                  this.editor.getPosition().lineNumber)
            }
          }, e.prototype.foldLevel = function (e, t) {
            var n = this, i = this.editor.getModel(),
                o = [i.getFullModelRange()], r = !1;
            this.editor.changeDecorations(function (s) {
              n.decorations.forEach(function (n) {
                var a = n.getDecorationRange(i);
                if (a) {
                  for (; !u.Range.containsRange(o[o.length - 1], a);) {
                    o.pop();
                  }
                  o.push(a), o.length !== e + 1 || n.isCollapsed || t.some(
                      function (e) {
                        return a.startLineNumber < e && e <= a.endLineNumber
                      }) || (n.setCollapsed(!0, s), r = !0)
                }
              })
            }), r && this.updateHiddenAreas(t[0])
          }, e.MAX_FOLDING_REGIONS = 5e3, e = t = v([d.editorContribution], e);
          var t
        }();
        t.FoldingController = y;
        for (var C = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype.runEditorCommand = function (e, t, n) {
            var i = y.get(t);
            i && (this.reportTelemetry(e, t), this.invoke(i, t, n))
          }, t.prototype.run = function (e, t) {
          }, t
        }(l.EditorAction), b = (function (e) {
          function t() {
            return e.call(this, {
              id: "editor.unfold",
              label: n.localize(0, null),
              alias: "Unfold",
              precondition: null,
              kbOpts: {
                kbExpr: m.EditorContextKeys.textFocus,
                primary: 3161,
                mac: {primary: 2649}
              },
              description: {
                description: "Unfold the content in the editor",
                args: [{
                  name: "Unfold editor argument",
                  description: "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'level': Number of levels to unfold\n\t\t\t\t\t\t",
                  constraint: _
                }]
              }
            }) || this
          }

          f(t, e), t.prototype.invoke = function (e, t, n) {
            e.unfold(n ? n.levels || 1 : 1)
          }, t = v([l.editorAction], t)
        }(C), function (e) {
          function t() {
            return e.call(this, {
              id: "editor.unfoldRecursively",
              label: n.localize(1, null),
              alias: "Unfold Recursively",
              precondition: null,
              kbOpts: {
                kbExpr: m.EditorContextKeys.textFocus,
                primary: s.KeyChord(2089, 2137)
              }
            }) || this
          }

          f(t, e), t.prototype.invoke = function (e, t, n) {
            e.foldUnfoldRecursively(!1)
          }, t = v([l.editorAction], t)
        }(C), function (e) {
          function t() {
            return e.call(this, {
              id: "editor.fold",
              label: n.localize(2, null),
              alias: "Fold",
              precondition: null,
              kbOpts: {
                kbExpr: m.EditorContextKeys.textFocus,
                primary: 3159,
                mac: {primary: 2647}
              },
              description: {
                description: "Fold the content in the editor",
                args: [{
                  name: "Fold editor argument",
                  description: "Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold\n\t\t\t\t\t\t\t* 'up': If 'true', folds given number of levels up otherwise folds down\n\t\t\t\t\t\t",
                  constraint: _
                }]
              }
            }) || this
          }

          f(t, e), t.prototype.invoke = function (e, t, n) {
            n = n || {levels: 1, direction: "up"}, e.fold(n.levels || 1,
                "up" === n.direction)
          }, t = v([l.editorAction], t)
        }(C), function (e) {
          function t() {
            return e.call(this, {
              id: "editor.foldRecursively",
              label: n.localize(3, null),
              alias: "Fold Recursively",
              precondition: null,
              kbOpts: {
                kbExpr: m.EditorContextKeys.textFocus,
                primary: s.KeyChord(2089, 2135)
              }
            }) || this
          }

          f(t, e), t.prototype.invoke = function (e, t) {
            e.foldUnfoldRecursively(!0)
          }, t = v([l.editorAction], t)
        }(C), function (e) {
          function t() {
            return e.call(this, {
              id: "editor.foldAll",
              label: n.localize(4, null),
              alias: "Fold All",
              precondition: null,
              kbOpts: {
                kbExpr: m.EditorContextKeys.textFocus,
                primary: s.KeyChord(2089, 2069)
              }
            }) || this
          }

          f(t, e), t.prototype.invoke = function (e, t) {
            e.foldAll()
          }, t = v([l.editorAction], t)
        }(C), function (e) {
          function t() {
            return e.call(this, {
              id: "editor.unfoldAll",
              label: n.localize(5, null),
              alias: "Unfold All",
              precondition: null,
              kbOpts: {
                kbExpr: m.EditorContextKeys.textFocus,
                primary: s.KeyChord(2089, 2088)
              }
            }) || this
          }

          f(t, e), t.prototype.invoke = function (e, t) {
            e.unfoldAll()
          }, t = v([l.editorAction], t)
        }(C), function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype.getFoldingLevel = function () {
            return parseInt(this.id.substr(t.ID_PREFIX.length))
          }, t.prototype.getSelectedLines = function (e) {
            return e.getSelections().map(function (e) {
              return e.startLineNumber
            })
          }, t.prototype.invoke = function (e, t) {
            e.foldLevel(this.getFoldingLevel(), this.getSelectedLines(t))
          }, t.ID_PREFIX = "editor.foldLevel", t.ID = function (e) {
            return t.ID_PREFIX + e
          }, t
        }(C)), w = 1; w <= 9; w++) {
          l.CommonEditorRegistry.registerEditorAction(
              new b({
                id: b.ID(w),
                label: n.localize(6, null, w),
                alias: "Fold Level " + w,
                precondition: null,
                kbOpts: {
                  kbExpr: m.EditorContextKeys.textFocus,
                  primary: s.KeyChord(2089, 2048 | 21 + w)
                }
              }))
        }
      }), define(d[459], h([1, 0, 10, 24, 33, 7, 2, 13, 17, 56, 18]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";

        function d(e, t, i) {
          var s = u.DocumentRangeFormattingEditProviderRegistry.ordered(e);
          if (0 === s.length) {
            return r.TPromise.as(void 0);
          }
          var a;
          return c.sequence(s.map(function (r) {
            if (o.isFalsyOrEmpty(a)) {
              return function () {
                return c.asWinJsPromise(function (n) {
                  return r.provideDocumentRangeFormattingEdits(e, t, i, n)
                }).then(function (e) {
                  a = e
                }, n.onUnexpectedExternalError)
              }
            }
          })).then(function () {
            return a
          })
        }

        function h(e, t) {
          var i = u.DocumentFormattingEditProviderRegistry.ordered(e);
          if (0 === i.length) {
            return d(e, e.getFullModelRange(), t);
          }
          var r;
          return c.sequence(i.map(function (i) {
            if (o.isFalsyOrEmpty(r)) {
              return function () {
                return c.asWinJsPromise(function (n) {
                  return i.provideDocumentFormattingEdits(e, t, n)
                }).then(function (e) {
                  r = e
                }, n.onUnexpectedExternalError)
              }
            }
          })).then(function () {
            return r
          })
        }

        function p(e, t, i, o) {
          var s = u.OnTypeFormattingEditProviderRegistry.ordered(e)[0];
          return s ? s.autoFormatTriggerCharacters.indexOf(i) < 0
              ? r.TPromise.as(void 0) : c.asWinJsPromise(function (n) {
                return s.provideOnTypeFormattingEdits(e, t, i, o, n)
              }).then(function (e) {
                return e
              }, n.onUnexpectedExternalError) : r.TPromise.as(void 0)
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.getDocumentRangeFormattingEdits = d, t.getDocumentFormattingEdits = h, t.getOnTypeFormattingEdits = p, a.CommonEditorRegistry.registerLanguageCommand(
            "_executeFormatRangeProvider", function (e, t) {
              var o = t.resource, r = t.range, a = t.options;
              if (!(o instanceof i.default && s.Range.isIRange(
                  r))) {
                throw n.illegalArgument();
              }
              var u = e.get(l.IModelService).getModel(o);
              if (!u) {
                throw n.illegalArgument("resource");
              }
              return d(u, s.Range.lift(r), a)
            }), a.CommonEditorRegistry.registerLanguageCommand(
            "_executeFormatDocumentProvider", function (e, t) {
              var o = t.resource, r = t.options;
              if (!(o instanceof i.default)) {
                throw n.illegalArgument(
                    "resource");
              }
              var s = e.get(l.IModelService).getModel(o);
              if (!s) {
                throw n.illegalArgument("resource");
              }
              return h(s, r)
            }), a.CommonEditorRegistry.registerDefaultLanguageCommand(
            "_executeFormatOnTypeProvider", function (e, t, i) {
              var o = i.ch, r = i.options;
              if ("string" != typeof o) {
                throw n.illegalArgument("ch");
              }
              return p(e, t, o, r)
            })
      }), define(d[460],
      h([1, 0, 350, 33, 40, 3, 7, 19, 13, 17, 459, 258, 31, 42, 61, 89, 2, 51,
        131, 21]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, C, b, w) {
        "use strict";

        function S(e) {
          if ((e = e.filter(function (e) {
            return e.range
          })).length) {
            for (var t = e[0].range, i = 1; i < e.length;
                i++) {
              t = _.Range.plusRange(t, e[i].range);
            }
            var o = t.startLineNumber, r = t.endLineNumber;
            o === r ? 1 === e.length ? C.alert(n.localize(0, null, o))
                : C.alert(n.localize(1, null, e.length, o)) : 1 === e.length
                ? C.alert(n.localize(2, null, o, r)) : C.alert(
                    n.localize(3, null, e.length, o, r))
          }
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        (function () {
          function e(e, t) {
            var n = this;
            this.editor = e, this.workerService = t, this.callOnDispose = [], this.callOnModel = [], this.callOnDispose.push(
                e.onDidChangeConfiguration(function () {
                  return n.update()
                })), this.callOnDispose.push(e.onDidChangeModel(function () {
              return n.update()
            })), this.callOnDispose.push(
                e.onDidChangeModelLanguage(function () {
                  return n.update()
                })), this.callOnDispose.push(
                l.OnTypeFormattingEditProviderRegistry.onDidChange(this.update,
                    this))
          }

          return t = e, e.prototype.update = function () {
            var e = this;
            if (this.callOnModel = r.dispose(
                this.callOnModel), this.editor.getConfiguration().contribInfo.formatOnType
            && this.editor.getModel()) {
              var t = this.editor.getModel(),
                  n = l.OnTypeFormattingEditProviderRegistry.ordered(t)[0];
              if (n && n.autoFormatTriggerCharacters) {
                for (var i = new m.CharacterSet, o = 0,
                    s = n.autoFormatTriggerCharacters; o < s.length; o++) {
                  var a = s[o];
                  i.add(a.charCodeAt(0))
                }
                this.callOnModel.push(this.editor.onDidType(function (t) {
                  var n = t.charCodeAt(t.length - 1);
                  i.has(n) && e.trigger(String.fromCharCode(n))
                }))
              }
            }
          }, e.prototype.trigger = function (e) {
            var t = this;
            if (!(this.editor.getSelections().length > 1)) {
              var n = this.editor.getModel(), o = this.editor.getPosition(),
                  r = !1, s = this.editor.onDidChangeModelContent(function (e) {
                    if (e.isFlush) {
                      return r = !0, void s.dispose();
                    }
                    for (var t = 0, n = e.changes.length; t < n;
                        t++) {
                      if (e.changes[t].range.endLineNumber
                          <= o.lineNumber) {
                        return r = !0, void s.dispose()
                      }
                    }
                  }), a = n.getOptions();
              c.getOnTypeFormattingEdits(n, o, e,
                  {tabSize: a.tabSize, insertSpaces: a.insertSpaces}).then(
                  function (e) {
                    return t.workerService.computeMoreMinimalEdits(n.uri, e, [])
                  }).then(function (e) {
                s.dispose(), r || i.isFalsyOrEmpty(e)
                || (d.EditOperationsCommand.execute(t.editor, e), S(e))
              }, function (e) {
                throw s.dispose(), e
              })
            }
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.dispose = function () {
            this.callOnDispose = r.dispose(
                this.callOnDispose), this.callOnModel = r.dispose(
                this.callOnModel)
          }, e.ID = "editor.contrib.autoFormat", e = t = v(
              [u.commonEditorContribution, y(1, g.IEditorWorkerService)], e);
          var t
        })(), function () {
          function e(e, t) {
            var n = this;
            this.editor = e, this.workerService = t, this.callOnDispose = [], this.callOnModel = [], this.callOnDispose.push(
                e.onDidChangeConfiguration(function () {
                  return n.update()
                })), this.callOnDispose.push(e.onDidChangeModel(function () {
              return n.update()
            })), this.callOnDispose.push(
                e.onDidChangeModelLanguage(function () {
                  return n.update()
                })), this.callOnDispose.push(
                l.DocumentRangeFormattingEditProviderRegistry.onDidChange(
                    this.update, this))
          }

          return t = e, e.prototype.update = function () {
            var e = this;
            if (this.callOnModel = r.dispose(
                this.callOnModel), this.editor.getConfiguration().contribInfo.formatOnPaste
            && this.editor.getModel()) {
              var t = this.editor.getModel(),
                  n = l.DocumentRangeFormattingEditProviderRegistry.ordered(
                      t)[0];
              n && n.provideDocumentRangeFormattingEdits
              && this.callOnModel.push(this.editor.onDidPaste(function (t) {
                e.trigger(t)
              }))
            }
          }, e.prototype.trigger = function (e) {
            var t = this;
            if (!(this.editor.getSelections().length > 1)) {
              var n = this.editor.getModel(), o = n.getOptions(), r = o.tabSize,
                  s = o.insertSpaces, a = new b.EditorState(this.editor, 5);
              c.getDocumentRangeFormattingEdits(n, e,
                  {tabSize: r, insertSpaces: s}).then(function (e) {
                return t.workerService.computeMoreMinimalEdits(n.uri, e, [])
              }).then(function (e) {
                a.validate(t.editor) && !i.isFalsyOrEmpty(e)
                && (d.EditOperationsCommand.execute(t.editor, e), S(e))
              })
            }
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.dispose = function () {
            this.callOnDispose = r.dispose(
                this.callOnDispose), this.callOnModel = r.dispose(
                this.callOnModel)
          }, e.ID = "editor.contrib.formatOnPaste", e = t = v(
              [u.commonEditorContribution, y(1, g.IEditorWorkerService)], e);
          var t
        }();
        var E = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = e.get(g.IEditorWorkerService),
                o = this._getFormattingEdits(t);
            if (!o) {
              return s.TPromise.as(void 0);
            }
            var r = new b.EditorState(t, 5);
            return o.then(function (e) {
              return n.computeMoreMinimalEdits(t.getModel().uri, e,
                  t.getSelections())
            }).then(function (e) {
              r.validate(t) && !i.isFalsyOrEmpty(e)
              && (d.EditOperationsCommand.execute(t, e), S(e), t.focus())
            })
          }, t
        }(u.EditorAction);
        t.AbstractFormatAction = E;
        var L = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.formatDocument",
              label: n.localize(4, null),
              alias: "Format Document",
              precondition: a.ContextKeyExpr.and(w.EditorContextKeys.writable,
                  w.EditorContextKeys.hasDocumentFormattingProvider),
              kbOpts: {
                kbExpr: w.EditorContextKeys.textFocus,
                primary: 1572,
                linux: {primary: 3111}
              },
              menuOpts: {group: "1_modification", order: 1.3}
            }) || this
          }

          return f(t, e), t.prototype._getFormattingEdits = function (e) {
            var t = e.getModel(), n = t.getOptions(), i = n.tabSize,
                o = n.insertSpaces;
            return c.getDocumentFormattingEdits(t,
                {tabSize: i, insertSpaces: o})
          }, t = v([u.editorAction], t)
        }(E);
        t.FormatDocumentAction = L;
        var x = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.formatSelection",
              label: n.localize(5, null),
              alias: "Format Code",
              precondition: a.ContextKeyExpr.and(w.EditorContextKeys.writable,
                  w.EditorContextKeys.hasDocumentSelectionFormattingProvider,
                  w.EditorContextKeys.hasNonEmptySelection),
              kbOpts: {
                kbExpr: w.EditorContextKeys.textFocus,
                primary: o.KeyChord(2089, 2084)
              },
              menuOpts: {group: "1_modification", order: 1.31}
            }) || this
          }

          return f(t, e), t.prototype._getFormattingEdits = function (e) {
            var t = e.getModel(), n = t.getOptions(), i = n.tabSize,
                o = n.insertSpaces;
            return c.getDocumentRangeFormattingEdits(t, e.getSelection(),
                {tabSize: i, insertSpaces: o})
          }, t = v([u.editorAction], t)
        }(E);
        t.FormatSelectionAction = x, h.CommandsRegistry.registerCommand(
            "editor.action.format", function (e) {
              var t = e.get(p.ICodeEditorService).getFocusedCodeEditor();
              if (t) {
                return (new (function (e) {
                  function t() {
                    return e.call(this, {}) || this
                  }

                  return f(t,
                      e), t.prototype._getFormattingEdits = function (e) {
                    var t = e.getModel(), n = e.getSelection(),
                        i = t.getOptions(), o = i.tabSize, r = i.insertSpaces;
                    return n.isEmpty() ? c.getDocumentFormattingEdits(t,
                            {tabSize: o, insertSpaces: r})
                        : c.getDocumentRangeFormattingEdits(t, n,
                            {tabSize: o, insertSpaces: r})
                  }, t
                }(E))).run(e, t)
              }
            })
      }), define(d[177], h([1, 0, 10, 7, 13, 17, 18]),
      function (e, t, n, i, o, r, s) {
        "use strict";

        function a(e) {
          return i.TPromise.join(e).then(function (e) {
            for (var t = [], n = 0, i = e; n < i.length; n++) {
              var o = i[n];
              Array.isArray(o) ? t.push.apply(t, o) : o && t.push(o)
            }
            return t
          })
        }

        function u(e, t, i, o) {
          return a(i.ordered(e).map(function (i, r) {
            return s.asWinJsPromise(function (n) {
              return o(i, e, t, n)
            }).then(function (e) {
              return e
            }, function (e) {
              n.onUnexpectedExternalError(e)
            })
          }))
        }

        function l(e, t) {
          return u(e, t, r.DefinitionProviderRegistry, function (e, t, n, i) {
            return e.provideDefinition(t, n, i)
          })
        }

        function c(e, t) {
          return u(e, t, r.ImplementationProviderRegistry,
              function (e, t, n, i) {
                return e.provideImplementation(t, n, i)
              })
        }

        function d(e, t) {
          return u(e, t, r.TypeDefinitionProviderRegistry,
              function (e, t, n, i) {
                return e.provideTypeDefinition(t, n, i)
              })
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.getDefinitionsAtPosition = l, t.getImplementationsAtPosition = c, t.getTypeDefinitionsAtPosition = d, o.CommonEditorRegistry.registerDefaultLanguageCommand(
            "_executeDefinitionProvider",
            l), o.CommonEditorRegistry.registerDefaultLanguageCommand(
            "_executeImplementationProvider",
            c), o.CommonEditorRegistry.registerDefaultLanguageCommand(
            "_executeTypeDefinitionProvider", d)
      }), define(d[462], h([1, 0, 33, 10, 7, 13, 17, 18]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";

        function u(e, t) {
          var r = [],
              u = s.HoverProviderRegistry.ordered(e).map(function (n, o) {
                return a.asWinJsPromise(function (i) {
                  return n.provideHover(e, t, i)
                }).then(function (e) {
                  if (e) {
                    var t = void 0 !== e.range,
                        n = void 0 !== e.contents && e.contents
                            && e.contents.length > 0;
                    t && n && (r[o] = e)
                  }
                }, function (e) {
                  i.onUnexpectedExternalError(e)
                })
              });
          return o.TPromise.join(u).then(function () {
            return n.coalesce(r)
          })
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.getHover = u, r.CommonEditorRegistry.registerDefaultLanguageCommand(
            "_executeHoverProvider", u)
      }), define(d[463],
      h([1, 0, 355, 24, 10, 4, 7, 102, 71, 2, 12, 17, 122, 462, 195, 196, 133,
        34, 242, 245, 246, 247, 32, 3]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, v, _, y, C, b,
          w, S, E) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var L = r.$, x = function () {
          return function (e, t, n, i) {
            this.range = e, this.color = t, this.format = n, this.availableFormats = i
          }
        }(), N = function () {
          function e(e) {
            this._editor = e, this._range = null
          }

          return e.prototype.setRange = function (e) {
            this._range = e, this._result = []
          }, e.prototype.clearResult = function () {
            this._result = []
          }, e.prototype.computeAsync = function () {
            var e = this._editor.getModel();
            return d.HoverProviderRegistry.has(e) ? p.getHover(e,
                new c.Position(this._range.startLineNumber,
                    this._range.startColumn)) : s.TPromise.as(null)
          }, e.prototype.computeSync = function () {
            var e = this, t = this._range.startLineNumber;
            if (t > this._editor.getModel().getLineCount()) {
              return [];
            }
            var n = function (e) {
              return e && (!Array.isArray(e) || e.length > 0)
            }, i = this._editor.getModel().getLineMaxColumn(t);
            return this._editor.getLineDecorations(t).map(function (o) {
              var r = o.range.startLineNumber === t ? o.range.startColumn : 1,
                  s = o.range.endLineNumber === t ? o.range.endColumn : i;
              if (r > e._range.startColumn || e._range.endColumn
                  > s) {
                return null;
              }
              var a = new l.Range(e._range.startLineNumber, r,
                      e._range.startLineNumber, s), u = o.options,
                  c = u && u.extraOptions;
              if (b.isColorDecorationOptions(c)) {
                var d = c.color, h = c.format, p = c.availableFormats;
                return new x(a, d, h, p)
              }
              if (!n(o.options.hoverMessage)) {
                return null;
              }
              var f = void 0;
              return o.options.hoverMessage && (f = Array.isArray(
                  o.options.hoverMessage) ? o.options.hoverMessage.slice()
                  : [o.options.hoverMessage]), {contents: f, range: a}
            }).filter(function (e) {
              return !!e
            })
          }, e.prototype.onResult = function (e, t) {
            this._result = t ? e.concat(this._result.sort(function (e, t) {
              return e instanceof x ? -1 : t instanceof x ? 1 : 0
            })) : this._result.concat(e)
          }, e.prototype.getResult = function () {
            return this._result.slice(0)
          }, e.prototype.getResultWithLoadingMessage = function () {
            return this._result.slice(0).concat([this._getLoadingMessage()])
          }, e.prototype._getLoadingMessage = function () {
            return {
              range: this._range,
              contents: [v.textToMarkedString(n.localize(0, null))]
            }
          }, e
        }(), M = function (e) {
          function t(n, i, o) {
            var s = e.call(this, t.ID, n) || this;
            return s._computer = new N(
                s._editor), s._highlightDecorations = [], s._isChangingDecorations = !1, s._openerService = i
                || u.NullOpenerService, s._modeService = o, s._hoverOperation = new g.HoverOperation(
                s._computer, function (e) {
                  return s._withResult(e, !0)
                }, null, function (e) {
                  return s._withResult(e, !1)
                }), s.toDispose = [], s.toDispose.push(
                r.addStandardDisposableListener(s.getDomNode(),
                    r.EventType.FOCUS, function () {
                      s._colorPicker && r.addClass(s.getDomNode(),
                          "colorpicker-hover")
                    })), s.toDispose.push(
                r.addStandardDisposableListener(s.getDomNode(),
                    r.EventType.BLUR, function () {
                      r.removeClass(s.getDomNode(), "colorpicker-hover")
                    })), s
          }

          return f(t, e), t.prototype.dispose = function () {
            this._hoverOperation.cancel(), this._colorPicker
            && this._colorPicker.dispose(), this.toDispose = E.dispose(
                this.toDispose), e.prototype.dispose.call(this)
          }, t.prototype.onModelDecorationsChanged = function () {
            this._isChangingDecorations || this.isVisible
            && (this._hoverOperation.cancel(), this._computer.clearResult(), this._colorPicker
            || this._hoverOperation.start())
          }, t.prototype.startShowingAt = function (e, t) {
            if (!this._lastRange || !this._lastRange.equalsRange(e)) {
              if (this._hoverOperation.cancel(), this.isVisible) {
                if (this._showAtPosition.lineNumber
                    !== e.startLineNumber) {
                  this.hide();
                } else {
                  for (var n = [], i = 0, o = this._messages.length; i < o;
                      i++) {
                    var r = this._messages[i], s = r.range;
                    s.startColumn <= e.startColumn && s.endColumn >= e.endColumn
                    && n.push(r)
                  }
                  n.length > 0 ? this._renderMessages(e, n) : this.hide()
                }
              }
              this._lastRange = e, this._computer.setRange(
                  e), this._shouldFocus = t, this._hoverOperation.start()
            }
          }, t.prototype.hide = function () {
            this._lastRange = null, this._hoverOperation.cancel(), e.prototype.hide.call(
                this), this._isChangingDecorations = !0, this._highlightDecorations = this._editor.deltaDecorations(
                this._highlightDecorations,
                []), this._isChangingDecorations = !1, this._colorPicker = null, this._colorPicker
            && this._colorPicker.dispose()
          }, t.prototype.isColorPickerVisible = function () {
            return !!this._colorPicker
          }, t.prototype._withResult = function (e, t) {
            this._messages = e, this._lastRange && this._messages.length > 0
                ? this._renderMessages(this._lastRange, this._messages) : t
                && this.hide()
          }, t.prototype._renderMessages = function (e, n) {
            var r = this, s = Number.MAX_VALUE, u = n[0].range,
                d = document.createDocumentFragment();
            n.forEach(function (e) {
              if (e.range) {
                if (s = Math.min(s,
                    e.range.startColumn), u = l.Range.plusRange(u, e.range), e
                instanceof x) {
                  var t = void 0, n = void 0;
                  "string" == typeof e.format ? t = new w.ColorFormatter(
                          e.format)
                      : (t = new w.ColorFormatter(
                          e.format.opaque), n = new w.ColorFormatter(
                          e.format.transparent));
                  var c = [];
                  e.availableFormats && e.availableFormats.forEach(
                      function (e) {
                        var t;
                        t = "string" == typeof e ? new w.ColorFormatter(e) : {
                          opaqueFormatter: new w.ColorFormatter(e.opaque),
                          transparentFormatter: new w.ColorFormatter(
                              e.transparent)
                        }, c.push(t)
                      });
                  var p = e.color, f = p.red, g = p.green, m = p.blue,
                      v = p.alpha,
                      _ = new S.RGBA(255 * f, 255 * g, 255 * m, 255 * v),
                      b = S.Color.fromRGBA(_),
                      E = new y.ColorPickerModel(_.toString(), b, t, n, c,
                          r._editor.getModel(), e.range),
                      N = r._register(new C.ColorPickerWidget(E, r._editor));
                  E.widget = N, r._colorPicker = N, d.appendChild(
                      N.getDomNode())
                } else {
                  e.contents.filter(function (e) {
                    return !!e
                  }).forEach(function (e) {
                    var t = a.renderMarkedString(e, {
                      actionCallback: function (e) {
                        r._openerService.open(i.default.parse(e)).then(void 0,
                            o.onUnexpectedError)
                      }, codeBlockRenderer: function (e, t) {
                        var n = e ? r._modeService.getModeIdForLanguageName(e)
                            : r._editor.getModel().getLanguageIdentifier().language;
                        return r._modeService.getOrCreateMode(n).then(
                            function (e) {
                              return h.tokenizeToString(t, n)
                            })
                      }
                    });
                    d.appendChild(L("div.hover-row", null, t))
                  })
                }
              }
            }), this.showAt(new c.Position(e.startLineNumber, s),
                this._shouldFocus), this.updateContents(d), this._colorPicker
            && (this._colorPicker.layout(), this._colorPicker.layoutSaturationBox()), this._isChangingDecorations = !0, this._highlightDecorations = this._editor.deltaDecorations(
                this._highlightDecorations, [{
                  range: u,
                  options: t._DECORATION_OPTIONS
                }]), this._isChangingDecorations = !1
          }, t.ID = "editor.contrib.modesContentHoverWidget", t._DECORATION_OPTIONS = _.ModelDecorationOptions.register(
              {className: "hoverHighlight"}), t
        }(m.ContentHoverWidget);
        t.ModesContentHoverWidget = M
      }), define(d[464],
      h([1, 0, 357, 40, 266, 59, 435, 21, 73, 2, 22, 13, 264, 265, 319, 119,
        134]), function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var y = function (e) {
          function t(t, n) {
            var i = e.call(this, n) || this;
            return i.down = t, i
          }

          return f(t, e), t.prototype.run = function (e, t) {
            for (var n = [], i = t.getSelections(), o = 0; o < i.length;
                o++) {
              n.push(new h.CopyLinesCommand(i[o], this.down));
            }
            t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop()
          }, t
        }(d.EditorAction), C = (function (e) {
          function t() {
            return e.call(this, !1, {
              id: "editor.action.copyLinesUpAction",
              label: n.localize(0, null),
              alias: "Copy Line Up",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: a.EditorContextKeys.textFocus,
                primary: 1552,
                linux: {primary: 3600}
              }
            }) || this
          }

          f(t, e), t = v([d.editorAction], t)
        }(y), function (e) {
          function t() {
            return e.call(this, !0, {
              id: "editor.action.copyLinesDownAction",
              label: n.localize(1, null),
              alias: "Copy Line Down",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: a.EditorContextKeys.textFocus,
                primary: 1554,
                linux: {primary: 3602}
              }
            }) || this
          }

          f(t, e), t = v([d.editorAction], t)
        }(y), function (e) {
          function t(t, n) {
            var i = e.call(this, n) || this;
            return i.down = t, i
          }

          return f(t, e), t.prototype.run = function (e, t) {
            for (var n = [], i = t.getSelections(),
                o = t.getConfiguration().autoIndent, r = 0; r < i.length;
                r++) {
              n.push(new g.MoveLinesCommand(i[r], this.down, o));
            }
            t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop()
          }, t
        }(d.EditorAction)), b = (function (e) {
          function t() {
            return e.call(this, !1, {
              id: "editor.action.moveLinesUpAction",
              label: n.localize(2, null),
              alias: "Move Line Up",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: a.EditorContextKeys.textFocus,
                primary: 528,
                linux: {primary: 528}
              }
            }) || this
          }

          f(t, e), t = v([d.editorAction], t)
        }(C), function (e) {
          function t() {
            return e.call(this, !0, {
              id: "editor.action.moveLinesDownAction",
              label: n.localize(3, null),
              alias: "Move Line Down",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: a.EditorContextKeys.textFocus,
                primary: 530,
                linux: {primary: 530}
              }
            }) || this
          }

          f(t, e), t = v([d.editorAction], t)
        }(C), function (e) {
          function t(t, n) {
            var i = e.call(this, n) || this;
            return i.descending = t, i
          }

          return f(t, e), t.prototype.run = function (e, t) {
            if (o.SortLinesCommand.canRun(t.getModel(), t.getSelection(),
                this.descending)) {
              var n = new o.SortLinesCommand(t.getSelection(), this.descending);
              t.pushUndoStop(), t.executeCommands(this.id,
                  [n]), t.pushUndoStop()
            }
          }, t
        }(d.EditorAction)), w = (function (e) {
          function t() {
            return e.call(this, !1, {
              id: "editor.action.sortLinesAscending",
              label: n.localize(4, null),
              alias: "Sort Lines Ascending",
              precondition: a.EditorContextKeys.writable
            }) || this
          }

          f(t, e), t = v([d.editorAction], t)
        }(b), function (e) {
          function t() {
            return e.call(this, !0, {
              id: "editor.action.sortLinesDescending",
              label: n.localize(5, null),
              alias: "Sort Lines Descending",
              precondition: a.EditorContextKeys.writable
            }) || this
          }

          f(t, e), t = v([d.editorAction], t)
        }(b), function (e) {
          function t() {
            return e.call(this, {
              id: o.ID,
              label: n.localize(6, null),
              alias: "Trim Trailing Whitespace",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: a.EditorContextKeys.textFocus,
                primary: i.KeyChord(2089, 2102)
              }
            }) || this
          }

          return f(t, e), o = t, t.prototype.run = function (e, t) {
            var n = new s.TrimTrailingWhitespaceCommand(t.getSelection());
            t.pushUndoStop(), t.executeCommands(this.id, [n]), t.pushUndoStop()
          }, t.ID = "editor.action.trimTrailingWhitespace", t = o = v(
              [d.editorAction], t);
          var o
        }(d.EditorAction));
        t.TrimTrailingWhitespaceAction = w;
        !function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.deleteLines",
              label: n.localize(7, null),
              alias: "Delete Line",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {kbExpr: a.EditorContextKeys.textFocus, primary: 3113}
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            var n = this._getLinesToRemove(t).map(function (e) {
              return new p.DeleteLinesCommand(e.startLineNumber,
                  e.endLineNumber, e.positionColumn)
            });
            t.pushUndoStop(), t.executeCommands(this.id, n), t.pushUndoStop()
          }, t = v([d.editorAction], t)
        }(function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype._getLinesToRemove = function (e) {
            var t = e.getSelections().map(function (e) {
              var t = e.endLineNumber;
              return e.startLineNumber < e.endLineNumber && 1 === e.endColumn
              && (t -= 1), {
                startLineNumber: e.startLineNumber,
                endLineNumber: t,
                positionColumn: e.positionColumn
              }
            });
            t.sort(function (e, t) {
              return e.startLineNumber - t.startLineNumber
            });
            for (var n = [], i = t[0], o = 1; o < t.length; o++) {
              i.endLineNumber
              + 1 === t[o].startLineNumber
                  ? i.endLineNumber = t[o].endLineNumber
                  : (n.push(i), i = t[o]);
            }
            return n.push(i), n
          }, t
        }(d.EditorAction));
        var S = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.indentLines",
              label: n.localize(8, null),
              alias: "Indent Line",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {kbExpr: a.EditorContextKeys.textFocus, primary: 2137}
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            t.pushUndoStop(), t.executeCommands(this.id,
                m.TypeOperations.indent(t._getCursorConfiguration(),
                    t.getModel(), t.getSelections())), t.pushUndoStop()
          }, t = v([d.editorAction], t)
        }(d.EditorAction);
        t.IndentLinesAction = S;
        !function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.outdentLines",
              label: n.localize(9, null),
              alias: "Outdent Line",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {kbExpr: a.EditorContextKeys.textFocus, primary: 2135}
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            _.CoreEditingCommands.Outdent.runEditorCommand(null, t, null)
          }, t = v([d.editorAction], t)
        }(d.EditorAction);
        var E = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.insertLineBefore",
              label: n.localize(10, null),
              alias: "Insert Line Above",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {kbExpr: a.EditorContextKeys.textFocus, primary: 3075}
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            t.pushUndoStop(), t.executeCommands(this.id,
                m.TypeOperations.lineInsertBefore(t._getCursorConfiguration(),
                    t.getModel(), t.getSelections()))
          }, t = v([d.editorAction], t)
        }(d.EditorAction);
        t.InsertLineBeforeAction = E;
        var L = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.insertLineAfter",
              label: n.localize(11, null),
              alias: "Insert Line Below",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {kbExpr: a.EditorContextKeys.textFocus, primary: 2051}
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            t.pushUndoStop(), t.executeCommands(this.id,
                m.TypeOperations.lineInsertAfter(t._getCursorConfiguration(),
                    t.getModel(), t.getSelections()))
          }, t = v([d.editorAction], t)
        }(d.EditorAction);
        t.InsertLineAfterAction = L;
        var x = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            for (var n = t.getSelection(), i = this._getRangesToDelete(t),
                o = [], s = 0, a = i.length - 1; s < a; s++) {
              var u = i[s], d = i[s + 1];
              null === l.Range.intersectRanges(u, d) ? o.push(u) : i[s
              + 1] = l.Range.plusRange(u, d)
            }
            o.push(i[i.length - 1]);
            var h = this._getEndCursorState(n, o), p = o.map(function (e) {
              return h.push(new c.Selection(e.startLineNumber, e.startColumn,
                  e.startLineNumber, e.startColumn)), r.EditOperation.replace(e,
                  "")
            });
            t.executeEdits(this.id, p, h)
          }, t
        }(d.EditorAction);
        t.AbstractDeleteAllToBoundaryAction = x;
        var N = function (e) {
          function t() {
            return e.call(this, {
              id: "deleteAllLeft",
              label: n.localize(12, null),
              alias: "Delete All Left",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: a.EditorContextKeys.textFocus,
                primary: null,
                mac: {primary: 2049}
              }
            }) || this
          }

          return f(t, e), t.prototype._getEndCursorState = function (e, t) {
            for (var n, i = [], o = 0, r = t.length; o < r; o++) {
              var s = t[o],
                  a = new c.Selection(t[o].startLineNumber, t[o].startColumn,
                      t[o].startLineNumber, t[o].startColumn);
              s.intersectRanges(e) ? n = a : i.push(a)
            }
            return n && i.unshift(n), i
          }, t.prototype._getRangesToDelete = function (e) {
            var t = e.getSelections();
            return t.sort(l.Range.compareRangesUsingStarts), t = t.map(
                function (e) {
                  return e.isEmpty() ? new l.Range(e.startLineNumber, 1,
                      e.startLineNumber, e.startColumn) : e
                })
          }, t = v([d.editorAction], t)
        }(x);
        t.DeleteAllLeftAction = N;
        var M = function (e) {
          function t() {
            return e.call(this, {
              id: "deleteAllRight",
              label: n.localize(13, null),
              alias: "Delete All Right",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: a.EditorContextKeys.textFocus,
                primary: null,
                mac: {primary: 297, secondary: [2068]}
              }
            }) || this
          }

          return f(t, e), t.prototype._getEndCursorState = function (e, t) {
            for (var n, i = [], o = 0, r = t.length; o < r; o++) {
              var s = t[o],
                  a = new c.Selection(s.startLineNumber - 0, s.startColumn,
                      s.startLineNumber - 0, s.startColumn);
              s.intersectRanges(e) ? n = a : i.push(a)
            }
            return n && i.unshift(n), i
          }, t.prototype._getRangesToDelete = function (e) {
            var t = e.getModel(), n = e.getSelections().map(function (e) {
              if (e.isEmpty()) {
                var n = t.getLineMaxColumn(e.startLineNumber);
                return e.startColumn === n ? new l.Range(e.startLineNumber,
                    e.startColumn, e.startLineNumber + 1, 1) : new l.Range(
                    e.startLineNumber, e.startColumn, e.startLineNumber, n)
              }
              return e
            });
            return n.sort(l.Range.compareRangesUsingStarts), n
          }, t = v([d.editorAction], t)
        }(x);
        t.DeleteAllRightAction = M;
        var T = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.joinLines",
              label: n.localize(14, null),
              alias: "Join Lines",
              precondition: a.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: a.EditorContextKeys.textFocus,
                primary: 0,
                mac: {primary: 296}
              }
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = t.getSelections(), i = t.getSelection();
            n.sort(l.Range.compareRangesUsingStarts);
            var o = [], s = n.reduce(function (e, t) {
              return e.isEmpty() ? e.endLineNumber === t.startLineNumber
                  ? (i.equalsSelection(e) && (i = t), t) : t.startLineNumber
                  > e.endLineNumber + 1 ? (o.push(e), t) : new c.Selection(
                      e.startLineNumber, e.startColumn, t.endLineNumber,
                      t.endColumn) : t.startLineNumber > e.endLineNumber
                  ? (o.push(e), t) : new c.Selection(e.startLineNumber,
                      e.startColumn, t.endLineNumber, t.endColumn)
            });
            o.push(s);
            for (var a = t.getModel(), u = [], d = [], h = i, p = 0, f = 0,
                g = o.length; f < g; f++) {
              var m = o[f], v = m.startLineNumber, _ = void 0, y = void 0,
                  C = void 0,
                  b = a.getLineContent(m.endLineNumber).length - m.endColumn;
              if (m.isEmpty() || m.startLineNumber === m.endLineNumber) {
                var w = m.getStartPosition();
                w.lineNumber < a.getLineCount() ? (_ = v
                        + 1, y = a.getLineMaxColumn(_))
                    : (_ = w.lineNumber, y = a.getLineMaxColumn(w.lineNumber))
              } else {
                _ = m.endLineNumber, y = a.getLineMaxColumn(_);
              }
              for (var S = a.getLineContent(v), E = v + 1; E <= _; E++) {
                var L = a.getLineContent(E),
                    x = a.getLineFirstNonWhitespaceColumn(E);
                if (x >= 1) {
                  var N = !0;
                  "" === S && (N = !1), !N || " " !== S.charAt(S.length - 1)
                  && "\t" !== S.charAt(S.length - 1) || (N = !1, S = S.replace(
                      /[\s\uFEFF\xA0]+$/g, " "));
                  var M = L.substr(x - 1);
                  S += (N ? " " : "") + M, C = N ? M.length + 1 : M.length
                } else {
                  C = 0
                }
              }
              var T = new l.Range(v, 1, _, y);
              if (!T.isEmpty()) {
                var k = void 0;
                m.isEmpty() ? (u.push(
                    r.EditOperation.replace(T, S)), k = new c.Selection(
                    T.startLineNumber - p, S.length - C + 1, v - p,
                    S.length - C + 1)) : m.startLineNumber === m.endLineNumber
                    ? (u.push(
                        r.EditOperation.replace(T, S)), k = new c.Selection(
                        m.startLineNumber - p, m.startColumn,
                        m.endLineNumber - p, m.endColumn)) : (u.push(
                        r.EditOperation.replace(T, S)), k = new c.Selection(
                        m.startLineNumber - p, m.startColumn,
                        m.startLineNumber - p, S.length - b)), null
                !== l.Range.intersectRanges(T, i) ? h = k : d.push(k)
              }
              p += T.endLineNumber - T.startLineNumber
            }
            d.unshift(h), t.executeEdits(this.id, u, d)
          }, t = v([d.editorAction], t)
        }(d.EditorAction);
        t.JoinLinesAction = T;
        var k = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.transpose",
              label: n.localize(15, null),
              alias: "Transpose characters around the cursor",
              precondition: a.EditorContextKeys.writable
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            for (var n = t.getSelections(), i = t.getModel(), o = [], r = 0,
                s = n.length; r < s; r++) {
              var a = n[r];
              if (a.isEmpty()) {
                var d = a.getStartPosition(),
                    h = i.getLineMaxColumn(d.lineNumber);
                if (d.column >= h) {
                  if (d.lineNumber === i.getLineCount()) {
                    continue;
                  }
                  var p = new l.Range(d.lineNumber, Math.max(1, d.column - 1),
                          d.lineNumber + 1, 1),
                      f = i.getValueInRange(p).split("").reverse().join("");
                  o.push(new u.ReplaceCommand(
                      new c.Selection(d.lineNumber, Math.max(1, d.column - 1),
                          d.lineNumber + 1, 1), f))
                } else {
                  var p = new l.Range(d.lineNumber, Math.max(1, d.column - 1),
                          d.lineNumber, d.column + 1),
                      f = i.getValueInRange(p).split("").reverse().join("");
                  o.push(new u.ReplaceCommandThatPreservesSelection(p, f,
                      new c.Selection(d.lineNumber, d.column + 1, d.lineNumber,
                          d.column + 1)))
                }
              }
            }
            t.pushUndoStop(), t.executeCommands(this.id, o), t.pushUndoStop()
          }, t = v([d.editorAction], t)
        }(d.EditorAction);
        t.TransposeAction = k;
        var I = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            for (var n = t.getSelections(), i = t.getModel(), o = [], r = 0,
                s = n.length; r < s; r++) {
              var a = n[r];
              if (a.isEmpty()) {
                var d = a.getStartPosition(), h = i.getWordAtPosition(d);
                if (!h) {
                  continue;
                }
                var p = new l.Range(d.lineNumber, h.startColumn, d.lineNumber,
                    h.endColumn), f = i.getValueInRange(p);
                o.push(new u.ReplaceCommandThatPreservesSelection(p,
                    this._modifyText(f),
                    new c.Selection(d.lineNumber, d.column, d.lineNumber,
                        d.column)))
              } else {
                f = i.getValueInRange(a);
                o.push(new u.ReplaceCommandThatPreservesSelection(a,
                    this._modifyText(f), a))
              }
            }
            t.pushUndoStop(), t.executeCommands(this.id, o), t.pushUndoStop()
          }, t
        }(d.EditorAction);
        t.AbstractCaseAction = I;
        var D = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.transformToUppercase",
              label: n.localize(16, null),
              alias: "Transform to Uppercase",
              precondition: a.EditorContextKeys.writable
            }) || this
          }

          return f(t, e), t.prototype._modifyText = function (e) {
            return e.toLocaleUpperCase()
          }, t = v([d.editorAction], t)
        }(I);
        t.UpperCaseAction = D;
        var O = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.transformToLowercase",
              label: n.localize(17, null),
              alias: "Transform to Lowercase",
              precondition: a.EditorContextKeys.writable
            }) || this
          }

          return f(t, e), t.prototype._modifyText = function (e) {
            return e.toLocaleLowerCase()
          }, t = v([d.editorAction], t)
        }(I);
        t.LowerCaseAction = O
      }), define(d[465], h([1, 0, 359, 21, 13, 22, 54, 173, 39]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.insertCursorAbove",
              label: n.localize(0, null),
              alias: "Add Cursor Above",
              precondition: null,
              kbOpts: {
                kbExpr: i.EditorContextKeys.textFocus,
                primary: 2576,
                linux: {primary: 1552, secondary: [3088]}
              }
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t, n) {
            var i = t._getCursors(), o = i.context;
            o.config.readOnly || (o.model.pushStackElement(), i.setStates(
                n.source, s.CursorChangeReason.Explicit,
                u.CursorState.ensureInEditableRange(o,
                    a.CursorMoveCommands.addCursorUp(o, i.getAll()))), i.reveal(
                !0, 1))
          }, t = v([o.editorAction], t)
        }(o.EditorAction);
        t.InsertCursorAbove = l;
        var c = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.insertCursorBelow",
              label: n.localize(1, null),
              alias: "Add Cursor Below",
              precondition: null,
              kbOpts: {
                kbExpr: i.EditorContextKeys.textFocus,
                primary: 2578,
                linux: {primary: 1554, secondary: [3090]}
              }
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t, n) {
            var i = t._getCursors(), o = i.context;
            o.config.readOnly || (o.model.pushStackElement(), i.setStates(
                n.source, s.CursorChangeReason.Explicit,
                u.CursorState.ensureInEditableRange(o,
                    a.CursorMoveCommands.addCursorDown(o,
                        i.getAll()))), i.reveal(!0, 2))
          }, t = v([o.editorAction], t)
        }(o.EditorAction);
        t.InsertCursorBelow = c;
        !function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.insertCursorAtEndOfEachLineSelected",
              label: n.localize(2, null),
              alias: "Add Cursors to Line Ends",
              precondition: null,
              kbOpts: {kbExpr: i.EditorContextKeys.textFocus, primary: 1575}
            }) || this
          }

          f(t, e), t.prototype.getCursorsForSelection = function (e, t) {
            if (e.isEmpty()) {
              return [];
            }
            for (var n = t.getModel(), i = [], o = e.startLineNumber;
                o < e.endLineNumber; o++) {
              var s = n.getLineMaxColumn(o);
              i.push(new r.Selection(o, s, o, s))
            }
            return e.endColumn > 1 && i.push(
                new r.Selection(e.endLineNumber, e.endColumn, e.endLineNumber,
                    e.endColumn)), i
          }, t.prototype.run = function (e, t) {
            var n = this, i = t.getSelections().map(function (e) {
              return n.getCursorsForSelection(e, t)
            }).reduce(function (e, t) {
              return e.concat(t)
            });
            i.length > 0 && t.setSelections(i)
          }, t = v([o.editorAction], t)
        }(o.EditorAction)
      }), define(d[178], h([1, 0, 10, 13, 17, 18, 19]),
      function (e, t, n, i, o, r, s) {
        "use strict";

        function a(e, t) {
          var i, s = o.SignatureHelpProviderRegistry.ordered(e);
          return r.sequence(s.map(function (o) {
            return function () {
              if (!i) {
                return r.asWinJsPromise(function (n) {
                  return o.provideSignatureHelp(e, t, n)
                }).then(function (e) {
                  i = e
                }, n.onUnexpectedExternalError)
              }
            }
          })).then(function () {
            return i
          })
        }

        Object.defineProperty(t, "__esModule", {value: !0}), t.Context = {
          Visible: new s.RawContextKey("parameterHintsVisible", !1),
          MultipleSignatures: new s.RawContextKey(
              "parameterHintsMultipleSignatures", !1)
        }, t.provideSignatureHelp = a, i.CommonEditorRegistry.registerDefaultLanguageCommand(
            "_executeSignatureHelpProvider", a)
      }), define(d[467], h([1, 0, 24, 2, 17, 18, 7, 10, 56, 13]),
      function (e, t, n, i, o, r, s, a, u, l) {
        "use strict";

        function c(e, t) {
          var n = [], i = o.CodeActionProviderRegistry.all(e).map(function (i) {
            return r.asWinJsPromise(function (n) {
              return i.provideCodeActions(e, t, n)
            }).then(function (e) {
              if (Array.isArray(e)) {
                for (var t = 0, i = e; t < i.length; t++) {
                  var o = i[t];
                  o && n.push(o)
                }
              }
            }, function (e) {
              a.onUnexpectedExternalError(e)
            })
          });
          return s.TPromise.join(i).then(function () {
            return n
          })
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.getCodeActions = c, l.CommonEditorRegistry.registerLanguageCommand(
            "_executeCodeActionProvider", function (e, t) {
              var o = t.resource, r = t.range;
              if (!(o instanceof n.default && i.Range.isIRange(
                  r))) {
                throw a.illegalArgument();
              }
              var s = e.get(u.IModelService).getModel(o);
              if (!s) {
                throw a.illegalArgument();
              }
              return c(s, s.validateRange(r))
            })
      }), define(d[468], h([1, 0, 11, 3, 2, 17, 467]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function () {
          function e(e, t, i, o) {
            void 0 === o && (o = 250);
            var r = this;
            this._editor = e, this._markerService = t, this._signalChange = i, this._disposables = [], this._disposables.push(
                n.debounceEvent(this._markerService.onMarkerChanged,
                    function (e, t) {
                      return e ? e.concat(t) : t
                    }, o / 2)(function (e) {
                  return r._onMarkerChanges(e)
                }), n.debounceEvent(this._editor.onDidChangeCursorPosition,
                    function (e) {
                      return e
                    }, o)(function (e) {
                  return r._onCursorChange()
                }))
          }

          return e.prototype.dispose = function () {
            this._disposables = i.dispose(this._disposables)
          }, e.prototype.trigger = function (e) {
            var t = this._editor.getSelection(),
                n = this._getActiveMarkerOrWordRange();
            "manual" !== e || t.isEmpty() || (n = t), n
            || (n = t), this._signalChange({
              type: e,
              range: n,
              position: this._editor.getPosition(),
              fixes: n && s.getCodeActions(this._editor.getModel(),
                  this._editor.getModel().validateRange(n))
            })
          }, e.prototype._onMarkerChanges = function (e) {
            for (var t = this._editor.getModel().uri, n = 0, i = e;
                n < i.length; n++) {
              if (i[n].toString()
                  === t.toString()) {
                return this._currentRange = void 0, void this._onCursorChange()
              }
            }
          }, e.prototype._onCursorChange = function () {
            var e = this._getActiveMarkerOrWordRange();
            o.Range.equalsRange(this._currentRange, e)
            || (this._currentRange = e, this._signalChange({
              type: "auto",
              range: e,
              position: this._editor.getPosition(),
              fixes: e && s.getCodeActions(this._editor.getModel(),
                  this._editor.getModel().validateRange(e))
            }))
          }, e.prototype._getActiveMarkerOrWordRange = function () {
            for (var e = this._editor.getSelection(),
                t = this._editor.getModel(), n = 0,
                i = this._markerService.read({resource: t.uri}); n < i.length;
                n++) {
              var r = i[n], s = o.Range.lift(r);
              if (s.containsRange(e)) {
                return s
              }
            }
            if (e.isEmpty()) {
              var a = e.getStartPosition(), u = t.getWordAtPosition(a);
              if (u) {
                return new o.Range(a.lineNumber, u.startColumn,
                    a.lineNumber, u.endColumn)
              }
            }
          }, e
        }();
        t.QuickFixOracle = a;
        var u = function () {
          function e(e, t) {
            var i = this;
            this._onDidChangeFixes = new n.Emitter, this._disposables = [], this._editor = e, this._markerService = t, this._disposables.push(
                this._editor.onDidChangeModel(function () {
                  return i._update()
                })), this._disposables.push(
                this._editor.onDidChangeModelLanguage(function () {
                  return i._update()
                })), this._disposables.push(
                r.CodeActionProviderRegistry.onDidChange(this._update,
                    this)), this._update()
          }

          return e.prototype.dispose = function () {
            this._disposables = i.dispose(this._disposables), i.dispose(
                this._quickFixOracle)
          }, Object.defineProperty(e.prototype, "onDidChangeFixes", {
            get: function () {
              return this._onDidChangeFixes.event
            }, enumerable: !0, configurable: !0
          }), e.prototype._update = function () {
            var e = this;
            this._quickFixOracle
            && (this._quickFixOracle.dispose(), this._quickFixOracle = void 0, this._onDidChangeFixes.fire(
                void 0)), this._editor.getModel()
            && r.CodeActionProviderRegistry.has(this._editor.getModel())
            && !this._editor.getConfiguration().readOnly
            && (this._quickFixOracle = new a(this._editor, this._markerService,
                function (t) {
                  return e._onDidChangeFixes.fire(t)
                }), this._quickFixOracle.trigger("auto"))
          }, e.prototype.trigger = function (e) {
            this._quickFixOracle && this._quickFixOracle.trigger(e)
          }, e
        }();
        t.QuickFixModel = u
      }), define(d[469],
      h([1, 0, 362, 3, 31, 69, 19, 46, 103, 21, 13, 30, 268, 267, 468]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var m = function () {
          function e(e, t, n, i, o, r) {
            var s = this;
            this._keybindingService = r, this._disposables = [], this._editor = e, this._model = new g.QuickFixModel(
                this._editor,
                t), this._quickFixContextMenu = new h.QuickFixContextMenu(e, o,
                i), this._lightBulbWidget = new p.LightBulbWidget(
                e), this._updateLightBulbTitle(), this._disposables.push(
                this._quickFixContextMenu.onDidExecuteCodeAction(function (e) {
                  return s._model.trigger("auto")
                }), this._lightBulbWidget.onClick(this._handleLightBulbSelect,
                    this), this._model.onDidChangeFixes(function (e) {
                  return s._onQuickFixEvent(e)
                }), this._keybindingService.onDidUpdateKeybindings(
                    this._updateLightBulbTitle, this))
          }

          return t = e, e.get = function (e) {
            return e.getContribution(t.ID)
          }, e.prototype.dispose = function () {
            this._model.dispose(), i.dispose(this._disposables)
          }, e.prototype._onQuickFixEvent = function (e) {
            e && "manual" === e.type ? this._quickFixContextMenu.show(e.fixes,
                e.position) : e && e.fixes ? this._quickFixContextMenu.isVisible
                ? this._quickFixContextMenu.show(e.fixes, e.position)
                : this._lightBulbWidget.model = e : this._lightBulbWidget.hide()
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype._handleLightBulbSelect = function (e) {
            this._quickFixContextMenu.show(this._lightBulbWidget.model.fixes, e)
          }, e.prototype.triggerFromEditorSelection = function () {
            this._model.trigger("manual")
          }, e.prototype._updateLightBulbTitle = function () {
            var e, t = this._keybindingService.lookupKeybinding(_.Id);
            e = t ? n.localize(0, null, t.getLabel()) : n.localize(1,
                null), this._lightBulbWidget.title = e
          }, e.ID = "editor.contrib.quickFixController", e = t = v(
              [d.editorContribution, y(1, u.IMarkerService),
                y(2, s.IContextKeyService), y(3, o.ICommandService),
                y(4, r.IContextMenuService), y(5, a.IKeybindingService)], e);
          var t
        }();
        t.QuickFixController = m;
        var _ = function (e) {
          function t() {
            return e.call(this, {
              id: i.Id,
              label: n.localize(2, null),
              alias: "Quick Fix",
              precondition: s.ContextKeyExpr.and(l.EditorContextKeys.writable,
                  l.EditorContextKeys.hasCodeActionsProvider),
              kbOpts: {kbExpr: l.EditorContextKeys.textFocus, primary: 2132}
            }) || this
          }

          return f(t, e), i = t, t.prototype.run = function (e, t) {
            var n = m.get(t);
            n && n.triggerFromEditorSelection()
          }, t.Id = "editor.action.quickFix", t = i = v([c.editorAction], t);
          var i
        }(c.EditorAction);
        t.QuickFixAction = _
      }), define(d[470], h([1, 0, 10, 24, 7, 2, 13, 17, 56, 18]),
      function (e, t, n, i, o, r, s, a, u, l) {
        "use strict";

        function c(e) {
          var t = [],
              i = a.DocumentSymbolProviderRegistry.all(e).map(function (i) {
                return l.asWinJsPromise(function (t) {
                  return i.provideDocumentSymbols(e, t)
                }).then(function (e) {
                  Array.isArray(e) && t.push.apply(t, e)
                }, function (e) {
                  n.onUnexpectedExternalError(e)
                })
              });
          return o.TPromise.join(i).then(function () {
            var e = [];
            return h(e, t, ""), e.sort(d), {entries: e}
          })
        }

        function d(e, t) {
          return r.Range.compareRangesUsingStarts(
              r.Range.lift(e.location.range), r.Range.lift(t.location.range))
        }

        function h(e, t, n) {
          for (var i = 0, o = t; i < o.length; i++) {
            var r = o[i];
            e.push({
              kind: r.kind,
              location: r.location,
              name: r.name,
              containerName: r.containerName || n
            })
          }
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.getDocumentSymbols = c, s.CommonEditorRegistry.registerLanguageCommand(
            "_executeDocumentSymbolProvider", function (e, t) {
              var o = t.resource;
              if (!(o instanceof i.default)) {
                throw n.illegalArgument(
                    "resource");
              }
              var r = e.get(u.IModelService).getModel(o);
              if (!r) {
                throw n.illegalArgument("resource");
              }
              return c(r)
            })
      }), define(d[471], h([1, 0, 370, 33, 7, 16, 2, 21, 13, 398]),
      function (e, t, n, i, o, r, s, a, u, l) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var c = function () {
          return function (e) {
            this.editor = e, this.next = null, this.previous = null, this.selection = e.getSelection()
          }
        }(), d = null, h = !1, p = function () {
          function e(e, t) {
            this.editor = e, this._tokenSelectionSupport = t.createInstance(
                l.TokenSelectionSupport)
          }

          return t = e, e.get = function (e) {
            return e.getContribution(t.ID)
          }, e.prototype.dispose = function () {
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.run = function (e) {
            var t = this, n = this.editor.getSelection(),
                r = this.editor.getModel();
            d && d.editor !== this.editor && (d = null);
            var a = o.TPromise.as(null);
            return d || (a = this._tokenSelectionSupport.getRangesToPosition(
                r.uri, n.getStartPosition()).then(function (e) {
              if (!i.isFalsyOrEmpty(e)) {
                var n;
                e.filter(function (e) {
                  var n = t.editor.getSelection(),
                      i = new s.Range(e.range.startLineNumber,
                          e.range.startColumn, e.range.endLineNumber,
                          e.range.endColumn);
                  return i.containsPosition(n.getStartPosition())
                      && i.containsPosition(n.getEndPosition())
                }).forEach(function (e) {
                  var i = e.range, o = new c(t.editor);
                  o.selection = new s.Range(i.startLineNumber, i.startColumn,
                      i.endLineNumber, i.endColumn), n
                  && (o.next = n, n.previous = o), n = o
                });
                var o = new c(t.editor);
                o.next = n, n && (n.previous = o), d = o;
                var r = t.editor.onDidChangeCursorPosition(function (e) {
                  h || (d = null, r.dispose())
                })
              }
            })), a.then(function () {
              if (d && (d = e ? d.next : d.previous)) {
                h = !0;
                try {
                  t.editor.setSelection(d.selection)
                } finally {
                  h = !1
                }
              }
            })
          }, e.ID = "editor.contrib.smartSelectController", e = t = v(
              [u.commonEditorContribution, y(1, r.IInstantiationService)], e);
          var t
        }(), g = function (e) {
          function t(t, n) {
            var i = e.call(this, n) || this;
            return i._forward = t, i
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = p.get(t);
            if (n) {
              return n.run(this._forward)
            }
          }, t
        }(u.EditorAction);
        (function (e) {
          function t() {
            return e.call(this, !0, {
              id: "editor.action.smartSelect.grow",
              label: n.localize(0, null),
              alias: "Expand Select",
              precondition: null,
              kbOpts: {
                kbExpr: a.EditorContextKeys.textFocus,
                primary: 1553,
                mac: {primary: 3345}
              }
            }) || this
          }

          f(t, e), t = v([u.editorAction], t)
        })(g), function (e) {
          function t() {
            return e.call(this, !1, {
              id: "editor.action.smartSelect.shrink",
              label: n.localize(1, null),
              alias: "Shrink Select",
              precondition: null,
              kbOpts: {
                kbExpr: a.EditorContextKeys.textFocus,
                primary: 1551,
                mac: {primary: 3343}
              }
            }) || this
          }

          f(t, e), t = v([u.editorAction], t)
        }(g)
      }), define(d[109], h([1, 0, 18, 33, 9, 26, 10, 7, 13, 17, 19]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";

        function d(e, t, o, r) {
          void 0 === o && (o = "bottom");
          var u = [], c = f(o);
          t = t.clone();
          var d = l.SuggestRegistry.orderedGroups(e);
          "none" !== o && y && d.unshift([y]);
          var g = !1, m = d.map(function (o) {
            return function () {
              if (!g) {
                return a.TPromise.join(o.map(function (o) {
                  if (i.isFalsyOrEmpty(r) || !(r.indexOf(o)
                      < 0)) {
                    return n.asWinJsPromise(function (n) {
                      return o.provideCompletionItems(e, t, n)
                    }).then(function (n) {
                      var r = u.length;
                      if (n && !i.isFalsyOrEmpty(n.suggestions)) {
                        for (var s = 0,
                            a = n.suggestions; s < a.length; s++) {
                          var l = a[s];
                          c(l) && (h(l, n), u.push({
                            position: t,
                            container: n,
                            suggestion: l,
                            support: o,
                            resolve: p(o, l, e, t)
                          }))
                        }
                      }
                      r !== u.length && o !== y && (g = !0)
                    }, s.onUnexpectedExternalError)
                  }
                }))
              }
            }
          });
          return n.sequence(m).then(function () {
            return u.sort(_(o))
          })
        }

        function h(e, t) {
          "number" != typeof e.overwriteBefore
          && (e.overwriteBefore = 0), ("number" != typeof e.overwriteAfter
              || e.overwriteAfter < 0) && (e.overwriteAfter = 0)
        }

        function p(e, t, i, o) {
          return function () {
            return "function" == typeof e.resolveCompletionItem
                ? n.asWinJsPromise(function (n) {
                  return e.resolveCompletionItem(i, o, t, n)
                }).then(function (e) {
                  r.assign(t, e)
                }) : a.TPromise.as(void 0)
          }
        }

        function f(e) {
          return "none" === e ? function (e) {
            return "snippet" !== e.type
          } : function () {
            return !0
          }
        }

        function g(e, t) {
          var n = 0;
          return "string" == typeof e.suggestion.sortText && "string"
          == typeof t.suggestion.sortText && (n = o.compareIgnoreCase(
              e.suggestion.sortText, t.suggestion.sortText)), 0 === n
          && (n = o.compareIgnoreCase(e.suggestion.label,
              t.suggestion.label)), 0 === n && e.suggestion.type
          !== t.suggestion.type && ("snippet" === e.suggestion.type ? n = 1
              : "snippet" === t.suggestion.type && (n = -1)), n
        }

        function m(e, t) {
          if (e.suggestion.type !== t.suggestion.type) {
            if ("snippet" === e.suggestion.type) {
              return -1;
            }
            if ("snippet" === t.suggestion.type) {
              return 1
            }
          }
          return g(e, t)
        }

        function v(e, t) {
          if (e.suggestion.type !== t.suggestion.type) {
            if ("snippet" === e.suggestion.type) {
              return 1;
            }
            if ("snippet" === t.suggestion.type) {
              return -1
            }
          }
          return g(e, t)
        }

        function _(e) {
          return "top" === e ? m : "bottom" === e ? v : g
        }

        Object.defineProperty(t, "__esModule", {value: !0}), t.Context = {
          Visible: new c.RawContextKey("suggestWidgetVisible", !1),
          MultipleSuggestions: new c.RawContextKey(
              "suggestWidgetMultipleSuggestions", !1),
          MakesTextEdit: new c.RawContextKey("suggestionMakesTextEdit", !0),
          AcceptOnKey: new c.RawContextKey("suggestionSupportsAcceptOnKey", !0),
          AcceptSuggestionsOnEnter: new c.RawContextKey(
              "acceptSuggestionOnEnter", !0)
        };
        var y;
        t.setSnippetSuggestSupport = function (e) {
          var t = y;
          return y = e, t
        }, t.provideSuggestionItems = d, t.getSuggestionComparator = _, u.CommonEditorRegistry.registerDefaultLanguageCommand(
            "_executeCompletionItemProvider", function (e, t, n) {
              var i = {incomplete: !1, suggestions: []};
              return d(e, t).then(function (e) {
                for (var t = 0, n = e; t < n.length; t++) {
                  var o = n[t], r = o.container, s = o.suggestion;
                  i.incomplete = i.incomplete
                      || r.incomplete, i.suggestions.push(s)
                }
                return i
              })
            });
        var C, b = new (function () {
          function e() {
          }

          return e.prototype.provideCompletionItems = function () {
            return C && {suggestions: C}
          }, e
        }());
        l.SuggestRegistry.register("*",
            b), t.showSimpleSuggestions = function (e, t) {
          setTimeout(function () {
            C = t, e.getContribution(
                "editor.contrib.suggestController").triggerSuggest(
                [b]), C = void 0
          }, 0)
        }
      }), define(d[180], h([1, 0, 19, 13, 3, 334, 21, 109, 22]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function () {
          function e(e, n) {
            this._editor = e, this._snippetListener = [], this._inSnippet = t.InSnippetMode.bindTo(
                n), this._hasNextTabstop = t.HasNextTabstop.bindTo(
                n), this._hasPrevTabstop = t.HasPrevTabstop.bindTo(n)
          }

          return t = e, e.get = function (e) {
            return e.getContribution("snippetController2")
          }, e.prototype.dispose = function () {
            this._inSnippet.reset(), this._hasPrevTabstop.reset(), this._hasNextTabstop.reset(), o.dispose(
                this._session)
          }, e.prototype.getId = function () {
            return "snippetController2"
          }, e.prototype.insert = function (e, t, n, i, s) {
            var a = this;
            void 0 === t && (t = 0), void 0 === n && (n = 0), void 0 === i
            && (i = !0), void 0 === s
            && (s = !0), this._snippetListener = o.dispose(
                this._snippetListener), i
            && this._editor.getModel().pushStackElement(), this._session
                ? this._session.merge(e, t, n)
                : (this._modelVersionId = this._editor.getModel().getAlternativeVersionId(), this._session = new r.SnippetSession(
                    this._editor, e, t, n), this._session.insert()), s
            && this._editor.getModel().pushStackElement(), this._updateState(), this._snippetListener = [this._editor.onDidChangeModel(
                function () {
                  return a.cancel()
                }), this._editor.onDidChangeCursorSelection(function () {
              return a._updateState()
            })]
          }, e.prototype._updateState = function () {
            if (this._session) {
              if (this._modelVersionId
                  === this._editor.getModel().getAlternativeVersionId()) {
                return this.cancel();
              }
              if (!this._session.hasPlaceholder) {
                return this.cancel();
              }
              if (this._session.isAtLastPlaceholder
                  || !this._session.isSelectionWithinPlaceholders()) {
                return this.cancel();
              }
              this._inSnippet.set(!0), this._hasPrevTabstop.set(
                  !this._session.isAtFirstPlaceholder), this._hasNextTabstop.set(
                  !this._session.isAtLastPlaceholder), this._handleChoice()
            }
          }, e.prototype._handleChoice = function () {
            var e = this._session.choice;
            if (e) {
              if (this._currentChoice !== e) {
                this._currentChoice = e, this._editor.setSelections(
                    this._editor.getSelections().map(function (e) {
                      return u.Selection.fromPositions(e.getStartPosition())
                    }));
                var t = e.options[0];
                a.showSimpleSuggestions(this._editor,
                    e.options.map(function (e, n) {
                      return {
                        type: "value",
                        label: e.value,
                        insertText: e.value,
                        sortText: String(n),
                        overwriteAfter: t.value.length
                      }
                    }))
              }
            } else {
              this._currentChoice = void 0
            }
          }, e.prototype.finish = function () {
            for (; this._inSnippet.get();) {
              this.next()
            }
          }, e.prototype.cancel = function () {
            this._inSnippet.reset(), this._hasPrevTabstop.reset(), this._hasNextTabstop.reset(), o.dispose(
                this._snippetListener), o.dispose(
                this._session), this._session = void 0, this._modelVersionId = -1
          }, e.prototype.prev = function () {
            this._session.prev(), this._updateState()
          }, e.prototype.next = function () {
            this._session.next(), this._updateState()
          }, e.InSnippetMode = new n.RawContextKey("inSnippetMode",
              !1), e.HasNextTabstop = new n.RawContextKey("hasNextTabstop",
              !1), e.HasPrevTabstop = new n.RawContextKey("hasPrevTabstop",
              !1), e = t = v(
              [i.commonEditorContribution, y(1, n.IContextKeyService)], e);
          var t
        }();
        t.SnippetController2 = l;
        var c = i.EditorCommand.bindToContribution(l.get);
        i.CommonEditorRegistry.registerEditorCommand(new c({
          id: "jumpToNextSnippetPlaceholder",
          precondition: n.ContextKeyExpr.and(l.InSnippetMode, l.HasNextTabstop),
          handler: function (e) {
            return e.next()
          },
          kbOpts: {
            weight: i.CommonEditorRegistry.commandWeight(30),
            kbExpr: s.EditorContextKeys.textFocus,
            primary: 2
          }
        })), i.CommonEditorRegistry.registerEditorCommand(new c({
          id: "jumpToPrevSnippetPlaceholder",
          precondition: n.ContextKeyExpr.and(l.InSnippetMode, l.HasPrevTabstop),
          handler: function (e) {
            return e.prev()
          },
          kbOpts: {
            weight: i.CommonEditorRegistry.commandWeight(30),
            kbExpr: s.EditorContextKeys.textFocus,
            primary: 1026
          }
        })), i.CommonEditorRegistry.registerEditorCommand(new c({
          id: "leaveSnippet",
          precondition: l.InSnippetMode,
          handler: function (e) {
            return e.cancel()
          },
          kbOpts: {
            weight: i.CommonEditorRegistry.commandWeight(30),
            kbExpr: s.EditorContextKeys.textFocus,
            primary: 9,
            secondary: [1033]
          }
        })), i.CommonEditorRegistry.registerEditorCommand(new c({
          id: "acceptSnippet",
          precondition: l.InSnippetMode,
          handler: function (e) {
            return e.finish()
          }
        }))
      }), define(d[474], h([1, 0, 10, 33, 18, 11, 3, 7, 17, 12, 109, 272, 54]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var p = function () {
          function e(e, t, n) {
            this.leadingLineContent = e.getLineContent(t.lineNumber).substr(0,
                t.column - 1), this.leadingWord = e.getWordUntilPosition(
                t), this.lineNumber = t.lineNumber, this.column = t.column, this.auto = n
          }

          return e.shouldAutoTrigger = function (e) {
            var t = e.getModel();
            if (!t) {
              return !1;
            }
            var n = e.getPosition(), i = t.getWordAtPosition(n);
            return !!i && (i.endColumn === n.column && !!isNaN(Number(i.word)))
          }, e.isInEditableRange = function (e) {
            var t = e.getModel(), n = e.getPosition();
            return !(t.hasEditableRange()
                && !t.getEditableRange().containsPosition(n))
          }, e
        }();
        t.LineContext = p;
        !function (e) {
          e[e.Idle = 0] = "Idle", e[e.Manual = 1] = "Manual", e[e.Auto = 2] = "Auto"
        }(t.State || (t.State = {}));
        var f = function () {
          function e(e) {
            var t = this;
            this.editor = e, this.toDispose = [], this.triggerRefilter = new o.TimeoutTimer, this._onDidCancel = new r.Emitter, this._onDidTrigger = new r.Emitter, this._onDidSuggest = new r.Emitter, this._state = 0, this.triggerAutoSuggestPromise = null, this.requestPromise = null, this.completionModel = null, this.context = null, this.currentPosition = e.getPosition()
                || new l.Position(1, 1), this.toDispose.push(
                this.editor.onDidChangeModel(function () {
                  t.updateTriggerCharacters(), t.cancel()
                })), this.toDispose.push(
                e.onDidChangeModelLanguage(function () {
                  t.updateTriggerCharacters(), t.cancel()
                })), this.toDispose.push(
                this.editor.onDidChangeConfiguration(function () {
                  t.updateTriggerCharacters(), t.updateQuickSuggest()
                })), this.toDispose.push(
                u.SuggestRegistry.onDidChange(function () {
                  t.updateTriggerCharacters(), t.updateActiveSuggestSession()
                })), this.toDispose.push(
                this.editor.onDidChangeCursorSelection(function (e) {
                  t.onCursorChange(e)
                })), this.updateTriggerCharacters(), this.updateQuickSuggest()
          }

          return Object.defineProperty(e.prototype, "onDidCancel", {
            get: function () {
              return this._onDidCancel.event
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "onDidTrigger", {
            get: function () {
              return this._onDidTrigger.event
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "onDidSuggest", {
            get: function () {
              return this._onDidSuggest.event
            }, enumerable: !0, configurable: !0
          }), e.prototype.dispose = function () {
            s.dispose(
                [this._onDidCancel, this._onDidSuggest, this._onDidTrigger,
                  this.triggerCharacterListener,
                  this.triggerRefilter]), this.toDispose = s.dispose(
                this.toDispose), this.cancel()
          }, e.prototype.updateQuickSuggest = function () {
            this.quickSuggestDelay = this.editor.getConfiguration().contribInfo.quickSuggestionsDelay, (isNaN(
                    this.quickSuggestDelay) || !this.quickSuggestDelay && 0
                !== this.quickSuggestDelay || this.quickSuggestDelay < 0)
            && (this.quickSuggestDelay = 10)
          }, e.prototype.updateTriggerCharacters = function () {
            var e = this;
            if (s.dispose(
                this.triggerCharacterListener), !this.editor.getConfiguration().readOnly
            && this.editor.getModel()
            && this.editor.getConfiguration().contribInfo.suggestOnTriggerCharacters) {
              for (var t = Object.create(null), n = 0,
                  o = u.SuggestRegistry.all(this.editor.getModel());
                  n < o.length; n++) {
                var r = o[n];
                if (!i.isFalsyOrEmpty(r.triggerCharacters)) {
                  for (var a = 0,
                      l = r.triggerCharacters; a < l.length; a++) {
                    var c = l[a], d = t[c];
                    d ? d.push(r) : t[c] = [r]
                  }
                }
              }
              this.triggerCharacterListener = this.editor.onDidType(
                  function (n) {
                    var i = n.charAt(n.length - 1), o = t[i];
                    if (o) {
                      var r = [];
                      if (e.completionModel) {
                        for (var s = 0,
                            a = e.completionModel.items; s < a.length; s++) {
                          var u = a[s];
                          o.indexOf(u.support) < 0 && r.push(u)
                        }
                      }
                      e.trigger(!0, Boolean(e.completionModel), o, r)
                    }
                  })
            }
          }, Object.defineProperty(e.prototype, "state", {
            get: function () {
              return this._state
            }, enumerable: !0, configurable: !0
          }), e.prototype.cancel = function (e) {
            void 0 === e && (e = !1), this.triggerAutoSuggestPromise
            && (this.triggerAutoSuggestPromise.cancel(), this.triggerAutoSuggestPromise = null), this.requestPromise
            && (this.requestPromise.cancel(), this.requestPromise = null), this._state = 0, this.completionModel = null, this.context = null, this._onDidCancel.fire(
                {retrigger: e})
          }, e.prototype.updateActiveSuggestSession = function () {
            0 !== this._state && (u.SuggestRegistry.has(this.editor.getModel())
                ? this.trigger(2 === this._state, !0) : this.cancel())
          }, e.prototype.onCursorChange = function (e) {
            var t = this, n = this.currentPosition;
            if (this.currentPosition = this.editor.getPosition(), e.selection.isEmpty()
            && "keyboard" === e.source && e.reason
            === h.CursorChangeReason.NotSet) {
              if (u.SuggestRegistry.has(this.editor.getModel())) {
                var i = this.editor.getModel();
                i && (0 === this._state ? !1
                    !== this.editor.getConfiguration().contribInfo.quickSuggestions
                    && n.isBefore(this.currentPosition)
                    && (this.cancel(), p.shouldAutoTrigger(this.editor)
                    && (this.triggerAutoSuggestPromise = a.TPromise.timeout(
                        this.quickSuggestDelay), this.triggerAutoSuggestPromise.then(
                        function () {
                          var e = t.editor.getModel(),
                              n = t.editor.getPosition();
                          if (e) {
                            var i = t.editor.getConfiguration().contribInfo.quickSuggestions;
                            if (!1 !== i) {
                              if (!0 === i) {
                                ;
                              } else {
                                e.forceTokenization(n.lineNumber);
                                var o = e.getLineTokens(
                                    n.lineNumber).findTokenAtOffset(
                                    n.column - 1).tokenType;
                                if (!(i.other && 0 === o || i.comments && 1
                                    === o || i.strings && 2 === o)) {
                                  return
                                }
                              }
                              t.triggerAutoSuggestPromise = null, t.trigger(!0)
                            }
                          }
                        }))) : this.triggerRefilter.cancelAndSet(function () {
                  var e = t.editor.getPosition(),
                      n = new p(i, e, 2 === t._state);
                  t.onNewContext(n)
                }, 25))
              }
            } else {
              if (0 === this._state) {
                return;
              }
              this.cancel()
            }
          }, e.prototype.trigger = function (e, t, o, r) {
            var s = this;
            void 0 === t && (t = !1);
            var a = this.editor.getModel();
            if (a) {
              var u = new p(a, this.editor.getPosition(), e);
              p.isInEditableRange(this.editor) && (this.cancel(
                  t), this._state = e ? 2 : 1, this._onDidTrigger.fire(
                  {auto: e}), this.context = u, this.requestPromise = c.provideSuggestionItems(
                  a, this.editor.getPosition(),
                  this.editor.getConfiguration().contribInfo.snippetSuggestions,
                  o).then(function (t) {
                if (s.requestPromise = null, 0 !== s._state) {
                  var n = s.editor.getModel();
                  if (n) {
                    if (!i.isFalsyOrEmpty(r)) {
                      var o = c.getSuggestionComparator(
                          s.editor.getConfiguration().contribInfo.snippetSuggestions);
                      t = t.concat(r).sort(o)
                    }
                    var a = new p(n, s.editor.getPosition(), e);
                    s.completionModel = new d.CompletionModel(t,
                        s.context.column, {
                          leadingLineContent: a.leadingLineContent,
                          characterCountDelta: s.context ? a.column
                              - s.context.column : 0
                        },
                        s.editor.getConfiguration().contribInfo.snippetSuggestions), s.onNewContext(
                        a)
                  }
                }
              }).then(null, n.onUnexpectedError))
            }
          }, e.prototype.onNewContext = function (e) {
            if (this.context) {
              if (e.lineNumber === this.context.lineNumber) {
                if (e.column < this.context.column) {
                  e.leadingWord.word
                      ? this.trigger(this.context.auto, !0)
                      : this.cancel();
                } else if (this.completionModel) {
                  if (e.column
                      > this.context.column && this.completionModel.incomplete
                      && 0
                      !== e.leadingWord.word.length) {
                    var t = this.completionModel.resolveIncompleteInfo(),
                        n = t.complete, i = t.incomplete;
                    this.trigger(2 === this._state, !0, i, n)
                  } else {
                    var o = this.completionModel.lineContext, r = !1;
                    if (this.completionModel.lineContext = {
                      leadingLineContent: e.leadingLineContent,
                      characterCountDelta: e.column - this.context.column
                    }, 0 === this.completionModel.items.length) {
                      if (p.shouldAutoTrigger(this.editor)
                          && this.context.leadingWord.endColumn
                          < e.leadingWord.startColumn) {
                        return void this.trigger(
                            this.context.auto, !0);
                      }
                      if (this.context.auto) {
                        return void this.cancel();
                      }
                      if (this.completionModel.lineContext = o, (r = this.completionModel.items.length
                          > 0) && 0
                      === e.leadingWord.word.length) {
                        return void this.cancel()
                      }
                    }
                    this._onDidSuggest.fire({
                      completionModel: this.completionModel,
                      auto: this.context.auto,
                      isFrozen: r
                    })
                  }
                }
              } else {
                this.cancel()
              }
            }
          }, e
        }();
        t.SuggestModel = f
      }), define(d[181], h([1, 0, 373, 13, 168]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function (e) {
      function t() {
        return e.call(this, {
          id: r.ID,
          label: n.localize(0, null),
          alias: "Toggle Tab Key Moves Focus",
          precondition: null,
          kbOpts: {kbExpr: null, primary: 2091, mac: {primary: 1323}}
        }) || this
      }

      return f(t, e), r = t, t.prototype.run = function (e, t) {
        var n = o.TabFocus.getTabFocusMode();
        o.TabFocus.setTabFocusMode(!n)
      }, t.ID = "editor.action.toggleTabFocusMode", t = r = v([i.editorAction],
          t);
      var r
    }(i.EditorAction);
    t.ToggleTabFocusModeAction = r
  }), define(d[476], h([1, 0, 21, 22, 13, 12, 2, 172, 73, 94, 39, 54]),
      function (e, t, n, i, o, r, s, a, u, l, c, d) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var h = function (e) {
          function t(t) {
            var n = e.call(this, t) || this;
            return n._inSelectionMode = t.inSelectionMode, n._wordNavigationType = t.wordNavigationType, n
          }

          return f(t, e), t.prototype.runEditorCommand = function (e, t, n) {
            var i = this, o = t.getConfiguration(),
                s = l.getMapForWordSeparators(o.wordSeparators),
                a = t.getModel(), u = t.getSelections().map(function (e) {
                  var t = new r.Position(e.positionLineNumber, e.positionColumn),
                      n = i._move(s, a, t, i._wordNavigationType);
                  return i._moveTo(e, n, i._inSelectionMode)
                });
            if (t._getCursors().setStates("moveWordCommand",
                d.CursorChangeReason.NotSet, u.map(function (e) {
                  return c.CursorState.fromModelSelection(e)
                })), 1 === u.length) {
              var h = new r.Position(u[0].positionLineNumber,
                  u[0].positionColumn);
              t.revealPosition(h, !1, !0)
            }
          }, t.prototype._moveTo = function (e, t, n) {
            return n ? new i.Selection(e.selectionStartLineNumber,
                    e.selectionStartColumn, t.lineNumber, t.column)
                : new i.Selection(t.lineNumber, t.column, t.lineNumber,
                    t.column)
          }, t
        }(o.EditorCommand);
        t.MoveWordCommand = h;
        var p = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype._move = function (e, t, n, i) {
            return a.WordOperations.moveWordLeft(e, t, n, i)
          }, t
        }(h);
        t.WordLeftCommand = p;
        var g = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype._move = function (e, t, n, i) {
            return a.WordOperations.moveWordRight(e, t, n, i)
          }, t
        }(h);
        t.WordRightCommand = g;
        var m = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !1,
              wordNavigationType: 0,
              id: "cursorWordStartLeft",
              precondition: null,
              kbOpts: {
                kbExpr: n.EditorContextKeys.textFocus,
                primary: 2063,
                mac: {primary: 527}
              }
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(p);
        t.CursorWordStartLeft = m;
        var _ = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !1,
              wordNavigationType: 1,
              id: "cursorWordEndLeft",
              precondition: null
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(p);
        t.CursorWordEndLeft = _;
        var y = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !1,
              wordNavigationType: 0,
              id: "cursorWordLeft",
              precondition: null
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(p);
        t.CursorWordLeft = y;
        var C = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !0,
              wordNavigationType: 0,
              id: "cursorWordStartLeftSelect",
              precondition: null,
              kbOpts: {
                kbExpr: n.EditorContextKeys.textFocus,
                primary: 3087,
                mac: {primary: 1551}
              }
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(p);
        t.CursorWordStartLeftSelect = C;
        var b = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !0,
              wordNavigationType: 1,
              id: "cursorWordEndLeftSelect",
              precondition: null
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(p);
        t.CursorWordEndLeftSelect = b;
        var w = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !0,
              wordNavigationType: 0,
              id: "cursorWordLeftSelect",
              precondition: null
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(p);
        t.CursorWordLeftSelect = w;
        var S = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !1,
              wordNavigationType: 0,
              id: "cursorWordStartRight",
              precondition: null
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(g);
        t.CursorWordStartRight = S;
        var E = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !1,
              wordNavigationType: 1,
              id: "cursorWordEndRight",
              precondition: null,
              kbOpts: {
                kbExpr: n.EditorContextKeys.textFocus,
                primary: 2065,
                mac: {primary: 529}
              }
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(g);
        t.CursorWordEndRight = E;
        var L = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !1,
              wordNavigationType: 1,
              id: "cursorWordRight",
              precondition: null
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(g);
        t.CursorWordRight = L;
        var x = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !0,
              wordNavigationType: 0,
              id: "cursorWordStartRightSelect",
              precondition: null
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(g);
        t.CursorWordStartRightSelect = x;
        var N = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !0,
              wordNavigationType: 1,
              id: "cursorWordEndRightSelect",
              precondition: null,
              kbOpts: {
                kbExpr: n.EditorContextKeys.textFocus,
                primary: 3089,
                mac: {primary: 1553}
              }
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(g);
        t.CursorWordEndRightSelect = N;
        var M = function (e) {
          function t() {
            return e.call(this, {
              inSelectionMode: !0,
              wordNavigationType: 1,
              id: "cursorWordRightSelect",
              precondition: null
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(g);
        t.CursorWordRightSelect = M;
        var T = function (e) {
          function t(t) {
            var n = e.call(this, t) || this;
            return n._whitespaceHeuristics = t.whitespaceHeuristics, n._wordNavigationType = t.wordNavigationType, n
          }

          return f(t, e), t.prototype.runEditorCommand = function (e, t, n) {
            var i = this, o = t.getConfiguration(),
                r = l.getMapForWordSeparators(o.wordSeparators),
                s = t.getModel(), a = t.getSelections().map(function (e) {
                  var t = i._delete(r, s, e, i._whitespaceHeuristics,
                      i._wordNavigationType);
                  return new u.ReplaceCommand(t, "")
                });
            t.pushUndoStop(), t.executeCommands(this.id, a), t.pushUndoStop()
          }, t
        }(o.EditorCommand);
        t.DeleteWordCommand = T;
        var k = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype._delete = function (e, t, n, i, o) {
            var r = a.WordOperations.deleteWordLeft(e, t, n, i, o);
            return r || new s.Range(1, 1, 1, 1)
          }, t
        }(T);
        t.DeleteWordLeftCommand = k;
        var I = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype._delete = function (e, t, n, i, o) {
            var r = a.WordOperations.deleteWordRight(e, t, n, i, o);
            if (r) {
              return r;
            }
            var u = t.getLineCount(), l = t.getLineMaxColumn(u);
            return new s.Range(u, l, u, l)
          }, t
        }(T);
        t.DeleteWordRightCommand = I;
        var D = function (e) {
          function t() {
            return e.call(this, {
              whitespaceHeuristics: !1,
              wordNavigationType: 0,
              id: "deleteWordStartLeft",
              precondition: n.EditorContextKeys.writable
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(k);
        t.DeleteWordStartLeft = D;
        var O = function (e) {
          function t() {
            return e.call(this, {
              whitespaceHeuristics: !1,
              wordNavigationType: 1,
              id: "deleteWordEndLeft",
              precondition: n.EditorContextKeys.writable
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(k);
        t.DeleteWordEndLeft = O;
        var R = function (e) {
          function t() {
            return e.call(this, {
              whitespaceHeuristics: !0,
              wordNavigationType: 0,
              id: "deleteWordLeft",
              precondition: n.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: n.EditorContextKeys.textFocus,
                primary: 2049,
                mac: {primary: 513}
              }
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(k);
        t.DeleteWordLeft = R;
        var P = function (e) {
          function t() {
            return e.call(this, {
              whitespaceHeuristics: !1,
              wordNavigationType: 0,
              id: "deleteWordStartRight",
              precondition: n.EditorContextKeys.writable
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(I);
        t.DeleteWordStartRight = P;
        var A = function (e) {
          function t() {
            return e.call(this, {
              whitespaceHeuristics: !1,
              wordNavigationType: 1,
              id: "deleteWordEndRight",
              precondition: n.EditorContextKeys.writable
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(I);
        t.DeleteWordEndRight = A;
        var F = function (e) {
          function t() {
            return e.call(this, {
              whitespaceHeuristics: !0,
              wordNavigationType: 1,
              id: "deleteWordRight",
              precondition: n.EditorContextKeys.writable,
              kbOpts: {
                kbExpr: n.EditorContextKeys.textFocus,
                primary: 2068,
                mac: {primary: 532}
              }
            }) || this
          }

          return f(t, e), t = v([o.editorCommand], t)
        }(I);
        t.DeleteWordRight = F
      }), define(d[477], h([1, 0, 381, 13, 77]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    !function (e) {
      function t() {
        var t = e.call(this, {
          id: "editor.action.toggleHighContrast",
          label: n.localize(0, null),
          alias: "Toggle High Contrast Theme",
          precondition: null
        }) || this;
        return t._originalThemeName = null, t
      }

      f(t, e), t.prototype.run = function (e, t) {
        var n = e.get(o.IStandaloneThemeService);
        this._originalThemeName ? (n.setTheme(
                this._originalThemeName), this._originalThemeName = null)
            : (this._originalThemeName = n.getTheme().themeName, n.setTheme(
                "hc-black"))
      }, t = v([i.editorAction], t)
    }(i.EditorAction)
  }), define(d[478], h([1, 0, 160, 58, 50]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function () {
      function e(e, t, i) {
        this.contextView = new n.ContextView(e)
      }

      return e.prototype.dispose = function () {
        this.contextView.dispose()
      }, e.prototype.setContainer = function (e) {
        this.contextView.setContainer(e)
      }, e.prototype.showContextView = function (e) {
        this.contextView.show(e)
      }, e.prototype.layout = function () {
        this.contextView.layout()
      }, e.prototype.hideContextView = function (e) {
        this.contextView.hide(e)
      }, e = v([y(1, i.ITelemetryService), y(2, o.IMessageService)], e)
    }();
    t.ContextViewService = r
  }), define(d[479], h([1, 0, 7, 166, 45, 62, 46, 420]),
      function (e, t, n, i, o, r, s, a) {
        "use strict";

        function u(e) {
          if (!e) {
            return e;
          }
          for (var t = "", n = 0; n < e.length; n++) {
            var i = e[n];
            i >= "0" && i <= "9" ? t += "0" : t += i >= "a" && i <= "z" ? "a"
                : i >= "A" && i <= "Z" ? "A" : i
          }
          return t
        }

        function l(e) {
          if (!e) {
            return [];
          }
          var t = [];
          return c(t, "", e), t
        }

        function c(e, t, n) {
          n && "object" == typeof n && !Array.isArray(n) ? Object.keys(
              n).forEach(function (i) {
            return c(e, t ? t + "." + i : i, n[i])
          }) : e.push(t)
        }

        function d(e, t) {
          return e ? t.reduce(function (t, n) {
            var i = n.split(".").reduce(function (e, t) {
              return e && "object" == typeof e ? e[t] : void 0
            }, e);
            return void 0 !== i && t.push((o = {}, o[n] = i, o)), t;
            var o
          }, []) : []
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.NullTelemetryService = {
          _serviceBrand: void 0,
          publicLog: function (e, t) {
            return n.TPromise.as(null)
          },
          isOptedIn: !0,
          getTelemetryInfo: function () {
            return n.TPromise.as({
              instanceId: "someValue.instanceId",
              sessionId: "someValue.sessionId",
              machineId: "someValue.machineId"
            })
          }
        }, t.combinedAppender = function () {
          for (var e = [], t = 0; t < arguments.length;
              t++) {
            e[t] = arguments[t];
          }
          return {
            log: function (t, n) {
              return e.forEach(function (e) {
                return e.log(t, n)
              })
            }
          }
        }, t.NullAppender = {
          log: function () {
            return null
          }
        }, t.anonymize = u, t.telemetryURIDescriptor = function (e) {
          var t = e && e.fsPath;
          return t ? {
            mimeType: i.guessMimeTypes(t).join(", "),
            ext: o.extname(t),
            path: u(t)
          } : {}
        };
        var h = ["editor.tabCompletion", "editor.fontFamily",
          "editor.fontWeight", "editor.fontSize", "editor.lineHeight",
          "editor.letterSpacing", "editor.lineNumbers", "editor.rulers",
          "editor.wordSeparators", "editor.tabSize", "editor.insertSpaces",
          "editor.detectIndentation", "editor.roundedSelection",
          "editor.scrollBeyondLastLine", "editor.minimap.enabled",
          "editor.minimap.renderCharacters", "editor.minimap.maxColumn",
          "editor.find.seedSearchStringFromSelection",
          "editor.find.autoFindInSelection", "editor.wordWrap",
          "editor.wordWrapColumn", "editor.wrappingIndent",
          "editor.mouseWheelScrollSensitivity", "editor.multiCursorModifier",
          "editor.quickSuggestions", "editor.quickSuggestionsDelay",
          "editor.parameterHints", "editor.autoClosingBrackets",
          "editor.autoIndent", "editor.formatOnType", "editor.formatOnPaste",
          "editor.suggestOnTriggerCharacters", "editor.acceptSuggestionOnEnter",
          "editor.acceptSuggestionOnCommitCharacter",
          "editor.snippetSuggestions", "editor.emptySelectionClipboard",
          "editor.wordBasedSuggestions", "editor.suggestFontSize",
          "editor.suggestLineHeight", "editor.selectionHighlight",
          "editor.occurrencesHighlight", "editor.overviewRulerLanes",
          "editor.overviewRulerBorder", "editor.cursorBlinking",
          "editor.cursorStyle", "editor.mouseWheelZoom", "editor.fontLigatures",
          "editor.hideCursorInOverviewRuler", "editor.renderWhitespace",
          "editor.renderControlCharacters", "editor.renderIndentGuides",
          "editor.renderLineHighlight", "editor.codeLens", "editor.folding",
          "editor.showFoldingControls", "editor.matchBrackets",
          "editor.glyphMargin", "editor.useTabStops",
          "editor.trimAutoWhitespace", "editor.stablePeek",
          "editor.dragAndDrop", "editor.formatOnSave", "window.zoomLevel",
          "files.autoSave", "files.hotExit", "files.associations",
          "workbench.statusBar.visible", "files.trimTrailingWhitespace",
          "git.confirmSync", "workbench.sideBar.location",
          "window.openFilesInNewWindow", "javascript.validate.enable",
          "window.reopenFolders", "window.restoreWindows",
          "extensions.autoUpdate", "files.eol", "explorer.openEditors.visible",
          "workbench.editor.enablePreview", "files.autoSaveDelay",
          "workbench.editor.showTabs", "files.encoding",
          "files.autoGuessEncoding", "git.enabled", "http.proxyStrictSSL",
          "terminal.integrated.fontFamily",
          "workbench.editor.enablePreviewFromQuickOpen",
          "workbench.editor.swipeToNavigate", "php.builtInCompletions.enable",
          "php.validate.enable", "php.validate.run",
          "workbench.welcome.enabled", "workbench.startupEditor"];
        t.configurationTelemetry = function (e, t) {
          return t.onDidUpdateConfiguration(function (t) {
            t.source !== r.ConfigurationSource.Default && (e.publicLog(
                "updateConfiguration", {
                  configurationSource: r.ConfigurationSource[t.source],
                  configurationKeys: l(t.sourceConfig)
                }), e.publicLog("updateConfigurationValues", {
              configurationSource: r.ConfigurationSource[t.source],
              configurationValues: d(t.sourceConfig, h)
            }))
          })
        }, t.lifecycleTelemetry = function (e, t) {
          return t.onShutdown(function (t) {
            e.publicLog("shutdown", {reason: a.ShutdownReason[t]})
          })
        }, t.keybindingsTelemetry = function (e, t) {
          return t.onDidUpdateKeybindings(function (t) {
            t.source === s.KeybindingSource.User && t.keybindings
            && e.publicLog("updateKeybindings", {
              bindings: t.keybindings.map(function (e) {
                return {
                  key: e.key,
                  command: e.command,
                  when: e.when,
                  args: !!e.args || void 0
                }
              })
            })
          })
        }
      }), define(d[480], h([1, 0, 24, 4, 487, 70, 7, 64, 45, 31, 58, 16, 479]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var p = function () {
          function e(e, t, n) {
            void 0 === n
            && (n = h.NullTelemetryService), this._editorService = e, this._commandService = t, this._telemetryService = n
          }

          return e.prototype.open = function (e, t) {
            this._telemetryService.publicLog("openerService",
                {scheme: e.scheme});
            var a, c = e.scheme, d = e.path, h = e.query, p = e.fragment;
            if (c === r.Schemas.http || c
                === r.Schemas.https) {
              i.windowOpenNoOpener(
                  e.toString(!0));
            } else if ("command" === c
                && l.CommandsRegistry.getCommand(d)) {
              var f = [];
              try {
                f = o.parse(h), Array.isArray(f) || (f = [f])
              } catch (e) {
              }
              a = (v = this._commandService).executeCommand.apply(v,
                  [d].concat(f))
            } else {
              var g = void 0, m = /^L?(\d+)(?:,(\d+))?/.exec(p);
              if (m && (g = {
                startLineNumber: parseInt(m[1]),
                startColumn: m[2] ? parseInt(m[2]) : 1
              }, e = e.with({fragment: ""})), !e.scheme) {
                return s.TPromise.as(
                    void 0);
              }
              e.scheme === r.Schemas.file && (e = n.default.file(
                  u.normalize(e.fsPath))), a = this._editorService.openEditor(
                  {resource: e, options: {selection: g}}, t && t.openToSide)
            }
            return s.TPromise.as(a);
            var v
          }, e = v([y(0, a.IEditorService), y(1, l.ICommandService),
            y(2, d.optional(c.ITelemetryService))], e)
        }();
        t.OpenerService = p
      }), define(d[23], h([1, 0, 44, 32, 385]), function (e, t, n, i, o) {
    "use strict";

    function r(e, t, n) {
      return h.registerColor(e, t, n)
    }

    function s(e, t) {
      return function (n) {
        var i = c(e, n);
        return i ? i.darken(t) : null
      }
    }

    function a(e, t) {
      return function (n) {
        var i = c(e, n);
        return i ? i.lighten(t) : null
      }
    }

    function u(e, t) {
      return function (n) {
        var i = c(e, n);
        return i ? i.transparent(t) : null
      }
    }

    function l(e, t, n, o) {
      return function (r) {
        var s = c(e, r);
        if (s) {
          var a = c(t, r);
          return a ? s.isDarkerThan(a) ? i.Color.getLighterColor(s, a,
                  n).transparent(o) : i.Color.getDarkerColor(s, a, n).transparent(o)
              : s.transparent(n * o)
        }
        return null
      }
    }

    function c(e, t) {
      return null === e ? null : "string" == typeof e ? "#" === e[0]
          ? i.Color.fromHex(e) : t.getColor(e) : e instanceof i.Color ? e
          : "function" == typeof e ? e(t) : null
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.Extensions = {ColorContribution: "base.contributions.colors"};
    var d = o.localize(0, null), h = new (function () {
      function e() {
        this.colorSchema = {
          type: "object",
          description: o.localize(1, null),
          properties: {},
          additionalProperties: !1
        }, this.colorsById = {}
      }

      return e.prototype.registerColor = function (e, t, n) {
        var i = {id: e, description: n, defaults: t};
        return this.colorsById[e] = i, this.colorSchema.properties[e] = {
          type: "string",
          description: n,
          format: "color",
          pattern: "^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$",
          patternErrorMessage: d
        }, e
      }, e.prototype.getColors = function () {
        var e = this;
        return Object.keys(this.colorsById).map(function (t) {
          return e.colorsById[t]
        })
      }, e.prototype.resolveDefaultColor = function (e, t) {
        var n = this.colorsById[e];
        return n && n.defaults ? c(n.defaults[t.type], t) : null
      }, e.prototype.getColorSchema = function () {
        return this.colorSchema
      }, e.prototype.toString = function () {
        var e = this;
        return Object.keys(this.colorsById).sort(function (e, t) {
          var n = -1 === e.indexOf(".") ? 0 : 1,
              i = -1 === t.indexOf(".") ? 0 : 1;
          return n !== i ? n - i : e.localeCompare(t)
        }).map(function (t) {
          return "- `" + t + "`: " + e.colorsById[t].description
        }).join("\n")
      }, e
    }());
    n.Registry.add(t.Extensions.ColorContribution,
        h), t.registerColor = r, t.foreground = r("foreground",
        {dark: "#CCCCCC", light: "#6C6C6C", hc: "#FFFFFF"},
        o.localize(2, null)), t.errorForeground = r("errorForeground",
        {dark: "#F48771", light: "#A1260D", hc: "#F48771"},
        o.localize(3, null)), t.descriptionForeground = r(
        "descriptionForeground", {
          light: u(t.foreground, .7),
          dark: u(t.foreground, .7),
          hc: u(t.foreground, .7)
        }, o.localize(4, null)), t.focusBorder = r("focusBorder", {
      dark: i.Color.fromHex("#0E639C").transparent(.6),
      light: i.Color.fromHex("#007ACC").transparent(.4),
      hc: "#F38518"
    }, o.localize(5, null)), t.contrastBorder = r("contrastBorder",
        {light: null, dark: null, hc: "#6FC3DF"},
        o.localize(6, null)), t.activeContrastBorder = r("contrastActiveBorder",
        {light: null, dark: null, hc: t.focusBorder},
        o.localize(7, null)), t.selectionBackground = r("selection.background",
        {light: null, dark: null, hc: null},
        o.localize(8, null)), t.textSeparatorForeground = r(
        "textSeparator.foreground",
        {light: "#0000002e", dark: "#ffffff2e", hc: i.Color.black},
        o.localize(9, null)), t.textLinkForeground = r("textLink.foreground",
        {light: "#4080D0", dark: "#4080D0", hc: "#4080D0"},
        o.localize(10, null)), t.textLinkActiveForeground = r(
        "textLink.activeForeground",
        {light: "#4080D0", dark: "#4080D0", hc: "#4080D0"},
        o.localize(11, null)), t.textPreformatForeground = r(
        "textPreformat.foreground",
        {light: "#A31515", dark: "#D7BA7D", hc: "#D7BA7D"},
        o.localize(12, null)), t.textBlockQuoteBackground = r(
        "textBlockQuote.background",
        {light: "#7f7f7f1a", dark: "#7f7f7f1a", hc: null},
        o.localize(13, null)), t.textBlockQuoteBorder = r(
        "textBlockQuote.border",
        {light: "#007acc80", dark: "#007acc80", hc: i.Color.white},
        o.localize(14, null)), t.textCodeBlockBackground = r(
        "textCodeBlock.background",
        {light: "#dcdcdc66", dark: "#0a0a0a66", hc: i.Color.black},
        o.localize(15, null)), t.widgetShadow = r("widget.shadow",
        {dark: "#000000", light: "#A8A8A8", hc: null},
        o.localize(16, null)), t.inputBackground = r("input.background",
        {dark: "#3C3C3C", light: i.Color.white, hc: i.Color.black},
        o.localize(17, null)), t.inputForeground = r("input.foreground",
        {dark: t.foreground, light: t.foreground, hc: t.foreground},
        o.localize(18, null)), t.inputBorder = r("input.border",
        {dark: null, light: null, hc: t.contrastBorder},
        o.localize(19, null)), t.inputActiveOptionBorder = r(
        "inputOption.activeBorder",
        {dark: "#007ACC", light: "#007ACC", hc: t.activeContrastBorder},
        o.localize(20, null)), t.inputPlaceholderForeground = r(
        "input.placeholderForeground", {dark: null, light: null, hc: null},
        o.localize(21, null)), t.inputValidationInfoBackground = r(
        "inputValidation.infoBackground",
        {dark: "#063B49", light: "#D6ECF2", hc: i.Color.black},
        o.localize(22, null)), t.inputValidationInfoBorder = r(
        "inputValidation.infoBorder",
        {dark: "#007acc", light: "#007acc", hc: t.contrastBorder},
        o.localize(23, null)), t.inputValidationWarningBackground = r(
        "inputValidation.warningBackground",
        {dark: "#352A05", light: "#F6F5D2", hc: i.Color.black},
        o.localize(24, null)), t.inputValidationWarningBorder = r(
        "inputValidation.warningBorder",
        {dark: "#B89500", light: "#B89500", hc: t.contrastBorder},
        o.localize(25, null)), t.inputValidationErrorBackground = r(
        "inputValidation.errorBackground",
        {dark: "#5A1D1D", light: "#F2DEDE", hc: i.Color.black},
        o.localize(26, null)), t.inputValidationErrorBorder = r(
        "inputValidation.errorBorder",
        {dark: "#BE1100", light: "#BE1100", hc: t.contrastBorder},
        o.localize(27, null)), t.selectBackground = r("dropdown.background",
        {dark: "#3C3C3C", light: i.Color.white, hc: i.Color.black},
        o.localize(28, null)), t.selectForeground = r("dropdown.foreground",
        {dark: "#F0F0F0", light: null, hc: i.Color.white},
        o.localize(29, null)), t.selectBorder = r("dropdown.border",
        {dark: t.selectBackground, light: "#CECECE", hc: t.contrastBorder},
        o.localize(30, null)), t.listFocusBackground = r("list.focusBackground",
        {dark: "#073655", light: "#DCEBFC", hc: null},
        o.localize(31, null)), t.listFocusForeground = r("list.focusForeground",
        {dark: null, light: null, hc: null},
        o.localize(32, null)), t.listActiveSelectionBackground = r(
        "list.activeSelectionBackground",
        {dark: "#094771", light: "#3399FF", hc: null},
        o.localize(33, null)), t.listActiveSelectionForeground = r(
        "list.activeSelectionForeground",
        {dark: i.Color.white, light: i.Color.white, hc: null},
        o.localize(34, null)), t.listInactiveSelectionBackground = r(
        "list.inactiveSelectionBackground",
        {dark: "#3F3F46", light: "#CCCEDB", hc: null},
        o.localize(35, null)), t.listInactiveSelectionForeground = r(
        "list.inactiveSelectionForeground", {dark: null, light: null, hc: null},
        o.localize(36, null)), t.listInactiveFocusBackground = r(
        "list.inactiveFocusBackground",
        {dark: "#313135", light: "#d8dae6", hc: null},
        o.localize(37, null)), t.listInactiveFocusForeground = r(
        "list.inactiveFocusForeground", {dark: null, light: null, hc: null},
        o.localize(38, null)), t.listHoverBackground = r("list.hoverBackground",
        {dark: "#2A2D2E", light: "#F0F0F0", hc: null},
        o.localize(39, null)), t.listHoverForeground = r("list.hoverForeground",
        {dark: null, light: null, hc: null},
        o.localize(40, null)), t.listDropBackground = r("list.dropBackground",
        {dark: t.listFocusBackground, light: t.listFocusBackground, hc: null},
        o.localize(41, null)), t.listHighlightForeground = r(
        "list.highlightForeground",
        {dark: "#0097fb", light: "#007acc", hc: t.focusBorder},
        o.localize(42, null)), t.pickerGroupForeground = r(
        "pickerGroup.foreground", {
          dark: i.Color.fromHex("#0097FB").transparent(.6),
          light: i.Color.fromHex("#007ACC").transparent(.6),
          hc: i.Color.white
        }, o.localize(43, null)), t.pickerGroupBorder = r("pickerGroup.border",
        {dark: "#3F3F46", light: "#CCCEDB", hc: i.Color.white},
        o.localize(44, null)), t.buttonForeground = r("button.foreground",
        {dark: i.Color.white, light: i.Color.white, hc: i.Color.white},
        o.localize(45, null)), t.buttonBackground = r("button.background",
        {dark: "#0E639C", light: "#007ACC", hc: null},
        o.localize(46, null)), t.buttonHoverBackground = r(
        "button.hoverBackground", {
          dark: a(t.buttonBackground, .2),
          light: s(t.buttonBackground, .2),
          hc: null
        }, o.localize(47, null)), t.badgeBackground = r("badge.background",
        {dark: "#4D4D4D", light: "#BEBEBE", hc: i.Color.black},
        o.localize(48, null)), t.badgeForeground = r("badge.foreground",
        {dark: i.Color.white, light: i.Color.white, hc: i.Color.white},
        o.localize(49, null)), t.scrollbarShadow = r("scrollbar.shadow",
        {dark: "#000000", light: "#DDDDDD", hc: null},
        o.localize(50, null)), t.scrollbarSliderBackground = r(
        "scrollbarSlider.background", {
          dark: i.Color.fromHex("#797979").transparent(.4),
          light: i.Color.fromHex("#646464").transparent(.4),
          hc: u(t.contrastBorder, .6)
        }, o.localize(51, null)), t.scrollbarSliderHoverBackground = r(
        "scrollbarSlider.hoverBackground", {
          dark: i.Color.fromHex("#646464").transparent(.7),
          light: i.Color.fromHex("#646464").transparent(.7),
          hc: u(t.contrastBorder, .8)
        }, o.localize(52, null)), t.scrollbarSliderActiveBackground = r(
        "scrollbarSlider.activeBackground", {
          dark: i.Color.fromHex("#BFBFBF").transparent(.4),
          light: i.Color.fromHex("#000000").transparent(.6),
          hc: t.contrastBorder
        }, o.localize(53, null)), t.progressBarBackground = r(
        "progressBar.background", {
          dark: i.Color.fromHex("#0E70C0"),
          light: i.Color.fromHex("#0E70C0"),
          hc: t.contrastBorder
        }, o.localize(54, null)), t.editorBackground = r("editor.background",
        {light: "#fffffe", dark: "#1E1E1E", hc: i.Color.black},
        o.localize(55, null)), t.editorForeground = r("editor.foreground",
        {light: "#333333", dark: "#BBBBBB", hc: i.Color.white},
        o.localize(56, null)), t.editorWidgetBackground = r(
        "editorWidget.background",
        {dark: "#2D2D30", light: "#EFEFF2", hc: "#0C141F"},
        o.localize(57, null)), t.editorWidgetBorder = r("editorWidget.border",
        {dark: "#454545", light: "#C8C8C8", hc: t.contrastBorder},
        o.localize(58, null)), t.editorSelectionBackground = r(
        "editor.selectionBackground",
        {light: "#ADD6FF", dark: "#264F78", hc: "#f3f518"},
        o.localize(59, null)), t.editorSelectionForeground = r(
        "editor.selectionForeground", {light: null, dark: null, hc: "#000000"},
        o.localize(60, null)), t.editorInactiveSelection = r(
        "editor.inactiveSelectionBackground", {
          light: u(t.editorSelectionBackground, .5),
          dark: u(t.editorSelectionBackground, .5),
          hc: u(t.editorSelectionBackground, .5)
        }, o.localize(61, null)), t.editorSelectionHighlight = r(
        "editor.selectionHighlightBackground", {
          light: l(t.editorSelectionBackground, t.editorBackground, .3, .6),
          dark: l(t.editorSelectionBackground, t.editorBackground, .3, .6),
          hc: null
        }, o.localize(62, null)), t.editorFindMatch = r(
        "editor.findMatchBackground",
        {light: "#A8AC94", dark: "#515C6A", hc: null},
        o.localize(63, null)), t.editorFindMatchHighlight = r(
        "editor.findMatchHighlightBackground",
        {light: "#EA5C0055", dark: "#EA5C0055", hc: null},
        o.localize(64, null)), t.editorFindRangeHighlight = r(
        "editor.findRangeHighlightBackground",
        {dark: "#3a3d4166", light: "#b4b4b44d", hc: null},
        o.localize(65, null)), t.editorHoverHighlight = r(
        "editor.hoverHighlightBackground",
        {light: "#ADD6FF26", dark: "#264f7840", hc: "#ADD6FF26"},
        o.localize(66, null)), t.editorHoverBackground = r(
        "editorHoverWidget.background", {
          light: t.editorWidgetBackground,
          dark: t.editorWidgetBackground,
          hc: t.editorWidgetBackground
        }, o.localize(67, null)), t.editorHoverBorder = r(
        "editorHoverWidget.border", {
          light: t.editorWidgetBorder,
          dark: t.editorWidgetBorder,
          hc: t.editorWidgetBorder
        }, o.localize(68, null)), t.editorActiveLinkForeground = r(
        "editorLink.activeForeground",
        {dark: "#4E94CE", light: i.Color.blue, hc: i.Color.cyan},
        o.localize(69, null)), t.defaultInsertColor = i.Color.fromRGBA(
        new i.RGBA(155, 185, 85, 51)), t.defaultRemoveColor = i.Color.fromRGBA(
        new i.RGBA(255, 0, 0, 51)), t.diffInserted = r(
        "diffEditor.insertedTextBackground",
        {dark: t.defaultInsertColor, light: t.defaultInsertColor, hc: null},
        o.localize(70, null)), t.diffRemoved = r(
        "diffEditor.removedTextBackground",
        {dark: t.defaultRemoveColor, light: t.defaultRemoveColor, hc: null},
        o.localize(71, null)), t.diffInsertedOutline = r(
        "diffEditor.insertedTextBorder",
        {dark: null, light: null, hc: "#33ff2eff"},
        o.localize(72, null)), t.diffRemovedOutline = r(
        "diffEditor.removedTextBorder",
        {dark: null, light: null, hc: "#FF008F"}, o.localize(73, null));
    var p = i.Color.fromHex("#40C8AE").transparent(.5),
        f = i.Color.fromHex("#40A6FF").transparent(.5),
        g = i.Color.fromHex("#606060").transparent(.4);
    t.mergeCurrentHeaderBackground = r("merge.currentHeaderBackground",
        {dark: p, light: p, hc: null},
        o.localize(74, null)), t.mergeCurrentContentBackground = r(
        "merge.currentContentBackground", {
          dark: u(t.mergeCurrentHeaderBackground, .4),
          light: u(t.mergeCurrentHeaderBackground, .4),
          hc: u(t.mergeCurrentHeaderBackground, .4)
        }, o.localize(75, null)), t.mergeIncomingHeaderBackground = r(
        "merge.incomingHeaderBackground", {dark: f, light: f, hc: null},
        o.localize(76, null)), t.mergeIncomingContentBackground = r(
        "merge.incomingContentBackground", {
          dark: u(t.mergeIncomingHeaderBackground, .4),
          light: u(t.mergeIncomingHeaderBackground, .4),
          hc: u(t.mergeIncomingHeaderBackground, .4)
        }, o.localize(77, null)), t.mergeCommonHeaderBackground = r(
        "merge.commonHeaderBackground", {dark: g, light: g, hc: null},
        o.localize(78, null)), t.mergeCommonContentBackground = r(
        "merge.commonContentBackground", {
          dark: u(t.mergeCommonHeaderBackground, .4),
          light: u(t.mergeCommonHeaderBackground, .4),
          hc: u(t.mergeCommonHeaderBackground, .4)
        }, o.localize(79, null)), t.mergeBorder = r("merge.border",
        {dark: null, light: null, hc: "#C3DF6F"},
        o.localize(80, null)), t.overviewRulerCurrentContentForeground = r(
        "editorOverviewRuler.currentContentForeground", {
          dark: u(t.mergeCurrentHeaderBackground, 1),
          light: u(t.mergeCurrentHeaderBackground, 1),
          hc: t.mergeBorder
        }, o.localize(81, null)), t.overviewRulerIncomingContentForeground = r(
        "editorOverviewRuler.incomingContentForeground", {
          dark: u(t.mergeIncomingHeaderBackground, 1),
          light: u(t.mergeIncomingHeaderBackground, 1),
          hc: t.mergeBorder
        }, o.localize(82, null)), t.overviewRulerCommonContentForeground = r(
        "editorOverviewRuler.commonContentForeground", {
          dark: u(t.mergeCommonHeaderBackground, 1),
          light: u(t.mergeCommonHeaderBackground, 1),
          hc: t.mergeBorder
        }, o.localize(83,
            null)), t.darken = s, t.lighten = a, t.transparent = u, t.oneOf = function () {
      for (var e = [], t = 0; t < arguments.length; t++) {
        e[t] = arguments[t];
      }
      return function (t) {
        for (var n = 0, i = e; n < i.length; n++) {
          var o = c(i[n], t);
          if (o) {
            return o
          }
        }
        return null
      }
    }
  }), define(d[137], h([1, 0, 23]), function (e, t, n) {
    "use strict";

    function i(e, t, n) {
      function i(e) {
        var i = Object.create(null);
        for (var o in t) {
          var r = t[o];
          "string" == typeof r ? i[o] = e.getColor(r) : "function" == typeof r
              && (i[o] = r(e))
        }
        "function" == typeof n ? n(i) : n.style(i)
      }

      return i(e.getTheme()), e.onThemeChange(i)
    }

    Object.defineProperty(t, "__esModule",
        {value: !0}), t.attachStyler = i, t.attachCheckboxStyler = function (e,
        t, o) {
      return i(t, {
        inputActiveOptionBorder: o && o.inputActiveOptionBorderColor
            || n.inputActiveOptionBorder
      }, e)
    }, t.attachBadgeStyler = function (e, t, o) {
      return i(t, {
        badgeBackground: o && o.badgeBackground || n.badgeBackground,
        badgeForeground: o && o.badgeForeground || n.badgeForeground,
        badgeBorder: n.contrastBorder
      }, e)
    }, t.attachInputBoxStyler = function (e, t, o) {
      return i(t, {
        inputBackground: o && o.inputBackground || n.inputBackground,
        inputForeground: o && o.inputForeground || n.inputForeground,
        inputBorder: o && o.inputBorder || n.inputBorder,
        inputValidationInfoBorder: o && o.inputValidationInfoBorder
            || n.inputValidationInfoBorder,
        inputValidationInfoBackground: o && o.inputValidationInfoBackground
            || n.inputValidationInfoBackground,
        inputValidationWarningBorder: o && o.inputValidationWarningBorder
            || n.inputValidationWarningBorder,
        inputValidationWarningBackground: o
            && o.inputValidationWarningBackground
            || n.inputValidationWarningBackground,
        inputValidationErrorBorder: o && o.inputValidationErrorBorder
            || n.inputValidationErrorBorder,
        inputValidationErrorBackground: o && o.inputValidationErrorBackground
            || n.inputValidationErrorBackground
      }, e)
    }, t.attachSelectBoxStyler = function (e, t, o) {
      return i(t, {
        selectBackground: o && o.selectBackground || n.selectBackground,
        selectForeground: o && o.selectForeground || n.selectForeground,
        selectBorder: o && o.selectBorder || n.selectBorder
      }, e)
    }, t.attachFindInputBoxStyler = function (e, t, o) {
      return i(t, {
        inputBackground: o && o.inputBackground || n.inputBackground,
        inputForeground: o && o.inputForeground || n.inputForeground,
        inputBorder: o && o.inputBorder || n.inputBorder,
        inputActiveOptionBorder: o && o.inputActiveOptionBorder
            || n.inputActiveOptionBorder,
        inputValidationInfoBorder: o && o.inputValidationInfoBorder
            || n.inputValidationInfoBorder,
        inputValidationInfoBackground: o && o.inputValidationInfoBackground
            || n.inputValidationInfoBackground,
        inputValidationWarningBorder: o && o.inputValidationWarningBorder
            || n.inputValidationWarningBorder,
        inputValidationWarningBackground: o
            && o.inputValidationWarningBackground
            || n.inputValidationWarningBackground,
        inputValidationErrorBorder: o && o.inputValidationErrorBorder
            || n.inputValidationErrorBorder,
        inputValidationErrorBackground: o && o.inputValidationErrorBackground
            || n.inputValidationErrorBackground
      }, e)
    }, t.attachQuickOpenStyler = function (e, t, o) {
      return i(t, {
        foreground: o && o.foreground || n.foreground,
        background: o && o.background || n.editorBackground,
        borderColor: o && o.borderColor || n.contrastBorder,
        widgetShadow: o && o.widgetShadow || n.widgetShadow,
        progressBarBackground: o && o.progressBarBackground
            || n.progressBarBackground,
        pickerGroupForeground: o && o.pickerGroupForeground
            || n.pickerGroupForeground,
        pickerGroupBorder: o && o.pickerGroupBorder || n.pickerGroupBorder,
        inputBackground: o && o.inputBackground || n.inputBackground,
        inputForeground: o && o.inputForeground || n.inputForeground,
        inputBorder: o && o.inputBorder || n.inputBorder,
        inputValidationInfoBorder: o && o.inputValidationInfoBorder
            || n.inputValidationInfoBorder,
        inputValidationInfoBackground: o && o.inputValidationInfoBackground
            || n.inputValidationInfoBackground,
        inputValidationWarningBorder: o && o.inputValidationWarningBorder
            || n.inputValidationWarningBorder,
        inputValidationWarningBackground: o
            && o.inputValidationWarningBackground
            || n.inputValidationWarningBackground,
        inputValidationErrorBorder: o && o.inputValidationErrorBorder
            || n.inputValidationErrorBorder,
        inputValidationErrorBackground: o && o.inputValidationErrorBackground
            || n.inputValidationErrorBackground,
        listFocusBackground: o && o.listFocusBackground
            || n.listFocusBackground,
        listFocusForeground: o && o.listFocusForeground
            || n.listFocusForeground,
        listActiveSelectionBackground: o && o.listActiveSelectionBackground
            || n.lighten(n.listActiveSelectionBackground, .1),
        listActiveSelectionForeground: o && o.listActiveSelectionForeground
            || n.listActiveSelectionForeground,
        listFocusAndSelectionBackground: o && o.listFocusAndSelectionBackground
            || n.listActiveSelectionBackground,
        listFocusAndSelectionForeground: o && o.listFocusAndSelectionForeground
            || n.listActiveSelectionForeground,
        listInactiveSelectionBackground: o && o.listInactiveSelectionBackground
            || n.listInactiveSelectionBackground,
        listInactiveSelectionForeground: o && o.listInactiveSelectionForeground
            || n.listInactiveSelectionForeground,
        listInactiveFocusBackground: o && o.listInactiveFocusBackground
            || n.listInactiveFocusBackground,
        listInactiveFocusForeground: o && o.listInactiveFocusForeground
            || n.listInactiveFocusForeground,
        listHoverBackground: o && o.listHoverBackground
            || n.listHoverBackground,
        listHoverForeground: o && o.listHoverForeground
            || n.listHoverForeground,
        listDropBackground: o && o.listDropBackground || n.listDropBackground,
        listFocusOutline: o && o.listFocusOutline || n.activeContrastBorder,
        listSelectionOutline: o && o.listSelectionOutline
            || n.activeContrastBorder,
        listHoverOutline: o && o.listHoverOutline || n.activeContrastBorder
      }, e)
    }, t.attachListStyler = function (e, t, o) {
      return i(t, {
        listFocusBackground: o && o.listFocusBackground
            || n.listFocusBackground,
        listFocusForeground: o && o.listFocusForeground
            || n.listFocusForeground,
        listActiveSelectionBackground: o && o.listActiveSelectionBackground
            || n.lighten(n.listActiveSelectionBackground, .1),
        listActiveSelectionForeground: o && o.listActiveSelectionForeground
            || n.listActiveSelectionForeground,
        listFocusAndSelectionBackground: o && o.listFocusAndSelectionBackground
            || n.listActiveSelectionBackground,
        listFocusAndSelectionForeground: o && o.listFocusAndSelectionForeground
            || n.listActiveSelectionForeground,
        listInactiveSelectionBackground: o && o.listInactiveSelectionBackground
            || n.listInactiveSelectionBackground,
        listInactiveSelectionForeground: o && o.listInactiveSelectionForeground
            || n.listInactiveSelectionForeground,
        listInactiveFocusBackground: o && o.listInactiveFocusBackground
            || n.listInactiveFocusBackground,
        listInactiveFocusForeground: o && o.listInactiveFocusForeground
            || n.listInactiveFocusForeground,
        listHoverBackground: o && o.listHoverBackground
            || n.listHoverBackground,
        listHoverForeground: o && o.listHoverForeground
            || n.listHoverForeground,
        listDropBackground: o && o.listDropBackground || n.listDropBackground,
        listFocusOutline: o && o.listFocusOutline || n.activeContrastBorder,
        listSelectionOutline: o && o.listSelectionOutline
            || n.activeContrastBorder,
        listHoverOutline: o && o.listHoverOutline || n.activeContrastBorder,
        listInactiveFocusOutline: o && o.listInactiveFocusOutline
      }, e)
    }, t.attachButtonStyler = function (e, t, o) {
      return i(t, {
        buttonForeground: o && o.buttonForeground || n.buttonForeground,
        buttonBackground: o && o.buttonBackground || n.buttonBackground,
        buttonHoverBackground: o && o.buttonHoverBackground
            || n.buttonHoverBackground,
        buttonBorder: n.contrastBorder
      }, e)
    }, t.attachProgressBarStyler = function (e, t, o) {
      return i(t, {
        progressBarBackground: o && o.progressBarBackground
            || n.progressBarBackground
      }, e)
    }, t.attachStylerCallback = function (e, t, n) {
      return i(e, t, n)
    }
  }), define(d[483], h([1, 0, 52, 301, 25, 137]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      function e(e, t, n, i, o, r) {
        this.codeEditor = e, this.themeService = r, this.create(t, n, i, o)
      }

      return e.prototype.create = function (e, t, o, s) {
        this.domNode = n.$().div().getHTMLElement(), this.quickOpenWidget = new i.QuickOpenWidget(
            this.domNode, {onOk: e, onCancel: t, onType: o}, {
              inputPlaceHolder: null,
              inputAriaLabel: s.inputAriaLabel,
              keyboardSupport: !0
            }, null), this.styler = r.attachQuickOpenStyler(
            this.quickOpenWidget,
            this.themeService), this.quickOpenWidget.create(), this.codeEditor.addOverlayWidget(
            this)
      }, e.prototype.setInput = function (e, t) {
        this.quickOpenWidget.setInput(e, t)
      }, e.prototype.getId = function () {
        return e.ID
      }, e.prototype.getDomNode = function () {
        return this.domNode
      }, e.prototype.destroy = function () {
        this.codeEditor.removeOverlayWidget(
            this), this.quickOpenWidget.dispose(), this.styler.dispose()
      }, e.prototype.isVisible = function () {
        return this.visible
      }, e.prototype.show = function (e) {
        this.visible = !0;
        var t = this.codeEditor.getLayoutInfo();
        t && this.quickOpenWidget.layout(
            new n.Dimension(t.width, t.height)), this.quickOpenWidget.show(
            e), this.codeEditor.layoutOverlayWidget(this)
      }, e.prototype.hide = function () {
        this.visible = !1, this.quickOpenWidget.hide(), this.codeEditor.layoutOverlayWidget(
            this)
      }, e.prototype.getPosition = function () {
        return this.visible
            ? {preference: o.OverlayWidgetPositionPreference.TOP_CENTER} : null
      }, e.ID = "editor.contrib.quickOpenEditorWidget", e
    }();
    t.QuickOpenEditorWidget = s
  }), define(d[14], h([1, 0, 16, 44, 11]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.IThemeService = n.createDecorator(
        "themeService"), t.DARK = "dark", t.LIGHT = "light", t.HIGH_CONTRAST = "hc", t.getThemeTypeSelector = function (e) {
      switch (e) {
        case t.DARK:
          return "vs-dark";
        case t.HIGH_CONTRAST:
          return "hc-black";
        default:
          return "vs"
      }
    }, t.Extensions = {ThemingContribution: "base.contributions.theming"};
    var r = new (function () {
      function e() {
        this.themingParticipants = [], this.themingParticipants = [], this.onThemingParticipantAddedEmitter = new o.Emitter
      }

      return e.prototype.onThemeChange = function (e) {
        var t = this;
        return this.themingParticipants.push(
            e), this.onThemingParticipantAddedEmitter.fire(e), {
          dispose: function () {
            var n = t.themingParticipants.indexOf(e);
            t.themingParticipants.splice(n, 1)
          }
        }
      }, Object.defineProperty(e.prototype, "onThemingParticipantAdded", {
        get: function () {
          return this.onThemingParticipantAddedEmitter.event
        }, enumerable: !0, configurable: !0
      }), e.prototype.getThemingParticipants = function () {
        return this.themingParticipants
      }, e
    }());
    i.Registry.add(t.Extensions.ThemingContribution,
        r), t.registerThemingParticipant = function (e) {
      return r.onThemeChange(e)
    }, t.cssRule = function (e) {
      for (var t = [], n = 1; n < arguments.length; n++) {
        t[n
        - 1] = arguments[n];
      }
      for (var i = "", o = 0; o < t.length; o++) {
        i += e[o];
        var r = t[o];
        i += null === r ? "transparent" : r.toString()
      }
      return i += e[e.length - 1]
    }
  }), define(d[485], h([1, 0, 9, 24, 4, 20, 210, 3, 14]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function (e) {
          function t(t, n) {
            void 0 === n && (n = o.createStyleSheet());
            var i = e.call(this) || this;
            return i._styleSheet = n, i._decorationOptionProviders = Object.create(
                null), i._themeService = t, i
          }

          return f(t, e), t.prototype.registerDecorationType = function (e, t,
              n) {
            var i = this._decorationOptionProviders[e];
            if (!i) {
              var o = {
                styleSheet: this._styleSheet,
                key: e,
                parentTypeKey: n,
                options: t
              };
              i = n ? new d(this._themeService, o) : new h(this._themeService,
                  o), this._decorationOptionProviders[e] = i
            }
            i.refCount++
          }, t.prototype.removeDecorationType = function (e) {
            var t = this._decorationOptionProviders[e];
            t && (t.refCount--, t.refCount <= 0
            && (delete this._decorationOptionProviders[e], t.dispose(), this.listCodeEditors().forEach(
                function (t) {
                  return t.removeDecorations(e)
                })))
          }, t.prototype.resolveDecorationOptions = function (e, t) {
            var n = this._decorationOptionProviders[e];
            if (!n) {
              throw new Error("Unknown decoration type key: " + e);
            }
            return n.getOptions(this, t)
          }, t = v([y(0, u.IThemeService)], t)
        }(s.AbstractCodeEditorService);
        t.CodeEditorServiceImpl = l;
        var c, d = function () {
          function e(e, t) {
            this._parentTypeKey = t.parentTypeKey, this.refCount = 0, this._beforeContentRules = new g(
                3, t, e), this._afterContentRules = new g(4, t, e)
          }

          return e.prototype.getOptions = function (e, t) {
            var n = e.resolveDecorationOptions(this._parentTypeKey, !0);
            return this._beforeContentRules
            && (n.beforeContentClassName = this._beforeContentRules.className), this._afterContentRules
            && (n.afterContentClassName = this._afterContentRules.className), n
          }, e.prototype.dispose = function () {
            this._beforeContentRules
            && (this._beforeContentRules.dispose(), this._beforeContentRules = null), this._afterContentRules
            && (this._afterContentRules.dispose(), this._afterContentRules = null)
          }, e
        }(), h = function () {
          function e(e, t) {
            var n = this;
            this.refCount = 0, this._disposables = [];
            var i = function (i) {
              var o = new g(i, t, e);
              if (o.hasContent) {
                return n._disposables.push(o), o.className
              }
            };
            this.className = i(0), this.inlineClassName = i(
                1), this.beforeContentClassName = i(
                3), this.afterContentClassName = i(
                4), this.glyphMarginClassName = i(2);
            var o = t.options;
            this.isWholeLine = Boolean(
                o.isWholeLine), this.stickiness = o.rangeBehavior;
            var s = o.light && o.light.overviewRulerColor
                    || o.overviewRulerColor,
                a = o.dark && o.dark.overviewRulerColor || o.overviewRulerColor;
            void 0 === s && void 0 === a || (this.overviewRuler = {
              color: s || a,
              darkColor: a || s,
              position: o.overviewRulerLane || r.OverviewRulerLane.Center
            })
          }

          return e.prototype.getOptions = function (e, t) {
            return t ? {
              inlineClassName: this.inlineClassName,
              beforeContentClassName: this.beforeContentClassName,
              afterContentClassName: this.afterContentClassName,
              className: this.className,
              glyphMarginClassName: this.glyphMarginClassName,
              isWholeLine: this.isWholeLine,
              overviewRuler: this.overviewRuler,
              stickiness: this.stickiness
            } : this
          }, e.prototype.dispose = function () {
            this._disposables = a.dispose(this._disposables)
          }, e
        }(), p = {
          color: "color:{0} !important;",
          backgroundColor: "background-color:{0};",
          outline: "outline:{0};",
          outlineColor: "outline-color:{0};",
          outlineStyle: "outline-style:{0};",
          outlineWidth: "outline-width:{0};",
          border: "border:{0};",
          borderColor: "border-color:{0};",
          borderRadius: "border-radius:{0};",
          borderSpacing: "border-spacing:{0};",
          borderStyle: "border-style:{0};",
          borderWidth: "border-width:{0};",
          textDecoration: "text-decoration:{0};",
          cursor: "cursor:{0};",
          letterSpacing: "letter-spacing:{0};",
          gutterIconPath: "background:url('{0}') center center no-repeat;",
          gutterIconSize: "background-size:{0};",
          contentText: "content:'{0}';",
          contentIconPath: "content:url('{0}');",
          margin: "margin:{0};",
          width: "width:{0};",
          height: "height:{0};"
        }, g = function () {
          function e(e, t, n) {
            var i = this;
            this._theme = n.getTheme(), this._ruleType = e, this._providerArgs = t, this._usesThemeColors = !1, this._hasContent = !1;
            var o = m.getClassName(this._providerArgs.key, e);
            this._providerArgs.parentTypeKey && (o = o + " " + m.getClassName(
                this._providerArgs.parentTypeKey,
                e)), this._className = o, this._unThemedSelector = m.getSelector(
                this._providerArgs.key, this._providerArgs.parentTypeKey,
                e), this._buildCSS(), this._usesThemeColors
            && (this._themeListener = n.onThemeChange(function (e) {
              i._theme = n.getTheme(), i._removeCSS(), i._buildCSS()
            }))
          }

          return e.prototype.dispose = function () {
            this._hasContent
            && (this._removeCSS(), this._hasContent = !1), this._themeListener
            && (this._themeListener.dispose(), this._themeListener = null)
          }, Object.defineProperty(e.prototype, "hasContent", {
            get: function () {
              return this._hasContent
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "className", {
            get: function () {
              return this._className
            }, enumerable: !0, configurable: !0
          }), e.prototype._buildCSS = function () {
            var e, t, n, i = this._providerArgs.options;
            switch (this._ruleType) {
              case 0:
                e = this.getCSSTextForModelDecorationClassName(
                    i), t = this.getCSSTextForModelDecorationClassName(
                    i.light), n = this.getCSSTextForModelDecorationClassName(
                    i.dark);
                break;
              case 1:
                e = this.getCSSTextForModelDecorationInlineClassName(
                    i), t = this.getCSSTextForModelDecorationInlineClassName(
                    i.light), n = this.getCSSTextForModelDecorationInlineClassName(
                    i.dark);
                break;
              case 2:
                e = this.getCSSTextForModelDecorationGlyphMarginClassName(
                    i), t = this.getCSSTextForModelDecorationGlyphMarginClassName(
                    i.light), n = this.getCSSTextForModelDecorationGlyphMarginClassName(
                    i.dark);
                break;
              case 3:
                e = this.getCSSTextForModelDecorationContentClassName(
                    i.before), t = this.getCSSTextForModelDecorationContentClassName(
                    i.light
                    && i.light.before), n = this.getCSSTextForModelDecorationContentClassName(
                    i.dark && i.dark.before);
                break;
              case 4:
                e = this.getCSSTextForModelDecorationContentClassName(
                    i.after), t = this.getCSSTextForModelDecorationContentClassName(
                    i.light
                    && i.light.after), n = this.getCSSTextForModelDecorationContentClassName(
                    i.dark && i.dark.after);
                break;
              default:
                throw new Error("Unknown rule type: " + this._ruleType)
            }
            var o = this._providerArgs.styleSheet.sheet, r = !1;
            e.length > 0 && (o.insertRule(
                this._unThemedSelector + " {" + e + "}", 0), r = !0), t.length
            > 0 && (o.insertRule(
                ".vs" + this._unThemedSelector + " {" + t + "}",
                0), r = !0), n.length > 0 && (o.insertRule(
                ".vs-dark" + this._unThemedSelector + ", .hc-black"
                + this._unThemedSelector + " {" + n + "}",
                0), r = !0), this._hasContent = r
          }, e.prototype._removeCSS = function () {
            o.removeCSSRulesContainingSelector(this._unThemedSelector,
                this._providerArgs.styleSheet)
          }, e.prototype.getCSSTextForModelDecorationClassName = function (e) {
            if (!e) {
              return "";
            }
            var t = [];
            return this.collectCSSText(e, ["backgroundColor"],
                t), this.collectCSSText(e,
                ["outline", "outlineColor", "outlineStyle", "outlineWidth"],
                t), this.collectBorderSettingsCSSText(e, t), t.join("")
          }, e.prototype.getCSSTextForModelDecorationInlineClassName = function (e) {
            if (!e) {
              return "";
            }
            var t = [];
            return this.collectCSSText(e,
                ["textDecoration", "cursor", "color", "letterSpacing"],
                t), t.join("")
          }, e.prototype.getCSSTextForModelDecorationContentClassName = function (e) {
            if (!e) {
              return "";
            }
            var t = [];
            if (void 0 !== e) {
              if (this.collectBorderSettingsCSSText(e, t), "string"
              == typeof e.contentIconPath ? t.push(n.format(p.contentIconPath,
                  i.default.file(e.contentIconPath).toString().replace(/'/g,
                      "%27"))) : e.contentIconPath instanceof i.default
                  && t.push(n.format(p.contentIconPath,
                      e.contentIconPath.toString(!0).replace(/'/g,
                          "%27"))), "string" == typeof e.contentText) {
                var o = e.contentText.match(/^.*$/m)[0].replace(/['\\]/g,
                    "\\$&");
                t.push(n.format(p.contentText, o))
              }
              this.collectCSSText(e,
                  ["textDecoration", "color", "backgroundColor", "margin"],
                  t), this.collectCSSText(e, ["width", "height"], t) && t.push(
                  "display:inline-block;")
            }
            return t.join("")
          }, e.prototype.getCSSTextForModelDecorationGlyphMarginClassName = function (e) {
            if (!e) {
              return "";
            }
            var t = [];
            return void 0 !== e.gutterIconPath && ("string"
            == typeof e.gutterIconPath ? t.push(n.format(p.gutterIconPath,
                i.default.file(e.gutterIconPath).toString())) : t.push(
                n.format(p.gutterIconPath,
                    e.gutterIconPath.toString(!0).replace(/'/g, "%27"))), void 0
            !== e.gutterIconSize && t.push(
                n.format(p.gutterIconSize, e.gutterIconSize))), t.join("")
          }, e.prototype.collectBorderSettingsCSSText = function (e, t) {
            return !!this.collectCSSText(e,
                ["border", "borderColor", "borderRadius", "borderSpacing",
                  "borderStyle", "borderWidth"], t) && (t.push(
                n.format("box-sizing: border-box;")), !0)
          }, e.prototype.collectCSSText = function (e, t, i) {
            for (var o = i.length, r = 0, s = t; r < s.length; r++) {
              var a = s[r], u = this.resolveValue(e[a]);
              "string" == typeof u && i.push(n.format(p[a], u))
            }
            return i.length !== o
          }, e.prototype.resolveValue = function (e) {
            if (r.isThemeColor(e)) {
              this._usesThemeColors = !0;
              var t = this._theme.getColor(e.id);
              return t ? t.toString() : "transparent"
            }
            return e
          }, e
        }();
        !function (e) {
          e[e.ClassName = 0] = "ClassName", e[e.InlineClassName = 1] = "InlineClassName", e[e.GlyphMarginClassName = 2] = "GlyphMarginClassName", e[e.BeforeContentClassName = 3] = "BeforeContentClassName", e[e.AfterContentClassName = 4] = "AfterContentClassName"
        }(c || (c = {}));
        var m = function () {
          function e() {
          }

          return e.getClassName = function (e, t) {
            return "ced-" + e + "-" + t
          }, e.getSelector = function (e, t, n) {
            var i = ".monaco-editor ." + this.getClassName(e, n);
            return t && (i = i + "." + this.getClassName(t, n)), 3 === n
                ? i += "::before" : 4 === n && (i += "::after"), i
          }, e
        }()
      }), define(d[486], h([1, 0, 4, 63, 35, 27, 14]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function (e) {
          function t(t, a, u, l) {
            var c = e.call(this, t) || this,
                d = c._context.configuration.editor.viewInfo.scrollbar, h = {
                  listenOnDomNode: u.domNode,
                  className: "editor-scrollable " + s.getThemeTypeSelector(
                      t.theme.type),
                  useShadows: !1,
                  lazyRender: !0,
                  vertical: d.vertical,
                  horizontal: d.horizontal,
                  verticalHasArrows: d.verticalHasArrows,
                  horizontalHasArrows: d.horizontalHasArrows,
                  verticalScrollbarSize: d.verticalScrollbarSize,
                  verticalSliderSize: d.verticalSliderSize,
                  horizontalScrollbarSize: d.horizontalScrollbarSize,
                  horizontalSliderSize: d.horizontalSliderSize,
                  handleMouseWheel: d.handleMouseWheel,
                  arrowSize: d.arrowSize,
                  mouseWheelScrollSensitivity: d.mouseWheelScrollSensitivity
                };
            c.scrollbar = c._register(new i.ScrollableElement(a.domNode, h,
                c._context.viewLayout.scrollable)), o.PartFingerprints.write(
                c.scrollbar.getDomNode(),
                5), c.scrollbarDomNode = r.createFastDomNode(
                c.scrollbar.getDomNode()), c.scrollbarDomNode.setPosition(
                "absolute"), c._setLayout();
            var p = function (e, t, n) {
              var i = {};
              if (t) {
                var o = e.scrollTop;
                o && (i.scrollTop = c._context.viewLayout.getScrollTop()
                    + o, e.scrollTop = 0)
              }
              if (n) {
                var r = e.scrollLeft;
                r && (i.scrollLeft = c._context.viewLayout.getScrollLeft()
                    + r, e.scrollLeft = 0)
              }
              c._context.viewLayout.setScrollPosition(i)
            };
            return c._register(
                n.addDisposableListener(u.domNode, "scroll", function (e) {
                  return p(u.domNode, !0, !0)
                })), c._register(
                n.addDisposableListener(a.domNode, "scroll", function (e) {
                  return p(a.domNode, !0, !1)
                })), c._register(
                n.addDisposableListener(l.domNode, "scroll", function (e) {
                  return p(l.domNode, !0, !1)
                })), c
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.prototype._setLayout = function () {
            var e = this._context.configuration.editor.layoutInfo;
            this.scrollbarDomNode.setLeft(
                e.contentLeft), this.scrollbarDomNode.setWidth(e.contentWidth
                + e.minimapWidth), this.scrollbarDomNode.setHeight(
                e.contentHeight)
          }, t.prototype.getOverviewRulerLayoutInfo = function () {
            return this.scrollbar.getOverviewRulerLayoutInfo()
          }, t.prototype.getDomNode = function () {
            return this.scrollbarDomNode
          }, t.prototype.delegateVerticalScrollbarMouseDown = function (e) {
            this.scrollbar.delegateVerticalScrollbarMouseDown(e)
          }, t.prototype.delegateSliderMouseDown = function (e, t) {
            this.scrollbar.delegateSliderMouseDown(e, t)
          }, t.prototype.onConfigurationChanged = function (e) {
            if (e.viewInfo) {
              var t = this._context.configuration.editor, n = {
                handleMouseWheel: t.viewInfo.scrollbar.handleMouseWheel,
                mouseWheelScrollSensitivity: t.viewInfo.scrollbar.mouseWheelScrollSensitivity
              };
              this.scrollbar.updateOptions(n)
            }
            return e.layoutInfo && this._setLayout(), !0
          }, t.prototype.onScrollChanged = function (e) {
            return !0
          }, t.prototype.onThemeChanged = function (e) {
            return this.scrollbar.updateClassName(
                "editor-scrollable " + s.getThemeTypeSelector(
                    this._context.theme.type)), !0
          }, t.prototype.prepareRender = function (e) {
          }, t.prototype.render = function (e) {
            this.scrollbar.renderNow()
          }, t
        }(o.ViewPart);
        t.EditorScrollbar = a
      }), define(d[185], h([1, 0, 28, 15, 9, 27, 138, 106, 214, 78, 14]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";

        function d(e, t, n, i, o) {
          return new b(e, t, n, i, o)
        }

        function h(e, t, n, i, o) {
          return new C(e, t, n, i, o)
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var p = !!i.isNative || !(i.isLinux || n.isFirefox || n.isSafari),
            g = n.isEdgeOrIE, m = function () {
              function e(e, t) {
                this._domNode = e, this._clientRectDeltaLeft = 0, this._clientRectDeltaLeftRead = !1, this.endNode = t
              }

              return Object.defineProperty(e.prototype, "clientRectDeltaLeft", {
                get: function () {
                  return this._clientRectDeltaLeftRead
                  || (this._clientRectDeltaLeftRead = !0, this._clientRectDeltaLeft = this._domNode.getBoundingClientRect().left), this._clientRectDeltaLeft
                }, enumerable: !0, configurable: !0
              }), e
            }();
        t.DomReadingContext = m;
        var v = function () {
          function e(e, t) {
            this.themeType = t, this.renderWhitespace = e.editor.viewInfo.renderWhitespace, this.renderControlCharacters = e.editor.viewInfo.renderControlCharacters, this.spaceWidth = e.editor.fontInfo.spaceWidth, this.useMonospaceOptimizations = e.editor.fontInfo.isMonospace
                && !e.editor.viewInfo.disableMonospaceOptimizations, this.lineHeight = e.editor.lineHeight, this.stopRenderingLineAfter = e.editor.viewInfo.stopRenderingLineAfter, this.fontLigatures = e.editor.viewInfo.fontLigatures
          }

          return e.prototype.equals = function (e) {
            return this.themeType === e.themeType && this.renderWhitespace
                === e.renderWhitespace && this.renderControlCharacters
                === e.renderControlCharacters && this.spaceWidth
                === e.spaceWidth && this.useMonospaceOptimizations
                === e.useMonospaceOptimizations && this.lineHeight
                === e.lineHeight && this.stopRenderingLineAfter
                === e.stopRenderingLineAfter && this.fontLigatures
                === e.fontLigatures
          }, e
        }();
        t.ViewLineOptions = v;
        var _ = function () {
          function e(e) {
            this._options = e, this._isMaybeInvalid = !0, this._renderedViewLine = null
          }

          return e.prototype.getDomNode = function () {
            return this._renderedViewLine && this._renderedViewLine.domNode
                ? this._renderedViewLine.domNode.domNode : null
          }, e.prototype.setDomNode = function (e) {
            if (!this._renderedViewLine) {
              throw new Error(
                  "I have no rendered view line to set the dom node to...");
            }
            this._renderedViewLine.domNode = r.createFastDomNode(e)
          }, e.prototype.onContentChanged = function () {
            this._isMaybeInvalid = !0
          }, e.prototype.onTokensChanged = function () {
            this._isMaybeInvalid = !0
          }, e.prototype.onDecorationsChanged = function () {
            this._isMaybeInvalid = !0
          }, e.prototype.onOptionsChanged = function (e) {
            this._isMaybeInvalid = !0, this._options = e
          }, e.prototype.onSelectionChanged = function () {
            return !(!g && this._options.themeType !== c.HIGH_CONTRAST)
                && (this._isMaybeInvalid = !0, !0)
          }, e.prototype.renderLine = function (t, n, i) {
            if (!1 === this._isMaybeInvalid) {
              return null;
            }
            this._isMaybeInvalid = !1;
            var r = i.getViewLineRenderingData(t), u = this._options,
                l = s.LineDecoration.filter(r.inlineDecorations, t, r.minColumn,
                    r.maxColumn);
            if (g || u.themeType === c.HIGH_CONTRAST) {
              for (var d = i.selections,
                  h = 0, f = d.length; h < f; h++) {
                var m = d[h];
                if (!(m.endLineNumber < t || m.startLineNumber > t)) {
                  var v = m.startLineNumber === t ? m.startColumn : r.minColumn,
                      _ = m.endLineNumber === t ? m.endColumn : r.maxColumn;
                  v < _ && l.push(
                      new s.LineDecoration(v, _, "inline-selected-text", !1))
                }
              }
            }
            var C = new a.RenderLineInput(u.useMonospaceOptimizations,
                r.content, r.mightContainRTL, r.minColumn - 1, r.tokens, l,
                r.tabSize, u.spaceWidth, u.stopRenderingLineAfter,
                u.renderWhitespace, u.renderControlCharacters, u.fontLigatures);
            if (this._renderedViewLine && this._renderedViewLine.input.equals(
                C)) {
              return null;
            }
            var b = a.renderViewLine(C), S = null;
            if (p && u.useMonospaceOptimizations
                && !b.containsForeignElements) {
              var E = !0;
              r.mightContainNonBasicASCII && (E = o.isBasicASCII(r.content)), E
              && r.content.length < 1e3 && (S = new y(
                  this._renderedViewLine ? this._renderedViewLine.domNode
                      : null, C, b.characterMapping))
            }
            return S || (S = w(
                this._renderedViewLine ? this._renderedViewLine.domNode : null,
                C, b.characterMapping, b.containsRTL,
                b.containsForeignElements)), this._renderedViewLine = S, '<div style="top:'
            + n + "px;height:" + this._options.lineHeight + 'px;" class="'
            + e.CLASS_NAME + '">' + b.html + "</div>"
          }, e.prototype.layoutLine = function (e, t) {
            this._renderedViewLine && this._renderedViewLine.domNode
            && (this._renderedViewLine.domNode.setTop(
                t), this._renderedViewLine.domNode.setHeight(
                this._options.lineHeight))
          }, e.prototype.getWidth = function () {
            return this._renderedViewLine ? this._renderedViewLine.getWidth()
                : 0
          }, e.prototype.getVisibleRangesForRange = function (e, t, n) {
            return e = Math.min(
                this._renderedViewLine.input.lineContent.length + 1,
                Math.max(1, e)), t = Math.min(
                this._renderedViewLine.input.lineContent.length + 1, Math.max(1,
                    t)), this._renderedViewLine.getVisibleRangesForRange(e, t,
                n)
          }, e.prototype.getColumnOfNodeOffset = function (e, t, n) {
            return this._renderedViewLine.getColumnOfNodeOffset(e, t, n)
          }, e.CLASS_NAME = "view-line", e
        }();
        t.ViewLine = _;
        var y = function () {
          function e(e, t, n) {
            this.domNode = e, this.input = t, this._characterMapping = n, this._charWidth = t.spaceWidth, this._charOffset = null
          }

          return e._createCharOffset = function (e) {
            for (var t = e.getPartLengths(), n = e.length,
                i = new Uint32Array(n), o = 0, r = 0, s = 0; s < n; s++) {
              for (var u = e.charOffsetToPartData(s),
                  l = a.CharacterMapping.getPartIndex(u),
                  c = a.CharacterMapping.getCharIndex(u);
                  o < l;) {
                r += t[o], o++;
              }
              i[s] = r + c
            }
            return i
          }, e.prototype._getOrCreateCharOffset = function () {
            return null === this._charOffset
            && (this._charOffset = e._createCharOffset(
                this._characterMapping)), this._charOffset
          }, e.prototype.getWidth = function () {
            var e = this._getOrCreateCharOffset();
            return this._getCharPosition(e.length)
          }, e.prototype.getVisibleRangesForRange = function (e, t, n) {
            e |= 0, t |= 0;
            var i = 0 | this.input.stopRenderingLineAfter;
            if (-1 !== i && e > i && t > i) {
              return null;
            }
            -1 !== i && e > i && (e = i), -1 !== i && t > i && (t = i);
            var o = this._getCharPosition(e), r = this._getCharPosition(t);
            return [new l.HorizontalRange(o, r - o)]
          }, e.prototype._getCharPosition = function (e) {
            var t = this._getOrCreateCharOffset();
            return 0 === t.length ? 0 : Math.round(this._charWidth * t[e - 1])
          }, e.prototype.getColumnOfNodeOffset = function (e, t, n) {
            for (var i = t.textContent.length, o = -1;
                t;) {
              t = t.previousSibling, o++;
            }
            return this._characterMapping.partDataToCharOffset(o, i, n) + 1
          }, e
        }(), C = function () {
          function e(e, t, n, i, o) {
            if (this.domNode = e, this.input = t, this._characterMapping = n, this._isWhitespaceOnly = /^\s*$/.test(
                t.lineContent), this._containsForeignElements = o, this._cachedWidth = -1, this._pixelOffsetCache = null, !i
            || 0 === this._characterMapping.length) {
              this._pixelOffsetCache = new Int32Array(
                  this._characterMapping.length + 1);
              for (var r = 0, s = this._characterMapping.length; r <= s;
                  r++) {
                this._pixelOffsetCache[r] = -1
              }
            }
          }

          return e.prototype._getReadingTarget = function () {
            return this.domNode.domNode.firstChild
          }, e.prototype.getWidth = function () {
            return -1 === this._cachedWidth
            && (this._cachedWidth = this._getReadingTarget().offsetWidth), this._cachedWidth
          }, e.prototype.getVisibleRangesForRange = function (e, t, n) {
            e |= 0, t |= 0;
            var i = 0 | this.input.stopRenderingLineAfter;
            if (-1 !== i && e > i && t > i) {
              return null;
            }
            if (-1 !== i && e > i && (e = i), -1 !== i && t > i && (t = i), null
            !== this._pixelOffsetCache) {
              var o = this._readPixelOffset(e, n);
              if (-1 === o) {
                return null;
              }
              var r = this._readPixelOffset(t, n);
              return -1 === r ? null : [new l.HorizontalRange(o, r - o)]
            }
            return this._readVisibleRangesForRange(e, t, n)
          }, e.prototype._readVisibleRangesForRange = function (e, t, n) {
            if (e === t) {
              var i = this._readPixelOffset(e, n);
              return -1 === i ? null : [new l.HorizontalRange(i, 0)]
            }
            return this._readRawVisibleRangesForRange(e, t, n)
          }, e.prototype._readPixelOffset = function (e, t) {
            if (0 === this._characterMapping.length
                && !this._containsForeignElements) {
              return 0;
            }
            if (null !== this._pixelOffsetCache) {
              var n = this._pixelOffsetCache[e];
              if (-1 !== n) {
                return n;
              }
              var i = this._actualReadPixelOffset(e, t);
              return this._pixelOffsetCache[e] = i, i
            }
            return this._actualReadPixelOffset(e, t)
          }, e.prototype._actualReadPixelOffset = function (e, t) {
            if (0 === this._characterMapping.length) {
              var n = u.RangeUtil.readHorizontalRanges(this._getReadingTarget(),
                  0, 0, 0, 0, t.clientRectDeltaLeft, t.endNode);
              return n && 0 !== n.length ? n[0].left : -1
            }
            if (e === this._characterMapping.length && this._isWhitespaceOnly
                && !this._containsForeignElements) {
              return this.getWidth();
            }
            var i = this._characterMapping.charOffsetToPartData(e - 1),
                o = a.CharacterMapping.getPartIndex(i),
                r = a.CharacterMapping.getCharIndex(i),
                s = u.RangeUtil.readHorizontalRanges(this._getReadingTarget(),
                    o, r, o, r, t.clientRectDeltaLeft, t.endNode);
            return s && 0 !== s.length ? s[0].left : -1
          }, e.prototype._readRawVisibleRangesForRange = function (e, t, n) {
            if (1 === e && t
                === this._characterMapping.length) {
              return [new l.HorizontalRange(
                  0, this.getWidth())];
            }
            var i = this._characterMapping.charOffsetToPartData(e - 1),
                o = a.CharacterMapping.getPartIndex(i),
                r = a.CharacterMapping.getCharIndex(i),
                s = this._characterMapping.charOffsetToPartData(t - 1),
                c = a.CharacterMapping.getPartIndex(s),
                d = a.CharacterMapping.getCharIndex(s);
            return u.RangeUtil.readHorizontalRanges(this._getReadingTarget(), o,
                r, c, d, n.clientRectDeltaLeft, n.endNode)
          }, e.prototype.getColumnOfNodeOffset = function (e, t, n) {
            for (var i = t.textContent.length, o = -1;
                t;) {
              t = t.previousSibling, o++;
            }
            return this._characterMapping.partDataToCharOffset(o, i, n) + 1
          }, e
        }(), b = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype._readVisibleRangesForRange = function (t,
              n, i) {
            var o = e.prototype._readVisibleRangesForRange.call(this, t, n, i);
            if (!o || 0 === o.length || t === n || 1 === t && n
                === this._characterMapping.length) {
              return o;
            }
            var r = this._readPixelOffset(n - 1, i),
                s = this._readPixelOffset(n, i);
            if (-1 !== r && -1 !== s) {
              var a = r <= s, u = o[o.length - 1];
              a && u.left < s && (u.width = s - u.left)
            }
            return o
          }, t
        }(C), w = n.isWebKit ? d : h
      }), define(d[186], h([1, 0, 12, 2, 25, 114, 28, 35, 185]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function () {
          function e(e, t, n, o, r, s) {
            void 0 === n && (n = 0), void 0 === o && (o = null), void 0 === r
            && (r = null), void 0 === s
            && (s = null), this.element = e, this.type = t, this.mouseColumn = n, this.position = o, !r
            && o && (r = new i.Range(o.lineNumber, o.column, o.lineNumber,
                o.column)), this.range = r, this.detail = s
          }

          return e._typeToString = function (e) {
            return e === o.MouseTargetType.TEXTAREA ? "TEXTAREA" : e
            === o.MouseTargetType.GUTTER_GLYPH_MARGIN ? "GUTTER_GLYPH_MARGIN"
                : e === o.MouseTargetType.GUTTER_LINE_NUMBERS
                    ? "GUTTER_LINE_NUMBERS" : e
                    === o.MouseTargetType.GUTTER_LINE_DECORATIONS
                        ? "GUTTER_LINE_DECORATIONS" : e
                        === o.MouseTargetType.GUTTER_VIEW_ZONE
                            ? "GUTTER_VIEW_ZONE" : e
                            === o.MouseTargetType.CONTENT_TEXT ? "CONTENT_TEXT"
                                : e === o.MouseTargetType.CONTENT_EMPTY
                                    ? "CONTENT_EMPTY" : e
                                    === o.MouseTargetType.CONTENT_VIEW_ZONE
                                        ? "CONTENT_VIEW_ZONE" : e
                                        === o.MouseTargetType.CONTENT_WIDGET
                                            ? "CONTENT_WIDGET" : e
                                            === o.MouseTargetType.OVERVIEW_RULER
                                                ? "OVERVIEW_RULER" : e
                                                === o.MouseTargetType.SCROLLBAR
                                                    ? "SCROLLBAR" : e
                                                    === o.MouseTargetType.OVERLAY_WIDGET
                                                        ? "OVERLAY_WIDGET"
                                                        : "UNKNOWN"
          }, e.toString = function (e) {
            return this._typeToString(e.type) + ": " + e.position + " - "
                + e.range + " - " + e.detail
          }, e.prototype.toString = function () {
            return e.toString(this)
          }, e
        }();
        t.MouseTarget = l;
        var c = function () {
          function e() {
          }

          return e.isTextArea = function (e) {
            return 2 === e.length && 3 === e[0] && 6 === e[1]
          }, e.isChildOfViewLines = function (e) {
            return e.length >= 4 && 3 === e[0] && 7 === e[3]
          }, e.isChildOfScrollableElement = function (e) {
            return e.length >= 2 && 3 === e[0] && 5 === e[1]
          }, e.isChildOfMinimap = function (e) {
            return e.length >= 2 && 3 === e[0] && 8 === e[1]
          }, e.isChildOfContentWidgets = function (e) {
            return e.length >= 4 && 3 === e[0] && 1 === e[3]
          }, e.isChildOfOverflowingContentWidgets = function (e) {
            return e.length >= 1 && 2 === e[0]
          }, e.isChildOfOverlayWidgets = function (e) {
            return e.length >= 2 && 3 === e[0] && 4 === e[1]
          }, e
        }(), d = function () {
          function e(e, t, n) {
            this.model = e.model, this.layoutInfo = e.configuration.editor.layoutInfo, this.viewDomNode = t.viewDomNode, this.lineHeight = e.configuration.editor.lineHeight, this.typicalHalfwidthCharacterWidth = e.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth, this.lastViewCursorsRenderData = n, this._context = e, this._viewHelper = t
          }

          return e.prototype.getZoneAtCoord = function (e) {
            var t = this._context.viewLayout.getWhitespaceAtVerticalOffset(e);
            if (t) {
              var i = t.verticalOffset + t.height / 2,
                  o = this._context.model.getLineCount(), r = null, s = void 0,
                  a = null;
              return t.afterLineNumber !== o && (a = new n.Position(
                  t.afterLineNumber + 1, 1)), t.afterLineNumber > 0
              && (r = new n.Position(t.afterLineNumber,
                  this._context.model.getLineMaxColumn(
                      t.afterLineNumber))), s = null === a ? r : null === r ? a
                  : e < i ? r : a, {
                viewZoneId: t.id,
                afterLineNumber: t.afterLineNumber,
                positionBefore: r,
                positionAfter: a,
                position: s
              }
            }
            return null
          }, e.prototype.getFullLineRangeAtCoord = function (e) {
            if (this._context.viewLayout.isAfterLines(e)) {
              var t = this._context.model.getLineCount(),
                  n = this._context.model.getLineMaxColumn(t);
              return {range: new i.Range(t, n, t, n), isAfterLines: !0}
            }
            var o = this._context.viewLayout.getLineNumberAtVerticalOffset(e),
                r = this._context.model.getLineMaxColumn(o);
            return {range: new i.Range(o, 1, o, r), isAfterLines: !1}
          }, e.prototype.getLineNumberAtVerticalOffset = function (e) {
            return this._context.viewLayout.getLineNumberAtVerticalOffset(e)
          }, e.prototype.isAfterLines = function (e) {
            return this._context.viewLayout.isAfterLines(e)
          }, e.prototype.getVerticalOffsetForLineNumber = function (e) {
            return this._context.viewLayout.getVerticalOffsetForLineNumber(e)
          }, e.prototype.findAttribute = function (t, n) {
            return e._findAttribute(t, n, this._viewHelper.viewDomNode)
          }, e._findAttribute = function (e, t, n) {
            for (; e && e !== document.body;) {
              if (e.hasAttribute && e.hasAttribute(t)) {
                return e.getAttribute(t);
              }
              if (e === n) {
                return null;
              }
              e = e.parentNode
            }
            return null
          }, e.prototype.getLineWidth = function (e) {
            return this._viewHelper.getLineWidth(e)
          }, e.prototype.visibleRangeForPosition2 = function (e, t) {
            return this._viewHelper.visibleRangeForPosition2(e, t)
          }, e.prototype.getPositionFromDOMInfo = function (e, t) {
            return this._viewHelper.getPositionFromDOMInfo(e, t)
          }, e.prototype.getScrollTop = function () {
            return this._context.viewLayout.getScrollTop()
          }, e.prototype.getScrollLeft = function () {
            return this._context.viewLayout.getScrollLeft()
          }, e
        }(), h = function (e) {
          function t(t, n, i, o) {
            var r = e.call(this, t, n, i) || this;
            return r._ctx = t, o
                ? (r.target = o, r.targetPath = a.PartFingerprints.collect(o,
                    t.viewDomNode))
                : (r.target = null, r.targetPath = new Uint8Array(0)), r
          }

          return f(t, e), t.prototype.toString = function () {
            return "pos(" + this.pos.x + "," + this.pos.y + "), editorPos("
                + this.editorPos.x + "," + this.editorPos.y
                + "), mouseVerticalOffset: " + this.mouseVerticalOffset
                + ", mouseContentHorizontalOffset: "
                + this.mouseContentHorizontalOffset + "\n\ttarget: "
                + (this.target ? this.target.outerHTML : null)
          }, t.prototype.fulfill = function (e, t, n, i) {
            return void 0 === t && (t = null), void 0 === n
            && (n = null), void 0 === i && (i = null), new l(this.target, e,
                this.mouseColumn, t, n, i)
          }, t.prototype.withTarget = function (e) {
            return new t(this._ctx, this.editorPos, this.pos, e)
          }, t
        }(function () {
          return function (e, t, n) {
            this.editorPos = t, this.pos = n, this.mouseVerticalOffset = Math.max(
                0, e.getScrollTop() + n.y
                - t.y), this.mouseContentHorizontalOffset = e.getScrollLeft()
                + n.x - t.x
                - e.layoutInfo.contentLeft, this.isInMarginArea = n.x - t.x
                < e.layoutInfo.contentLeft, this.isInContentArea = !this.isInMarginArea, this.mouseColumn = Math.max(
                0, p._getMouseColumn(this.mouseContentHorizontalOffset,
                    e.typicalHalfwidthCharacterWidth))
          }
        }()), p = function () {
          function e(e, t) {
            this._context = e, this._viewHelper = t
          }

          return e.prototype.mouseTargetIsWidget = function (e) {
            var t = e.target,
                n = a.PartFingerprints.collect(t, this._viewHelper.viewDomNode);
            return !(!c.isChildOfContentWidgets(n)
                    && !c.isChildOfOverflowingContentWidgets(n))
                || !!c.isChildOfOverlayWidgets(n)
          }, e.prototype.createMouseTarget = function (t, n, i, r) {
            var s = new d(this._context, this._viewHelper, t),
                a = new h(s, n, i, r);
            try {
              return e._createMouseTarget(s, a, !1)
            } catch (e) {
              return a.fulfill(o.MouseTargetType.UNKNOWN)
            }
          }, e._createMouseTarget = function (t, n, i) {
            if (null === n.target) {
              if (i) {
                return n.fulfill(o.MouseTargetType.UNKNOWN);
              }
              var r = e._doHitTest(t, n);
              return r.position ? e.createMouseTargetFromHitTestPosition(t, n,
                      r.position.lineNumber, r.position.column)
                  : this._createMouseTarget(t, n.withTarget(r.hitTarget), !0)
            }
            var s = null;
            return s = s || e._hitTestContentWidget(t, n), s = s
                || e._hitTestOverlayWidget(t, n), s = s || e._hitTestMinimap(t,
                n), s = s || e._hitTestScrollbarSlider(t, n), s = s
                || e._hitTestViewZone(t, n), s = s || e._hitTestMargin(t,
                n), s = s || e._hitTestViewCursor(t, n), s = s
                || e._hitTestTextArea(t, n), s = s || e._hitTestViewLines(t, n,
                i), (s = s || e._hitTestScrollbar(t, n)) || n.fulfill(
                o.MouseTargetType.UNKNOWN)
          }, e._hitTestContentWidget = function (e, t) {
            if (c.isChildOfContentWidgets(t.targetPath)
                || c.isChildOfOverflowingContentWidgets(t.targetPath)) {
              var n = e.findAttribute(t.target, "widgetId");
              return n ? t.fulfill(o.MouseTargetType.CONTENT_WIDGET, null, null,
                  n) : t.fulfill(o.MouseTargetType.UNKNOWN)
            }
            return null
          }, e._hitTestOverlayWidget = function (e, t) {
            if (c.isChildOfOverlayWidgets(t.targetPath)) {
              var n = e.findAttribute(t.target, "widgetId");
              return n ? t.fulfill(o.MouseTargetType.OVERLAY_WIDGET, null, null,
                  n) : t.fulfill(o.MouseTargetType.UNKNOWN)
            }
            return null
          }, e._hitTestViewCursor = function (e, t) {
            if (t.target) {
              for (var n = 0,
                  i = (s = e.lastViewCursorsRenderData).length; n < i; n++) {
                var r = s[n];
                if (t.target === r.domNode) {
                  return t.fulfill(
                      o.MouseTargetType.CONTENT_TEXT, r.position)
                }
              }
            }
            if (t.isInContentArea) {
              for (var s = e.lastViewCursorsRenderData,
                  a = t.mouseContentHorizontalOffset, u = t.mouseVerticalOffset,
                  n = 0, i = s.length; n < i; n++) {
                if (!(a
                    < (r = s[n]).contentLeft || a > r.contentLeft + r.width)) {
                  var l = e.getVerticalOffsetForLineNumber(
                      r.position.lineNumber);
                  if (l <= u && u <= l + r.height) {
                    return t.fulfill(
                        o.MouseTargetType.CONTENT_TEXT, r.position)
                  }
                }
              }
            }
            return null
          }, e._hitTestViewZone = function (e, t) {
            var n = e.getZoneAtCoord(t.mouseVerticalOffset);
            if (n) {
              var i = t.isInContentArea ? o.MouseTargetType.CONTENT_VIEW_ZONE
                  : o.MouseTargetType.GUTTER_VIEW_ZONE;
              return t.fulfill(i, n.position, null, n)
            }
            return null
          }, e._hitTestTextArea = function (e, t) {
            return c.isTextArea(t.targetPath) ? t.fulfill(
                o.MouseTargetType.TEXTAREA) : null
          }, e._hitTestMargin = function (e, t) {
            if (t.isInMarginArea) {
              var n = e.getFullLineRangeAtCoord(t.mouseVerticalOffset),
                  i = n.range.getStartPosition(),
                  r = Math.abs(t.pos.x - t.editorPos.x);
              return r <= e.layoutInfo.glyphMarginWidth ? t.fulfill(
                  o.MouseTargetType.GUTTER_GLYPH_MARGIN, i, n.range,
                  n.isAfterLines) : (r -= e.layoutInfo.glyphMarginWidth)
              <= e.layoutInfo.lineNumbersWidth ? t.fulfill(
                      o.MouseTargetType.GUTTER_LINE_NUMBERS, i, n.range,
                      n.isAfterLines)
                  : (r -= e.layoutInfo.lineNumbersWidth, t.fulfill(
                      o.MouseTargetType.GUTTER_LINE_DECORATIONS, i, n.range,
                      n.isAfterLines))
            }
            return null
          }, e._hitTestViewLines = function (t, i, r) {
            if (!c.isChildOfViewLines(i.targetPath)) {
              return null;
            }
            if (t.isAfterLines(i.mouseVerticalOffset)) {
              var s = t.model.getLineCount(), a = t.model.getLineMaxColumn(s);
              return i.fulfill(o.MouseTargetType.CONTENT_EMPTY,
                  new n.Position(s, a))
            }
            if (r) {
              return i.fulfill(o.MouseTargetType.UNKNOWN);
            }
            var u = e._doHitTest(t, i);
            return u.position ? e.createMouseTargetFromHitTestPosition(t, i,
                    u.position.lineNumber, u.position.column)
                : this._createMouseTarget(t, i.withTarget(u.hitTarget), !0)
          }, e._hitTestMinimap = function (e, t) {
            if (c.isChildOfMinimap(t.targetPath)) {
              var i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),
                  r = e.model.getLineMaxColumn(i);
              return t.fulfill(o.MouseTargetType.SCROLLBAR,
                  new n.Position(i, r))
            }
            return null
          }, e._hitTestScrollbarSlider = function (e, t) {
            if (c.isChildOfScrollableElement(t.targetPath) && t.target && 1
                === t.target.nodeType) {
              var i = t.target.className;
              if (i && /\b(slider|scrollbar)\b/.test(i)) {
                var r = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),
                    s = e.model.getLineMaxColumn(r);
                return t.fulfill(o.MouseTargetType.SCROLLBAR,
                    new n.Position(r, s))
              }
            }
            return null
          }, e._hitTestScrollbar = function (e, t) {
            if (c.isChildOfScrollableElement(t.targetPath)) {
              var i = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),
                  r = e.model.getLineMaxColumn(i);
              return t.fulfill(o.MouseTargetType.SCROLLBAR,
                  new n.Position(i, r))
            }
            return null
          }, e.prototype.getMouseColumn = function (t, n) {
            var i = this._context.configuration.editor.layoutInfo,
                o = this._context.viewLayout.getScrollLeft() + n.x - t.x
                    - i.contentLeft;
            return e._getMouseColumn(o,
                this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth)
          }, e._getMouseColumn = function (e, t) {
            return e < 0 ? 1 : Math.round(e / t) + 1
          }, e.createMouseTargetFromHitTestPosition = function (e, t, r, a) {
            var u = new n.Position(r, a), l = e.getLineWidth(r);
            if (t.mouseContentHorizontalOffset > l) {
              return s.isEdge && 1
              === u.column ? t.fulfill(o.MouseTargetType.CONTENT_EMPTY,
                  new n.Position(r, e.model.getLineMaxColumn(r))) : t.fulfill(
                  o.MouseTargetType.CONTENT_EMPTY, u);
            }
            var c = e.visibleRangeForPosition2(r, a);
            if (!c) {
              return t.fulfill(o.MouseTargetType.UNKNOWN, u);
            }
            var d = c.left;
            if (t.mouseContentHorizontalOffset === d) {
              return t.fulfill(
                  o.MouseTargetType.CONTENT_TEXT, u);
            }
            var h;
            if (a > 1) {
              var p = c.left;
              if (h = !1, h = h || p < t.mouseContentHorizontalOffset
                  && t.mouseContentHorizontalOffset < d, h = h || d
                  < t.mouseContentHorizontalOffset
                  && t.mouseContentHorizontalOffset < p) {
                m = new i.Range(r, a, r, a - 1);
                return t.fulfill(o.MouseTargetType.CONTENT_TEXT, u, m)
              }
            }
            if (a < e.model.getLineMaxColumn(r)) {
              var f = e.visibleRangeForPosition2(r, a + 1);
              if (f) {
                var g = f.left;
                if (h = !1, h = h || d < t.mouseContentHorizontalOffset
                    && t.mouseContentHorizontalOffset < g, h = h || g
                    < t.mouseContentHorizontalOffset
                    && t.mouseContentHorizontalOffset < d) {
                  var m = new i.Range(r, a, r, a + 1);
                  return t.fulfill(o.MouseTargetType.CONTENT_TEXT, u, m)
                }
              }
            }
            return t.fulfill(o.MouseTargetType.CONTENT_TEXT, u)
          }, e._doHitTestWithCaretRangeFromPoint = function (e, t) {
            var n = e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),
                i = e.getVerticalOffsetForLineNumber(n) + Math.floor(
                    e.lineHeight / 2),
                o = t.pos.y + (i - t.mouseVerticalOffset);
            o <= t.editorPos.y && (o = t.editorPos.y + 1), o >= t.editorPos.y
            + e.layoutInfo.height && (o = t.editorPos.y + e.layoutInfo.height
                - 1);
            var s = new r.PageCoordinates(t.pos.x, o),
                a = this._actualDoHitTestWithCaretRangeFromPoint(e,
                    s.toClientCoordinates());
            return a.position ? a
                : this._actualDoHitTestWithCaretRangeFromPoint(e,
                    t.pos.toClientCoordinates())
          }, e._actualDoHitTestWithCaretRangeFromPoint = function (e, t) {
            var n = document.caretRangeFromPoint(t.clientX, t.clientY);
            if (!n || !n.startContainer) {
              return {
                position: null,
                hitTarget: null
              };
            }
            var i, o = n.startContainer;
            if (o.nodeType === o.TEXT_NODE) {
              var r = (a = (s = o.parentNode) ? s.parentNode : null)
                  ? a.parentNode : null;
              if ((r && r.nodeType === r.ELEMENT_NODE ? r.className : null)
                  === u.ViewLine.CLASS_NAME) {
                return {
                  position: l = e.getPositionFromDOMInfo(s, n.startOffset),
                  hitTarget: null
                };
              }
              i = o.parentNode
            } else if (o.nodeType === o.ELEMENT_NODE) {
              var s = o.parentNode, a = s ? s.parentNode : null;
              if ((a && a.nodeType === a.ELEMENT_NODE ? a.className : null)
                  === u.ViewLine.CLASS_NAME) {
                var l = e.getPositionFromDOMInfo(o, o.textContent.length);
                return {position: l, hitTarget: null}
              }
              i = o
            }
            return {position: null, hitTarget: i}
          }, e._doHitTestWithCaretPositionFromPoint = function (e, t) {
            var n = document.caretPositionFromPoint(t.clientX, t.clientY);
            if (n.offsetNode.nodeType === n.offsetNode.TEXT_NODE) {
              var i = n.offsetNode.parentNode, o = i ? i.parentNode : null,
                  r = o ? o.parentNode : null;
              return (r && r.nodeType === r.ELEMENT_NODE ? r.className : null)
              === u.ViewLine.CLASS_NAME ? {
                position: e.getPositionFromDOMInfo(n.offsetNode.parentNode,
                    n.offset), hitTarget: null
              } : {position: null, hitTarget: n.offsetNode.parentNode}
            }
            return {position: null, hitTarget: n.offsetNode}
          }, e._doHitTestWithMoveToPoint = function (e, t) {
            var n = null, i = null, o = document.body.createTextRange();
            try {
              o.moveToPoint(t.clientX, t.clientY)
            } catch (e) {
              return {position: null, hitTarget: null}
            }
            o.collapse(!0);
            var r = o ? o.parentElement() : null, s = r ? r.parentNode : null,
                a = s ? s.parentNode : null;
            if ((a && a.nodeType === a.ELEMENT_NODE ? a.className : "")
                === u.ViewLine.CLASS_NAME) {
              var l = o.duplicate();
              l.moveToElementText(r), l.setEndPoint("EndToStart",
                  o), n = e.getPositionFromDOMInfo(r,
                  l.text.length), l.moveToElementText(e.viewDomNode)
            } else {
              i = r;
            }
            return o.moveToElementText(e.viewDomNode), {
              position: n,
              hitTarget: i
            }
          }, e._doHitTest = function (e, t) {
            return document.caretRangeFromPoint
                ? this._doHitTestWithCaretRangeFromPoint(e, t)
                : document.caretPositionFromPoint
                    ? this._doHitTestWithCaretPositionFromPoint(e,
                        t.pos.toClientCoordinates())
                    : document.body.createTextRange
                        ? this._doHitTestWithMoveToPoint(e,
                            t.pos.toClientCoordinates()) : {
                          position: null,
                          hitTarget: null
                        }
          }, e
        }();
        t.MouseTargetFactory = p
      }), define(d[489],
      h([1, 0, 3, 15, 28, 4, 12, 22, 82, 186, 25, 18, 114, 47, 135]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g) {
        "use strict";

        function m(e) {
          return function (t, n) {
            var i = !1;
            return e && (i = e.mouseTargetIsWidget(n)), i
            || n.preventDefault(), n
          }
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var v = function (e) {
          function t(n, i, o) {
            var s = e.call(this) || this;
            s._isFocused = !1, s._context = n, s.viewController = i, s.viewHelper = o, s.mouseTargetFactory = new l.MouseTargetFactory(
                s._context, o), s._mouseDownOperation = s._register(
                new _(s._context, s.viewController, s.viewHelper,
                    function (e, t) {
                      return s._createMouseTarget(e, t)
                    }, function (e) {
                      return s._getMouseColumn(e)
                    })), s._asyncFocus = s._register(
                new d.RunOnceScheduler(function () {
                  return s.viewHelper.focusTextArea()
                }, 0)), s.lastMouseLeaveTime = -1;
            var a = new h.EditorMouseEventFactory(s.viewHelper.viewDomNode);
            s._register(a.onContextMenu(s.viewHelper.viewDomNode, function (e) {
              return s._onContextMenu(e, !0)
            })), s._register(
                a.onMouseMoveThrottled(s.viewHelper.viewDomNode, function (e) {
                      return s._onMouseMove(e)
                    }, m(s.mouseTargetFactory),
                    t.MOUSE_MOVE_MINIMUM_TIME)), s._register(
                a.onMouseUp(s.viewHelper.viewDomNode, function (e) {
                  return s._onMouseUp(e)
                })), s._register(
                a.onMouseLeave(s.viewHelper.viewDomNode, function (e) {
                  return s._onMouseLeave(e)
                })), s._register(
                a.onMouseDown(s.viewHelper.viewDomNode, function (e) {
                  return s._onMouseDown(e)
                }));
            var u = function (e) {
              if (s._context.configuration.editor.viewInfo.mouseWheelZoom) {
                var t = new p.StandardMouseWheelEvent(e);
                if (t.browserEvent.ctrlKey || t.browserEvent.metaKey) {
                  var n = g.EditorZoom.getZoomLevel(),
                      i = t.deltaY > 0 ? 1 : -1;
                  g.EditorZoom.setZoomLevel(
                      n + i), t.preventDefault(), t.stopPropagation()
                }
              }
            };
            return s._register(
                r.addDisposableListener(s.viewHelper.viewDomNode, "mousewheel",
                    u, !0)), s._register(
                r.addDisposableListener(s.viewHelper.viewDomNode,
                    "DOMMouseScroll", u, !0)), s._context.addEventHandler(s), s
          }

          return f(t, e), t.prototype.dispose = function () {
            this._context.removeEventHandler(this), e.prototype.dispose.call(
                this)
          }, t.prototype.onCursorStateChanged = function (e) {
            return this._mouseDownOperation.onCursorStateChanged(e), !1
          }, t.prototype.onFocusChanged = function (e) {
            return this._isFocused = e.isFocused, !1
          }, t.prototype.onScrollChanged = function (e) {
            return this._mouseDownOperation.onScrollChanged(), !1
          }, t.prototype.getTargetAtClientPoint = function (e, t) {
            var n = new h.ClientCoordinates(e, t).toPageCoordinates(),
                i = h.createEditorPagePosition(this.viewHelper.viewDomNode);
            if (n.y < i.y || n.y > i.y + i.height || n.x < i.x || n.x > i.x
                + i.width) {
              return null;
            }
            var o = this.viewHelper.getLastViewCursorsRenderData();
            return this.mouseTargetFactory.createMouseTarget(o, i, n, null)
          }, t.prototype._createMouseTarget = function (e, t) {
            var n = this.viewHelper.getLastViewCursorsRenderData();
            return this.mouseTargetFactory.createMouseTarget(n, e.editorPos,
                e.pos, t ? e.target : null)
          }, t.prototype._getMouseColumn = function (e) {
            return this.mouseTargetFactory.getMouseColumn(e.editorPos, e.pos)
          }, t.prototype._onContextMenu = function (e, t) {
            this.viewController.emitContextMenu(
                {event: e, target: this._createMouseTarget(e, t)})
          }, t.prototype._onMouseMove = function (e) {
            this._mouseDownOperation.isActive() || e.timestamp
            < this.lastMouseLeaveTime || this.viewController.emitMouseMove(
                {event: e, target: this._createMouseTarget(e, !0)})
          }, t.prototype._onMouseLeave = function (e) {
            this.lastMouseLeaveTime = (new Date).getTime(), this.viewController.emitMouseLeave(
                {event: e, target: null})
          }, t.prototype._onMouseUp = function (e) {
            this.viewController.emitMouseUp(
                {event: e, target: this._createMouseTarget(e, !0)})
          }, t.prototype._onMouseDown = function (e) {
            var t = this, n = this._createMouseTarget(e, !0),
                r = n.type === c.MouseTargetType.CONTENT_TEXT || n.type
                    === c.MouseTargetType.CONTENT_EMPTY,
                s = n.type === c.MouseTargetType.GUTTER_GLYPH_MARGIN || n.type
                    === c.MouseTargetType.GUTTER_LINE_NUMBERS || n.type
                    === c.MouseTargetType.GUTTER_LINE_DECORATIONS,
                a = n.type === c.MouseTargetType.GUTTER_LINE_NUMBERS,
                u = this._context.configuration.editor.viewInfo.selectOnLineNumbers,
                l = n.type === c.MouseTargetType.CONTENT_VIEW_ZONE || n.type
                    === c.MouseTargetType.GUTTER_VIEW_ZONE,
                d = n.type === c.MouseTargetType.CONTENT_WIDGET,
                h = e.leftButton;
            i.isMacintosh && e.ctrlKey && (h = !1);
            var p = function () {
              o.isIE && !t._isFocused ? t._asyncFocus.schedule()
                  : (e.preventDefault(), t.viewHelper.focusTextArea())
            };
            if (h && (r || a && u)) {
              p(), this._mouseDownOperation.start(n.type,
                  e);
            } else if (s) {
              e.preventDefault();
            } else if (l) {
              var f = n.detail;
              this.viewHelper.shouldSuppressMouseDownOnViewZone(f.viewZoneId)
              && (p(), this._mouseDownOperation.start(n.type,
                  e), e.preventDefault())
            } else {
              d && this.viewHelper.shouldSuppressMouseDownOnWidget(
                  n.detail) && (p(), e.preventDefault());
            }
            this.viewController.emitMouseDown({event: e, target: n})
          }, t.MOUSE_MOVE_MINIMUM_TIME = 100, t
        }(u.ViewEventHandler);
        t.MouseHandler = v;
        var _ = function (e) {
          function t(t, n, i, o, r) {
            var s = e.call(this) || this;
            return s._context = t, s._viewController = n, s._viewHelper = i, s._createMouseTarget = o, s._getMouseColumn = r, s._mouseMoveMonitor = s._register(
                new h.GlobalEditorMouseMoveMonitor(
                    s._viewHelper.viewDomNode)), s._onScrollTimeout = s._register(
                new d.TimeoutTimer), s._mouseState = new y, s._currentSelection = new a.Selection(
                1, 1, 1, 1), s._isActive = !1, s._lastMouseEvent = null, s
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.prototype.isActive = function () {
            return this._isActive
          }, t.prototype._onMouseDownThenMove = function (e) {
            this._lastMouseEvent = e, this._mouseState.setModifiers(e);
            var t = this._findMousePosition(e, !0);
            t && (this._mouseState.isDragAndDrop
                ? this._viewController.emitMouseDrag({event: e, target: t})
                : this._dispatchMouse(t, !0))
          }, t.prototype.start = function (e, t) {
            var n = this;
            this._lastMouseEvent = t, this._mouseState.setStartedOnLineNumbers(e
                === c.MouseTargetType.GUTTER_LINE_NUMBERS), this._mouseState.setModifiers(
                t);
            var i = this._findMousePosition(t, !0);
            if (i) {
              if (this._mouseState.trySetCount(t.detail,
                  i.position), t.detail = this._mouseState.count, !this._context.configuration.editor.readOnly
              && this._context.configuration.editor.dragAndDrop
              && !this._mouseState.altKey && t.detail < 2 && !this._isActive
              && !this._currentSelection.isEmpty()
              && this._currentSelection.containsPosition(
                  i.position)) {
                return this._mouseState.isDragAndDrop = !0, this._isActive = !0, void this._mouseMoveMonitor.startMonitoring(
                    m(null), function (e) {
                      return n._onMouseDownThenMove(e)
                    }, function () {
                      var e = n._findMousePosition(n._lastMouseEvent, !0);
                      n._viewController.emitMouseDrop({
                        event: n._lastMouseEvent,
                        target: e ? n._createMouseTarget(n._lastMouseEvent, !0)
                            : null
                      }), n._stop()
                    });
              }
              this._mouseState.isDragAndDrop = !1, this._dispatchMouse(i,
                  t.shiftKey), this._isActive
              || (this._isActive = !0, this._mouseMoveMonitor.startMonitoring(
                  m(null), function (e) {
                    return n._onMouseDownThenMove(e)
                  }, function () {
                    return n._stop()
                  }))
            }
          }, t.prototype._stop = function () {
            this._isActive = !1, this._onScrollTimeout.cancel()
          }, t.prototype.onScrollChanged = function () {
            var e = this;
            this._isActive && this._onScrollTimeout.setIfNotSet(function () {
              var t = e._findMousePosition(e._lastMouseEvent, !1);
              t && (e._mouseState.isDragAndDrop || e._dispatchMouse(t, !0))
            }, 10)
          }, t.prototype.onCursorStateChanged = function (e) {
            this._currentSelection = e.selections[0]
          }, t.prototype._getPositionOutsideEditor = function (e) {
            var t = e.editorPos, n = this._context.model,
                i = this._context.viewLayout, o = this._getMouseColumn(e);
            if (e.posy < t.y) {
              var r = i.getLineNumberAtVerticalOffset(
                  Math.max(i.getScrollTop() - (t.y - e.posy), 0));
              return new l.MouseTarget(null, c.MouseTargetType.OUTSIDE_EDITOR,
                  o, new s.Position(r, 1))
            }
            if (e.posy > t.y + t.height) {
              var a = i.getLineNumberAtVerticalOffset(
                  i.getScrollTop() + (e.posy - t.y));
              return new l.MouseTarget(null, c.MouseTargetType.OUTSIDE_EDITOR,
                  o, new s.Position(a, n.getLineMaxColumn(a)))
            }
            var u = i.getLineNumberAtVerticalOffset(
                i.getScrollTop() + (e.posy - t.y));
            return e.posx < t.x ? new l.MouseTarget(null,
                    c.MouseTargetType.OUTSIDE_EDITOR, o, new s.Position(u, 1))
                : e.posx > t.x + t.width ? new l.MouseTarget(null,
                    c.MouseTargetType.OUTSIDE_EDITOR, o,
                    new s.Position(u, n.getLineMaxColumn(u))) : null
          }, t.prototype._findMousePosition = function (e, t) {
            var n = this._getPositionOutsideEditor(e);
            if (n) {
              return n;
            }
            var i = this._createMouseTarget(e, t);
            if (!i.position) {
              return null;
            }
            if (i.type === c.MouseTargetType.CONTENT_VIEW_ZONE || i.type
                === c.MouseTargetType.GUTTER_VIEW_ZONE) {
              var o = new s.Position(
                      this._currentSelection.selectionStartLineNumber,
                      this._currentSelection.selectionStartColumn), r = i.detail,
                  a = r.positionBefore, u = r.positionAfter;
              if (a && u) {
                return a.isBefore(o) ? new l.MouseTarget(i.element,
                        i.type, i.mouseColumn, a, null, i.detail)
                    : new l.MouseTarget(
                        i.element, i.type, i.mouseColumn, u, null, i.detail)
              }
            }
            return i
          }, t.prototype._dispatchMouse = function (e, t) {
            this._viewController.dispatchMouse({
              position: e.position,
              mouseColumn: e.mouseColumn,
              startedOnLineNumbers: this._mouseState.startedOnLineNumbers,
              inSelectionMode: t,
              mouseDownCount: this._mouseState.count,
              altKey: this._mouseState.altKey,
              ctrlKey: this._mouseState.ctrlKey,
              metaKey: this._mouseState.metaKey,
              shiftKey: this._mouseState.shiftKey
            })
          }, t
        }(n.Disposable), y = function () {
          function e() {
            this._altKey = !1, this._ctrlKey = !1, this._metaKey = !1, this._shiftKey = !1, this._startedOnLineNumbers = !1, this._lastMouseDownPosition = null, this._lastMouseDownPositionEqualCount = 0, this._lastMouseDownCount = 0, this._lastSetMouseDownCountTime = 0, this.isDragAndDrop = !1
          }

          return Object.defineProperty(e.prototype, "altKey", {
            get: function () {
              return this._altKey
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "ctrlKey", {
            get: function () {
              return this._ctrlKey
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "metaKey", {
            get: function () {
              return this._metaKey
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "shiftKey", {
            get: function () {
              return this._shiftKey
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "startedOnLineNumbers", {
            get: function () {
              return this._startedOnLineNumbers
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "count", {
            get: function () {
              return this._lastMouseDownCount
            }, enumerable: !0, configurable: !0
          }), e.prototype.setModifiers = function (e) {
            this._altKey = e.altKey, this._ctrlKey = e.ctrlKey, this._metaKey = e.metaKey, this._shiftKey = e.shiftKey
          }, e.prototype.setStartedOnLineNumbers = function (e) {
            this._startedOnLineNumbers = e
          }, e.prototype.trySetCount = function (t, n) {
            var i = (new Date).getTime();
            i - this._lastSetMouseDownCountTime > e.CLEAR_MOUSE_DOWN_COUNT_TIME
            && (t = 1), this._lastSetMouseDownCountTime = i, t
            > this._lastMouseDownCount + 1 && (t = this._lastMouseDownCount
                + 1), this._lastMouseDownPosition
            && this._lastMouseDownPosition.equals(n)
                ? this._lastMouseDownPositionEqualCount++
                : this._lastMouseDownPositionEqualCount = 1, this._lastMouseDownPosition = n, this._lastMouseDownCount = Math.min(
                t, this._lastMouseDownPositionEqualCount)
          }, e.CLEAR_MOUSE_DOWN_COUNT_TIME = 400, e
        }()
      }), define(d[490], h([1, 0, 4, 74, 489, 114]),
      function (e, t, n, i, o, r) {
        "use strict";

        function s(e, t) {
          var n = {translationY: t.translationY, translationX: t.translationX};
          return e
          && (n.translationY += e.translationY, n.translationX += e.translationX), n
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function (e) {
          function t(t, i, o) {
            var r = e.call(this, t, i, o) || this;
            return r.viewHelper.linesContentDomNode.style.msTouchAction = "none", r.viewHelper.linesContentDomNode.style.msContentZooming = "none", r._installGestureHandlerTimeout = window.setTimeout(
                function () {
                  if (r._installGestureHandlerTimeout = -1, window.MSGesture) {
                    var e = new MSGesture, t = new MSGesture;
                    e.target = r.viewHelper.linesContentDomNode, t.target = r.viewHelper.linesContentDomNode, r.viewHelper.linesContentDomNode.addEventListener(
                        "MSPointerDown", function (n) {
                          var i = n.pointerType;
                          i !== (n.MSPOINTER_TYPE_MOUSE || "mouse") ? i
                          === (n.MSPOINTER_TYPE_TOUCH || "touch")
                              ? (r._lastPointerType = "touch", e.addPointer(
                                  n.pointerId))
                              : (r._lastPointerType = "pen", t.addPointer(
                                  n.pointerId)) : r._lastPointerType = "mouse"
                        }), r._register(n.addDisposableThrottledListener(
                        r.viewHelper.linesContentDomNode, "MSGestureChange",
                        function (e) {
                          return r._onGestureChange(e)
                        }, s)), r._register(n.addDisposableListener(
                        r.viewHelper.linesContentDomNode, "MSGestureTap",
                        function (e) {
                          return r._onCaptureGestureTap(e)
                        }, !0))
                  }
                }, 100), r._lastPointerType = "mouse", r
          }

          return f(t, e), t.prototype._onMouseDown = function (t) {
            "mouse" === this._lastPointerType && e.prototype._onMouseDown.call(
                this, t)
          }, t.prototype._onCaptureGestureTap = function (e) {
            var t = this,
                n = new r.EditorMouseEvent(e, this.viewHelper.viewDomNode),
                i = this._createMouseTarget(n, !1);
            i.position && this.viewController.moveTo(
                i.position), n.browserEvent.fromElement
                ? (n.preventDefault(), this.viewHelper.focusTextArea())
                : setTimeout(function () {
                  t.viewHelper.focusTextArea()
                })
          }, t.prototype._onGestureChange = function (e) {
            var t = this._context.viewLayout;
            t.setScrollPosition({
              scrollLeft: t.getScrollLeft() - e.translationX,
              scrollTop: t.getScrollTop() - e.translationY
            })
          }, t.prototype.dispose = function () {
            window.clearTimeout(
                this._installGestureHandlerTimeout), e.prototype.dispose.call(
                this)
          }, t
        }(o.MouseHandler), u = function (e) {
          function t(t, i, o) {
            var r = e.call(this, t, i, o) || this;
            return r.viewHelper.linesContentDomNode.style.touchAction = "none", r._installGestureHandlerTimeout = window.setTimeout(
                function () {
                  if (r._installGestureHandlerTimeout = -1, window.MSGesture) {
                    var e = new MSGesture, t = new MSGesture;
                    e.target = r.viewHelper.linesContentDomNode, t.target = r.viewHelper.linesContentDomNode, r.viewHelper.linesContentDomNode.addEventListener(
                        "pointerdown", function (n) {
                          var i = n.pointerType;
                          "mouse" !== i ? "touch" === i
                              ? (r._lastPointerType = "touch", e.addPointer(
                                  n.pointerId))
                              : (r._lastPointerType = "pen", t.addPointer(
                                  n.pointerId)) : r._lastPointerType = "mouse"
                        }), r._register(n.addDisposableThrottledListener(
                        r.viewHelper.linesContentDomNode, "MSGestureChange",
                        function (e) {
                          return r._onGestureChange(e)
                        }, s)), r._register(n.addDisposableListener(
                        r.viewHelper.linesContentDomNode, "MSGestureTap",
                        function (e) {
                          return r._onCaptureGestureTap(e)
                        }, !0))
                  }
                }, 100), r._lastPointerType = "mouse", r
          }

          return f(t, e), t.prototype._onMouseDown = function (t) {
            "mouse" === this._lastPointerType && e.prototype._onMouseDown.call(
                this, t)
          }, t.prototype._onCaptureGestureTap = function (e) {
            var t = this,
                n = new r.EditorMouseEvent(e, this.viewHelper.viewDomNode),
                i = this._createMouseTarget(n, !1);
            i.position && this.viewController.moveTo(
                i.position), n.browserEvent.fromElement
                ? (n.preventDefault(), this.viewHelper.focusTextArea())
                : setTimeout(function () {
                  t.viewHelper.focusTextArea()
                })
          }, t.prototype._onGestureChange = function (e) {
            var t = this._context.viewLayout;
            t.setScrollPosition({
              scrollLeft: t.getScrollLeft() - e.translationX,
              scrollTop: t.getScrollTop() - e.translationY
            })
          }, t.prototype.dispose = function () {
            window.clearTimeout(
                this._installGestureHandlerTimeout), e.prototype.dispose.call(
                this)
          }, t
        }(o.MouseHandler), l = function (e) {
          function t(t, o, s) {
            var a = e.call(this, t, o, s) || this;
            return a.gesture = new i.Gesture(
                a.viewHelper.linesContentDomNode), a._register(
                n.addDisposableListener(a.viewHelper.linesContentDomNode,
                    i.EventType.Tap, function (e) {
                      return a.onTap(e)
                    })), a._register(
                n.addDisposableListener(a.viewHelper.linesContentDomNode,
                    i.EventType.Change, function (e) {
                      return a.onChange(e)
                    })), a._register(
                n.addDisposableListener(a.viewHelper.linesContentDomNode,
                    i.EventType.Contextmenu, function (e) {
                      return a._onContextMenu(
                          new r.EditorMouseEvent(e, a.viewHelper.viewDomNode),
                          !1)
                    })), a
          }

          return f(t, e), t.prototype.dispose = function () {
            this.gesture.dispose(), e.prototype.dispose.call(this)
          }, t.prototype.onTap = function (e) {
            e.preventDefault(), this.viewHelper.focusTextArea();
            var t = this._createMouseTarget(
                new r.EditorMouseEvent(e, this.viewHelper.viewDomNode), !1);
            t.position && this.viewController.moveTo(t.position)
          }, t.prototype.onChange = function (e) {
            var t = this._context.viewLayout;
            t.setScrollPosition({
              scrollLeft: t.getScrollLeft() - e.translationX,
              scrollTop: t.getScrollTop() - e.translationY
            })
          }, t
        }(o.MouseHandler), c = function () {
          function e(e, t, n) {
            window.navigator.msPointerEnabled ? this.handler = new a(e, t, n)
                : window.TouchEvent ? this.handler = new l(e, t, n)
                    : window.navigator.pointerEnabled ? this.handler = new u(e, t,
                        n) : this.handler = new o.MouseHandler(e, t, n)
          }

          return e.prototype.getTargetAtClientPoint = function (e, t) {
            return this.handler.getTargetAtClientPoint(e, t)
          }, e.prototype.dispose = function () {
            this.handler.dispose()
          }, e
        }();
        t.PointerHandler = c
      }), define(d[491], h([1, 0, 3, 186, 11]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n._onDidScroll = n._register(
            new o.Emitter), n.onDidScroll = n._onDidScroll.event, n._onDidGainFocus = n._register(
            new o.Emitter), n.onDidGainFocus = n._onDidGainFocus.event, n._onDidLoseFocus = n._register(
            new o.Emitter), n.onDidLoseFocus = n._onDidLoseFocus.event, n._onKeyDown = n._register(
            new o.Emitter), n.onKeyDown = n._onKeyDown.event, n._onKeyUp = n._register(
            new o.Emitter), n.onKeyUp = n._onKeyUp.event, n._onContextMenu = n._register(
            new o.Emitter), n.onContextMenu = n._onContextMenu.event, n._onMouseMove = n._register(
            new o.Emitter), n.onMouseMove = n._onMouseMove.event, n._onMouseLeave = n._register(
            new o.Emitter), n.onMouseLeave = n._onMouseLeave.event, n._onMouseUp = n._register(
            new o.Emitter), n.onMouseUp = n._onMouseUp.event, n._onMouseDown = n._register(
            new o.Emitter), n.onMouseDown = n._onMouseDown.event, n._onMouseDrag = n._register(
            new o.Emitter), n.onMouseDrag = n._onMouseDrag.event, n._onMouseDrop = n._register(
            new o.Emitter), n.onMouseDrop = n._onMouseDrop.event, n._viewModel = t, n
      }

      return f(t, e), t.prototype.emitScrollChanged = function (e) {
        this._onDidScroll.fire(e)
      }, t.prototype.emitViewFocusGained = function () {
        this._onDidGainFocus.fire()
      }, t.prototype.emitViewFocusLost = function () {
        this._onDidLoseFocus.fire()
      }, t.prototype.emitKeyDown = function (e) {
        this._onKeyDown.fire(e)
      }, t.prototype.emitKeyUp = function (e) {
        this._onKeyUp.fire(e)
      }, t.prototype.emitContextMenu = function (e) {
        this._onContextMenu.fire(this._convertViewToModelMouseEvent(e))
      }, t.prototype.emitMouseMove = function (e) {
        this._onMouseMove.fire(this._convertViewToModelMouseEvent(e))
      }, t.prototype.emitMouseLeave = function (e) {
        this._onMouseLeave.fire(this._convertViewToModelMouseEvent(e))
      }, t.prototype.emitMouseUp = function (e) {
        this._onMouseUp.fire(this._convertViewToModelMouseEvent(e))
      }, t.prototype.emitMouseDown = function (e) {
        this._onMouseDown.fire(this._convertViewToModelMouseEvent(e))
      }, t.prototype.emitMouseDrag = function (e) {
        this._onMouseDrag.fire(this._convertViewToModelMouseEvent(e))
      }, t.prototype.emitMouseDrop = function (e) {
        this._onMouseDrop.fire(this._convertViewToModelMouseEvent(e))
      }, t.prototype._convertViewToModelMouseEvent = function (e) {
        return e.target ? {
          event: e.event,
          target: this._convertViewToModelMouseTarget(e.target)
        } : e
      }, t.prototype._convertViewToModelMouseTarget = function (e) {
        return new s(e.element, e.type, e.mouseColumn,
            e.position ? this._convertViewToModelPosition(e.position) : null,
            e.range ? this._convertViewToModelRange(e.range) : null, e.detail)
      }, t.prototype._convertViewToModelPosition = function (e) {
        return this._viewModel.coordinatesConverter.convertViewPositionToModelPosition(
            e)
      }, t.prototype._convertViewToModelRange = function (e) {
        return this._viewModel.coordinatesConverter.convertViewRangeToModelRange(
            e)
      }, t
    }(n.Disposable);
    t.ViewOutgoingEvents = r;
    var s = function () {
      function e(e, t, n, i, o, r) {
        this.element = e, this.type = t, this.mouseColumn = n, this.position = i, this.range = o, this.detail = r
      }

      return e.prototype.toString = function () {
        return i.MouseTarget.toString(this)
      }, e
    }()
  }), define(d[492], h([1, 0, 18, 2, 12, 112, 185, 66, 78, 35, 57, 286]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function () {
          function e() {
            this._currentVisibleRange = new i.Range(1, 1, 1, 1)
          }

          return e.prototype.getCurrentVisibleRange = function () {
            return this._currentVisibleRange
          }, e.prototype.setCurrentVisibleRange = function (e) {
            this._currentVisibleRange = e
          }, e
        }(), h = function (e) {
          function t(t, i) {
            var o = e.call(this, t) || this;
            o._linesContent = i, o._textRangeRestingSpot = document.createElement(
                "div"), o._visibleLines = new r.VisibleLinesCollection(
                o), o.domNode = o._visibleLines.domNode;
            var u = o._context.configuration;
            return o._lineHeight = u.editor.lineHeight, o._typicalHalfwidthCharacterWidth = u.editor.fontInfo.typicalHalfwidthCharacterWidth, o._isViewportWrapping = u.editor.wrappingInfo.isViewportWrapping, o._revealHorizontalRightPadding = u.editor.viewInfo.revealHorizontalRightPadding, o._canUseLayerHinting = u.editor.canUseLayerHinting, o._viewLineOptions = new s.ViewLineOptions(
                u, o._context.theme.type), l.PartFingerprints.write(o.domNode,
                7), o.domNode.setClassName(
                "view-lines"), a.Configuration.applyFontInfo(o.domNode,
                u.editor.fontInfo), o._maxLineWidth = 0, o._asyncUpdateLineWidths = new n.RunOnceScheduler(
                function () {
                  o._updateLineWidths()
                },
                200), o._lastRenderedData = new d, o._lastCursorRevealRangeHorizontallyEvent = null, o
          }

          return f(t, e), t.prototype.dispose = function () {
            this._asyncUpdateLineWidths.dispose(), e.prototype.dispose.call(
                this)
          }, t.prototype.getDomNode = function () {
            return this.domNode
          }, t.prototype.createVisibleLine = function () {
            return new s.ViewLine(this._viewLineOptions)
          }, t.prototype.onConfigurationChanged = function (e) {
            this._visibleLines.onConfigurationChanged(e), e.wrappingInfo
            && (this._maxLineWidth = 0);
            var t = this._context.configuration;
            return e.lineHeight
            && (this._lineHeight = t.editor.lineHeight), e.fontInfo
            && (this._typicalHalfwidthCharacterWidth = t.editor.fontInfo.typicalHalfwidthCharacterWidth), e.wrappingInfo
            && (this._isViewportWrapping = t.editor.wrappingInfo.isViewportWrapping), e.viewInfo
            && (this._revealHorizontalRightPadding = t.editor.viewInfo.revealHorizontalRightPadding), e.canUseLayerHinting
            && (this._canUseLayerHinting = t.editor.canUseLayerHinting), e.fontInfo
            && a.Configuration.applyFontInfo(this.domNode,
                t.editor.fontInfo), this._onOptionsMaybeChanged(), e.layoutInfo
            && (this._maxLineWidth = 0), !0
          }, t.prototype._onOptionsMaybeChanged = function () {
            var e = this._context.configuration,
                t = new s.ViewLineOptions(e, this._context.theme.type);
            if (!this._viewLineOptions.equals(t)) {
              this._viewLineOptions = t;
              for (var n = this._visibleLines.getStartLineNumber(),
                  i = this._visibleLines.getEndLineNumber(), o = n; o <= i;
                  o++) {
                this._visibleLines.getVisibleLine(o).onOptionsChanged(
                    this._viewLineOptions);
              }
              return !0
            }
            return !1
          }, t.prototype.onCursorStateChanged = function (e) {
            for (var t = this._visibleLines.getStartLineNumber(),
                n = this._visibleLines.getEndLineNumber(), i = !1, o = t;
                o <= n; o++) {
              i = this._visibleLines.getVisibleLine(
                  o).onSelectionChanged() || i;
            }
            return i
          }, t.prototype.onDecorationsChanged = function (e) {
            for (var t = this._visibleLines.getStartLineNumber(),
                n = this._visibleLines.getEndLineNumber(), i = t; i <= n;
                i++) {
              this._visibleLines.getVisibleLine(
                  i).onDecorationsChanged();
            }
            return !0
          }, t.prototype.onFlushed = function (e) {
            var t = this._visibleLines.onFlushed(e);
            return this._maxLineWidth = 0, t
          }, t.prototype.onLinesChanged = function (e) {
            return this._visibleLines.onLinesChanged(e)
          }, t.prototype.onLinesDeleted = function (e) {
            return this._visibleLines.onLinesDeleted(e)
          }, t.prototype.onLinesInserted = function (e) {
            return this._visibleLines.onLinesInserted(e)
          }, t.prototype.onRevealRangeRequest = function (e) {
            var t = this._computeScrollTopToRevealRange(
                this._context.viewLayout.getCurrentViewport(), e.range,
                e.verticalType);
            return e.revealHorizontal
            && (this._lastCursorRevealRangeHorizontallyEvent = e), this._context.viewLayout.setScrollPosition(
                {scrollTop: t}), !0
          }, t.prototype.onScrollChanged = function (e) {
            return this.domNode.setWidth(
                e.scrollWidth), this._visibleLines.onScrollChanged(e) || !0
          }, t.prototype.onTokensChanged = function (e) {
            return this._visibleLines.onTokensChanged(e)
          }, t.prototype.onZonesChanged = function (e) {
            return this._visibleLines.onZonesChanged(e)
          }, t.prototype.onThemeChanged = function (e) {
            return this._onOptionsMaybeChanged()
          }, t.prototype.getPositionFromDOMInfo = function (e, t) {
            var n = this._getViewLineDomNode(e);
            if (null === n) {
              return null;
            }
            var i = this._getLineNumberFor(n);
            if (-1 === i) {
              return null;
            }
            if (i < 1 || i > this._context.model.getLineCount()) {
              return null;
            }
            if (1 === this._context.model.getLineMaxColumn(
                i)) {
              return new o.Position(i, 1);
            }
            var r = this._visibleLines.getStartLineNumber(),
                s = this._visibleLines.getEndLineNumber();
            if (i < r || i > s) {
              return null;
            }
            var a = this._visibleLines.getVisibleLine(i).getColumnOfNodeOffset(
                i, e, t), u = this._context.model.getLineMinColumn(i);
            return a < u && (a = u), new o.Position(i, a)
          }, t.prototype._getViewLineDomNode = function (e) {
            for (; e && 1 === e.nodeType;) {
              if (e.className === s.ViewLine.CLASS_NAME) {
                return e;
              }
              e = e.parentElement
            }
            return null
          }, t.prototype._getLineNumberFor = function (e) {
            for (var t = this._visibleLines.getStartLineNumber(),
                n = this._visibleLines.getEndLineNumber(), i = t; i <= n;
                i++) {
              if (e === this._visibleLines.getVisibleLine(
                  i).getDomNode()) {
                return i;
              }
            }
            return -1
          }, t.prototype.getLineWidth = function (e) {
            var t = this._visibleLines.getStartLineNumber(),
                n = this._visibleLines.getEndLineNumber();
            return e < t || e > n ? -1 : this._visibleLines.getVisibleLine(
                e).getWidth()
          }, t.prototype.linesVisibleRangesForRange = function (e, t) {
            if (this.shouldRender()) {
              return null;
            }
            var n = e.endLineNumber;
            if (!(e = i.Range.intersectRanges(e,
                this._lastRenderedData.getCurrentVisibleRange()))) {
              return null;
            }
            var r, a = [], l = new s.DomReadingContext(this.domNode.domNode,
                this._textRangeRestingSpot);
            t
            && (r = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(
                new o.Position(e.startLineNumber, 1)).lineNumber);
            for (var c = this._visibleLines.getStartLineNumber(),
                d = this._visibleLines.getEndLineNumber(),
                h = e.startLineNumber; h <= e.endLineNumber; h++) {
              if (!(h < c
                  || h > d)) {
                var p = h === e.startLineNumber ? e.startColumn : 1,
                    f = h === e.endLineNumber ? e.endColumn
                        : this._context.model.getLineMaxColumn(h),
                    g = this._visibleLines.getVisibleLine(
                        h).getVisibleRangesForRange(p, f, l);
                g && 0 !== g.length && (t && h < n && r
                !== (r = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(
                    new o.Position(h + 1, 1)).lineNumber) && (g[g.length
                - 1].width += this._typicalHalfwidthCharacterWidth), a.push(
                    new u.LineVisibleRanges(h, g)))
              }
            }
            return 0 === a.length ? null : a
          }, t.prototype.visibleRangesForRange2 = function (e) {
            if (this.shouldRender()) {
              return null;
            }
            if (!(e = i.Range.intersectRanges(e,
                this._lastRenderedData.getCurrentVisibleRange()))) {
              return null;
            }
            for (var t = [], n = new s.DomReadingContext(this.domNode.domNode,
                    this._textRangeRestingSpot),
                o = this._visibleLines.getStartLineNumber(),
                r = this._visibleLines.getEndLineNumber(),
                a = e.startLineNumber; a <= e.endLineNumber; a++) {
              if (!(a < o
                  || a > r)) {
                var u = a === e.startLineNumber ? e.startColumn : 1,
                    l = a === e.endLineNumber ? e.endColumn
                        : this._context.model.getLineMaxColumn(a),
                    c = this._visibleLines.getVisibleLine(
                        a).getVisibleRangesForRange(u, l, n);
                c && 0 !== c.length && (t = t.concat(c))
              }
            }
            return 0 === t.length ? null : t
          }, t.prototype._updateLineWidths = function () {
            for (var e = this._visibleLines.getStartLineNumber(),
                t = this._visibleLines.getEndLineNumber(), n = 1, i = e; i <= t;
                i++) {
              var o = this._visibleLines.getVisibleLine(i).getWidth();
              n = Math.max(n, o)
            }
            1 === e && t === this._context.model.getLineCount()
            && (this._maxLineWidth = 0), this._ensureMaxLineWidth(n)
          }, t.prototype.prepareRender = function () {
            throw new Error("Not supported")
          }, t.prototype.render = function () {
            throw new Error("Not supported")
          }, t.prototype.renderText = function (e) {
            if (this._visibleLines.renderLines(
                e), this._lastRenderedData.setCurrentVisibleRange(
                e.visibleRange), this.domNode.setWidth(
                this._context.viewLayout.getScrollWidth()), this.domNode.setHeight(
                Math.min(this._context.viewLayout.getScrollHeight(),
                    1e6)), this._lastCursorRevealRangeHorizontallyEvent) {
              var t = this._lastCursorRevealRangeHorizontallyEvent.range;
              this._lastCursorRevealRangeHorizontallyEvent = null, this.onDidRender();
              var n = this._computeScrollLeftToRevealRange(t);
              this._isViewportWrapping || this._ensureMaxLineWidth(
                  n.maxHorizontalOffset), this._context.viewLayout.setScrollPosition(
                  {scrollLeft: n.scrollLeft})
            }
            this._linesContent.setLayerHinting(this._canUseLayerHinting);
            var i = this._context.viewLayout.getScrollTop() - e.bigNumbersDelta;
            this._linesContent.setTop(-i), this._linesContent.setLeft(
                -this._context.viewLayout.getScrollLeft()), this._asyncUpdateLineWidths.schedule()
          }, t.prototype._ensureMaxLineWidth = function (e) {
            var t = Math.ceil(e);
            this._maxLineWidth < t
            && (this._maxLineWidth = t, this._context.viewLayout.onMaxLineWidthChanged(
                this._maxLineWidth))
          }, t.prototype._computeScrollTopToRevealRange = function (e, t, n) {
            var i, o, r = e.top, s = e.height, a = r + s;
            i = this._context.viewLayout.getVerticalOffsetForLineNumber(
                t.startLineNumber), o = this._context.viewLayout.getVerticalOffsetForLineNumber(
                t.endLineNumber) + this._lineHeight, 0 !== n && 4 !== n
            || (o += this._lineHeight);
            var u;
            if (1 === n || 2 === n) {
              if (2 === n && r <= i && o
                  <= a) {
                u = r;
              } else {
                var l = (i + o) / 2;
                u = Math.max(0, l - s / 2)
              }
            } else {
              u = this._computeMinimumScrolling(r, a, i, o, 3 === n,
                  4 === n);
            }
            return u
          }, t.prototype._computeScrollLeftToRevealRange = function (e) {
            var n = 0;
            if (e.startLineNumber !== e.endLineNumber) {
              return {
                scrollLeft: 0,
                maxHorizontalOffset: n
              };
            }
            var i = this._context.viewLayout.getCurrentViewport(), o = i.left,
                r = o + i.width, s = this.visibleRangesForRange2(e),
                a = Number.MAX_VALUE, u = 0;
            if (!s) {
              return {scrollLeft: o, maxHorizontalOffset: n};
            }
            for (var l = 0; l < s.length; l++) {
              var c = s[l];
              c.left < a && (a = c.left), c.left + c.width > u && (u = c.left
                  + c.width)
            }
            return n = u, a = Math.max(0, a
                - t.HORIZONTAL_EXTRA_PX), u += this._revealHorizontalRightPadding, {
              scrollLeft: this._computeMinimumScrolling(o, r, a, u),
              maxHorizontalOffset: n
            }
          }, t.prototype._computeMinimumScrolling = function (e, t, n, i, o,
              r) {
            o = !!o, r = !!r;
            var s = (t |= 0) - (e |= 0);
            return (i |= 0) - (n |= 0) < s ? o ? n : r ? Math.max(0, i - s) : n
            < e ? n : i > t ? Math.max(0, i - s) : e : n
          }, t.HORIZONTAL_EXTRA_PX = 30, t
        }(l.ViewPart);
        t.ViewLines = h
      }), define(d[493],
      h([1, 0, 35, 215, 4, 111, 27, 112, 2, 57, 83, 15, 14, 23, 294]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p) {
        "use strict";

        function g(e) {
          return 2 === e ? 4 : 4 === e ? 6 : 1 === e ? 2 : 3
        }

        function m(e) {
          return 2 === e ? 2 : 4 === e ? 2 : 1
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var v;
        !function (e) {
          e[e.None = 0] = "None", e[e.Small = 1] = "Small", e[e.Large = 2] = "Large", e[e.SmallBlocks = 3] = "SmallBlocks", e[e.LargeBlocks = 4] = "LargeBlocks"
        }(v || (v = {}));
        var _ = 140, y = function () {
          function e(e) {
            var t = e.editor.pixelRatio, n = e.editor.layoutInfo,
                i = e.editor.viewInfo, o = e.editor.fontInfo;
            this.renderMinimap = 0
                | n.renderMinimap, this.scrollBeyondLastLine = i.scrollBeyondLastLine, this.showSlider = i.minimap.showSlider, this.pixelRatio = t, this.typicalHalfwidthCharacterWidth = o.typicalHalfwidthCharacterWidth, this.lineHeight = e.editor.lineHeight, this.minimapWidth = n.minimapWidth, this.minimapHeight = n.height, this.canvasInnerWidth = Math.max(
                1, Math.floor(
                    t * this.minimapWidth)), this.canvasInnerHeight = Math.max(
                1, Math.floor(t
                    * this.minimapHeight)), this.canvasOuterWidth = this.canvasInnerWidth
                / t, this.canvasOuterHeight = this.canvasInnerHeight / t
          }

          return e.prototype.equals = function (e) {
            return this.renderMinimap === e.renderMinimap
                && this.scrollBeyondLastLine === e.scrollBeyondLastLine
                && this.showSlider === e.showSlider && this.pixelRatio
                === e.pixelRatio && this.typicalHalfwidthCharacterWidth
                === e.typicalHalfwidthCharacterWidth && this.lineHeight
                === e.lineHeight && this.minimapWidth === e.minimapWidth
                && this.minimapHeight === e.minimapHeight
                && this.canvasInnerWidth === e.canvasInnerWidth
                && this.canvasInnerHeight === e.canvasInnerHeight
                && this.canvasOuterWidth === e.canvasOuterWidth
                && this.canvasOuterHeight === e.canvasOuterHeight
          }, e
        }(), C = function () {
          function e(e, t, n, i, o, r, s) {
            this.scrollTop = e, this.scrollHeight = t, this._computedSliderRatio = n, this.sliderTop = i, this.sliderHeight = o, this.startLineNumber = r, this.endLineNumber = s
          }

          return e.prototype.getDesiredScrollTopFromDelta = function (e) {
            var t = this.sliderTop + e;
            return Math.round(t / this._computedSliderRatio)
          }, e.create = function (t, n, i, o, r, s, a, u, l) {
            var c, d = t.pixelRatio, h = g(t.renderMinimap),
                p = Math.floor(t.canvasInnerHeight / h), f = t.lineHeight;
            if (r && i !== s) {
              var m = i - n + 1;
              c = Math.floor(m * h / d)
            } else {
              var v = o / f;
              c = Math.floor(v * h / d)
            }
            var _;
            _ = t.scrollBeyondLastLine ? (s - 1) * h / d : Math.max(0,
                s * h / d - c);
            var y = (_ = Math.min(t.minimapHeight - c, _)) / (u - o), C = a * y;
            if (p >= s) {
              return new e(a, u, y, C, c, b = 1, w = s);
            }
            var b = Math.max(1, Math.floor(n - C * d / h));
            l && l.scrollHeight === u && (l.scrollTop > a && (b = Math.min(b,
                l.startLineNumber)), l.scrollTop < a && (b = Math.max(b,
                l.startLineNumber)));
            var w = Math.min(s, b + p - 1);
            return new e(a, u, y, C, c, b, w)
          }, e
        }(), b = function () {
          function e(e) {
            this.dy = e
          }

          return e.prototype.onContentChanged = function () {
            this.dy = -1
          }, e.prototype.onTokensChanged = function () {
            this.dy = -1
          }, e.INVALID = new e(-1), e
        }(), w = function () {
          function e(e, t, n) {
            this.renderedLayout = e, this._imageData = t, this._renderedLines = new a.RenderedLinesCollection(
                function () {
                  return b.INVALID
                }), this._renderedLines._set(e.startLineNumber, n)
          }

          return e.prototype.linesEquals = function (e) {
            if (this.renderedLayout.startLineNumber
                !== e.startLineNumber) {
              return !1;
            }
            if (this.renderedLayout.endLineNumber
                !== e.endLineNumber) {
              return !1;
            }
            for (var t = this._renderedLines._get().lines, n = 0, i = t.length;
                n < i; n++) {
              if (-1 === t[n].dy) {
                return !1;
              }
            }
            return !0
          }, e.prototype._get = function () {
            var e = this._renderedLines._get();
            return {
              imageData: this._imageData,
              rendLineNumberStart: e.rendLineNumberStart,
              lines: e.lines
            }
          }, e.prototype.onLinesChanged = function (e) {
            return this._renderedLines.onLinesChanged(e.fromLineNumber,
                e.toLineNumber)
          }, e.prototype.onLinesDeleted = function (e) {
            this._renderedLines.onLinesDeleted(e.fromLineNumber, e.toLineNumber)
          }, e.prototype.onLinesInserted = function (e) {
            this._renderedLines.onLinesInserted(e.fromLineNumber,
                e.toLineNumber)
          }, e.prototype.onTokensChanged = function (e) {
            return this._renderedLines.onTokensChanged(e.ranges)
          }, e
        }(), S = function () {
          function e(t, n, i, o) {
            this._backgroundFillData = e._createBackgroundFillData(n, i,
                o), this._buffers = [t.createImageData(n, i),
              t.createImageData(n, i)], this._lastUsedBuffer = 0
          }

          return e.prototype.getBuffer = function () {
            this._lastUsedBuffer = 1 - this._lastUsedBuffer;
            var e = this._buffers[this._lastUsedBuffer];
            return e.data.set(this._backgroundFillData), e
          }, e._createBackgroundFillData = function (e, t, n) {
            for (var i = n.r, o = n.g, r = n.b,
                s = new Uint8ClampedArray(e * t * 4), a = 0, u = 0; u < t;
                u++) {
              for (var l = 0; l < e; l++) {
                s[a] = i, s[a + 1] = o, s[a
                + 2] = r, s[a + 3] = 255, a += 4;
              }
            }
            return s
          }, e
        }(), E = function (e) {
          function t(t) {
            var a = e.call(this, t) || this;
            return a._options = new y(
                a._context.configuration), a._lastRenderData = null, a._buffers = null, a._domNode = s.createFastDomNode(
                document.createElement("div")), n.PartFingerprints.write(
                a._domNode, 8), a._domNode.setClassName(
                a._getMinimapDomNodeClassName()), a._domNode.setPosition(
                "absolute"), a._domNode.setAttribute("role",
                "presentation"), a._domNode.setAttribute("aria-hidden",
                "true"), a._domNode.setRight(
                a._context.configuration.editor.layoutInfo.verticalScrollbarWidth), a._shadow = s.createFastDomNode(
                document.createElement("div")), a._shadow.setClassName(
                "minimap-shadow-hidden"), a._domNode.appendChild(
                a._shadow), a._canvas = s.createFastDomNode(
                document.createElement("canvas")), a._canvas.setPosition(
                "absolute"), a._canvas.setLeft(0), a._domNode.appendChild(
                a._canvas), a._slider = s.createFastDomNode(
                document.createElement("div")), a._slider.setPosition(
                "absolute"), a._slider.setClassName(
                "minimap-slider"), a._slider.setLayerHinting(
                !0), a._domNode.appendChild(
                a._slider), a._sliderHorizontal = s.createFastDomNode(
                document.createElement("div")), a._sliderHorizontal.setPosition(
                "absolute"), a._sliderHorizontal.setClassName(
                "minimap-slider-horizontal"), a._slider.appendChild(
                a._sliderHorizontal), a._tokensColorTracker = r.MinimapTokensColorTracker.getInstance(), a._minimapCharRenderer = i.getOrCreateMinimapCharRenderer(), a._applyLayout(), a._mouseDownListener = o.addStandardDisposableListener(
                a._canvas.domNode, "mousedown", function (e) {
                  e.preventDefault();
                  var t = a._options.renderMinimap;
                  if (0 !== t && a._lastRenderData) {
                    var n = g(t),
                        i = a._options.pixelRatio * e.browserEvent.offsetY,
                        o = Math.floor(i / n)
                            + a._lastRenderData.renderedLayout.startLineNumber;
                    o = Math.min(o,
                        a._context.model.getLineCount()), a._context.privateViewEventBus.emit(
                        new l.ViewRevealRangeRequestEvent(
                            new u.Range(o, 1, o, 1), 1, !1))
                  }
                }), a._sliderMouseMoveMonitor = new c.GlobalMouseMoveMonitor, a._sliderMouseDownListener = o.addStandardDisposableListener(
                a._slider.domNode, "mousedown", function (e) {
                  if (e.preventDefault(), e.leftButton && a._lastRenderData) {
                    var t = e.posy, n = e.posx,
                        i = a._lastRenderData.renderedLayout;
                    a._slider.toggleClassName("active",
                        !0), a._sliderMouseMoveMonitor.startMonitoring(
                        c.standardMouseMoveMerger, function (e) {
                          var o = Math.abs(e.posx - n);
                          if (d.isWindows && o
                              > _) {
                            a._context.viewLayout.setScrollPosition(
                                {scrollTop: i.scrollTop});
                          } else {
                            var r = e.posy - t;
                            a._context.viewLayout.setScrollPosition(
                                {scrollTop: i.getDesiredScrollTopFromDelta(r)})
                          }
                        }, function () {
                          a._slider.toggleClassName("active", !1)
                        })
                  }
                }), a
          }

          return f(t, e), t.prototype.dispose = function () {
            this._mouseDownListener.dispose(), this._sliderMouseMoveMonitor.dispose(), this._sliderMouseDownListener.dispose(), e.prototype.dispose.call(
                this)
          }, t.prototype._getMinimapDomNodeClassName = function () {
            return "always" === this._options.showSlider
                ? "minimap slider-always" : "minimap slider-mouseover"
          }, t.prototype.getDomNode = function () {
            return this._domNode
          }, t.prototype._applyLayout = function () {
            this._domNode.setWidth(
                this._options.minimapWidth), this._domNode.setHeight(
                this._options.minimapHeight), this._shadow.setHeight(
                this._options.minimapHeight), this._canvas.setWidth(
                this._options.canvasOuterWidth), this._canvas.setHeight(
                this._options.canvasOuterHeight), this._canvas.domNode.width = this._options.canvasInnerWidth, this._canvas.domNode.height = this._options.canvasInnerHeight, this._slider.setWidth(
                this._options.minimapWidth)
          }, t.prototype._getBuffer = function () {
            return this._buffers || (this._buffers = new S(
                this._canvas.domNode.getContext("2d"),
                this._options.canvasInnerWidth, this._options.canvasInnerHeight,
                this._tokensColorTracker.getColor(
                    2))), this._buffers.getBuffer()
          }, t.prototype._onOptionsMaybeChanged = function () {
            var e = new y(this._context.configuration);
            return !this._options.equals(e)
                && (this._options = e, this._lastRenderData = null, this._buffers = null, this._applyLayout(), this._domNode.setClassName(
                    this._getMinimapDomNodeClassName()), !0)
          }, t.prototype.onConfigurationChanged = function (e) {
            return this._onOptionsMaybeChanged()
          }, t.prototype.onFlushed = function (e) {
            return this._lastRenderData = null, !0
          }, t.prototype.onLinesChanged = function (e) {
            return !!this._lastRenderData
                && this._lastRenderData.onLinesChanged(e)
          }, t.prototype.onLinesDeleted = function (e) {
            return this._lastRenderData && this._lastRenderData.onLinesDeleted(
                e), !0
          }, t.prototype.onLinesInserted = function (e) {
            return this._lastRenderData && this._lastRenderData.onLinesInserted(
                e), !0
          }, t.prototype.onScrollChanged = function (e) {
            return !0
          }, t.prototype.onTokensChanged = function (e) {
            return !!this._lastRenderData
                && this._lastRenderData.onTokensChanged(e)
          }, t.prototype.onTokensColorsChanged = function (e) {
            return this._lastRenderData = null, this._buffers = null, !0
          }, t.prototype.onZonesChanged = function (e) {
            return this._lastRenderData = null, !0
          }, t.prototype.prepareRender = function (e) {
          }, t.prototype.render = function (e) {
            if (0 !== this._options.renderMinimap) {
              e.scrollLeft + e.viewportWidth >= e.scrollWidth
                  ? this._shadow.setClassName("minimap-shadow-hidden")
                  : this._shadow.setClassName("minimap-shadow-visible");
              var t = C.create(this._options, e.visibleRange.startLineNumber,
                  e.visibleRange.endLineNumber, e.viewportHeight,
                  e.viewportData.whitespaceViewportData.length > 0,
                  this._context.model.getLineCount(), e.scrollTop,
                  e.scrollHeight,
                  this._lastRenderData ? this._lastRenderData.renderedLayout
                      : null);
              this._slider.setTop(t.sliderTop), this._slider.setHeight(
                  t.sliderHeight);
              var n = e.scrollLeft
                      / this._options.typicalHalfwidthCharacterWidth,
                  i = Math.min(this._options.minimapWidth, Math.round(
                      n * m(this._options.renderMinimap)
                      / this._options.pixelRatio));
              this._sliderHorizontal.setLeft(
                  i), this._sliderHorizontal.setWidth(this._options.minimapWidth
                  - i), this._sliderHorizontal.setTop(
                  0), this._sliderHorizontal.setHeight(
                  t.sliderHeight), this._lastRenderData = this.renderLines(t)
            } else {
              this._shadow.setClassName("minimap-shadow-hidden")
            }
          }, t.prototype.renderLines = function (e) {
            var n = this._options.renderMinimap, i = e.startLineNumber,
                o = e.endLineNumber, r = g(n);
            if (this._lastRenderData && this._lastRenderData.linesEquals(e)) {
              var s = this._lastRenderData._get();
              return new w(e, s.imageData, s.lines)
            }
            for (var a = this._getBuffer(),
                u = t._renderUntouchedLines(a, i, o, r, this._lastRenderData),
                l = this._context.model.getMinimapLinesRenderingData(i, o, u),
                c = l.tabSize, d = this._tokensColorTracker.getColor(2),
                h = this._tokensColorTracker.backgroundIsLight(), p = 0, f = [],
                m = 0, v = o - i + 1; m < v; m++) {
              u[m] && t._renderLine(a, d, h,
                  n, this._tokensColorTracker, this._minimapCharRenderer, p, c,
                  l.data[m]), f[m] = new b(p), p += r;
            }
            return this._canvas.domNode.getContext("2d").putImageData(a, 0,
                0), new w(e, a, f)
          }, t._renderUntouchedLines = function (e, t, n, i, o) {
            var r = [];
            if (!o) {
              for (var s = 0, a = n - t + 1; s < a; s++) {
                r[s] = !0;
              }
              return r
            }
            for (var u = o._get(), l = u.imageData.data,
                c = u.rendLineNumberStart, d = u.lines, h = d.length,
                p = e.width, f = e.data, g = -1, m = -1, v = -1, _ = -1, y = 0,
                C = t; C <= n; C++) {
              var b = C - t, w = C - c, S = w >= 0 && w < h ? d[w].dy : -1;
              if (-1 !== S) {
                var E = S * p * 4, L = (S + i) * p * 4, x = y * p * 4,
                    N = (y + i) * p * 4;
                m === E && _ === x ? (m = L, _ = N) : (-1 !== g && f.set(
                    l.subarray(g, m),
                    v), g = E, m = L, v = x, _ = N), r[b] = !1, y += i
              } else {
                r[b] = !0, y += i
              }
            }
            return -1 !== g && f.set(l.subarray(g, m), v), r
          }, t._renderLine = function (e, t, n, i, o, r, s, a, u) {
            for (var l = u.content, c = u.tokens, d = m(i), h = e.width - d,
                p = 0, f = 0, g = 0, v = 0, _ = c.length; v < _;
                v++) {
              for (var y = c[v], C = y.endIndex, b = y.getForeground(),
                  w = o.getColor(b); f < C; f++) {
                if (p > h) {
                  return;
                }
                var S = l.charCodeAt(f);
                if (9 === S) {
                  var E = a - (f + g) % a;
                  g += E - 1, p += E * d
                } else {
                  32 === S ? p += d : (2 === i ? r.x2RenderChar(e, p, s, S,
                      w, t, n) : 1 === i ? r.x1RenderChar(e, p, s, S, w, t, n)
                      : 4
                      === i ? r.x2BlockRenderChar(e, p, s, w, t, n)
                          : r.x1BlockRenderChar(e, p, s, w, t, n), p += d)
                }
              }
            }
          }, t
        }(n.ViewPart);
        t.Minimap = E, h.registerThemingParticipant(function (e, t) {
          var n = e.getColor(p.scrollbarSliderBackground);
          if (n) {
            var i = n.transparent(.5);
            t.addRule(
                ".monaco-editor .minimap-slider, .monaco-editor .minimap-slider .minimap-slider-horizontal { background: "
                + i + "; }")
          }
          var o = e.getColor(p.scrollbarSliderHoverBackground);
          if (o) {
            var r = o.transparent(.5);
            t.addRule(
                ".monaco-editor .minimap-slider:hover, .monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: "
                + r + "; }")
          }
          var s = e.getColor(p.scrollbarSliderActiveBackground);
          if (s) {
            var a = s.transparent(.5);
            t.addRule(
                ".monaco-editor .minimap-slider.active, .monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: "
                + a + "; }")
          }
          var u = e.getColor(p.scrollbarShadow);
          u && t.addRule(
              ".monaco-editor .minimap-shadow-visible { box-shadow: " + u
              + " -6px 0 6px -6px inset; }")
        })
      }), define(d[494], h([1, 0, 27, 35, 14, 23, 300]),
      function (e, t, n, i, o, r) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var s = function (e) {
          function t(t) {
            var i = e.call(this, t) || this;
            return i._scrollTop = 0, i._width = 0, i._updateWidth(), i._shouldShow = !1, i._useShadows = i._context.configuration.editor.viewInfo.scrollbar.useShadows, i._domNode = n.createFastDomNode(
                document.createElement("div")), i._domNode.setAttribute("role",
                "presentation"), i._domNode.setAttribute("aria-hidden",
                "true"), i
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.prototype._updateShouldShow = function () {
            var e = this._useShadows && this._scrollTop > 0;
            return this._shouldShow !== e && (this._shouldShow = e, !0)
          }, t.prototype.getDomNode = function () {
            return this._domNode
          }, t.prototype._updateWidth = function () {
            var e = this._context.configuration.editor.layoutInfo,
                t = e.width - e.minimapWidth;
            return this._width !== t && (this._width = t, !0)
          }, t.prototype.onConfigurationChanged = function (e) {
            var t = !1;
            return e.viewInfo
            && (this._useShadows = this._context.configuration.editor.viewInfo.scrollbar.useShadows), e.layoutInfo
            && (t = this._updateWidth()), this._updateShouldShow() || t
          }, t.prototype.onScrollChanged = function (e) {
            return this._scrollTop = e.scrollTop, this._updateShouldShow()
          }, t.prototype.prepareRender = function (e) {
          }, t.prototype.render = function (e) {
            this._domNode.setWidth(this._width), this._domNode.setClassName(
                this._shouldShow ? "scroll-decoration" : "")
          }, t
        }(i.ViewPart);
        t.ScrollDecorationViewPart = s, o.registerThemingParticipant(
            function (e, t) {
              var n = e.getColor(r.scrollbarShadow);
              n && t.addRule(
                  ".monaco-editor .scroll-decoration { box-shadow: " + n
                  + " 0 6px 6px -6px inset; }")
            })
      }), define(d[495], h([1, 0, 14, 23, 67, 28, 306]),
      function (e, t, n, i, o, r) {
        "use strict";

        function s(e) {
          return new l(e)
        }

        function a(e) {
          return new c(e.lineNumber, e.ranges.map(s))
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var u;
        !function (e) {
          e[e.EXTERN = 0] = "EXTERN", e[e.INTERN = 1] = "INTERN", e[e.FLAT = 2] = "FLAT"
        }(u || (u = {}));
        var l = function () {
          return function (e) {
            this.left = e.left, this.width = e.width, this.startStyle = null, this.endStyle = null
          }
        }(), c = function () {
          return function (e, t) {
            this.lineNumber = e, this.ranges = t
          }
        }(), d = r.isEdgeOrIE, h = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n._previousFrameVisibleRangesWithStyle = [], n._context = t, n._lineHeight = n._context.configuration.editor.lineHeight, n._roundedSelection = n._context.configuration.editor.viewInfo.roundedSelection, n._selections = [], n._renderResult = null, n._context.addEventHandler(
                n), n
          }

          return f(t, e), t.prototype.dispose = function () {
            this._context.removeEventHandler(
                this), this._context = null, this._selections = null, this._renderResult = null, e.prototype.dispose.call(
                this)
          }, t.prototype.onConfigurationChanged = function (e) {
            return e.lineHeight
            && (this._lineHeight = this._context.configuration.editor.lineHeight), e.viewInfo
            && (this._roundedSelection = this._context.configuration.editor.viewInfo.roundedSelection), !0
          }, t.prototype.onCursorStateChanged = function (e) {
            return this._selections = e.selections.slice(0), !0
          }, t.prototype.onDecorationsChanged = function (e) {
            return !0
          }, t.prototype.onFlushed = function (e) {
            return !0
          }, t.prototype.onLinesChanged = function (e) {
            return !0
          }, t.prototype.onLinesDeleted = function (e) {
            return !0
          }, t.prototype.onLinesInserted = function (e) {
            return !0
          }, t.prototype.onScrollChanged = function (e) {
            return e.scrollTopChanged
          }, t.prototype.onZonesChanged = function (e) {
            return !0
          }, t.prototype._visibleRangesHaveGaps = function (e) {
            for (var t = 0, n = e.length; t < n; t++) {
              if (e[t].ranges.length
                  > 1) {
                return !0;
              }
            }
            return !1
          }, t.prototype._enrichVisibleRangesWithStyle = function (e, t) {
            var n = null, i = null;
            if (t && t.length > 0 && e.length > 0) {
              for (var o = e[0].lineNumber, r = 0; !n && r < t.length;
                  r++) {
                t[r].lineNumber === o && (n = t[r].ranges[0]);
              }
              for (var s = e[e.length - 1].lineNumber, r = t.length - 1;
                  !i && r >= 0; r--) {
                t[r].lineNumber === s
                && (i = t[r].ranges[0]);
              }
              n && !n.startStyle && (n = null), i && !i.startStyle && (i = null)
            }
            for (var r = 0, a = e.length; r < a; r++) {
              var u = e[r].ranges[0], l = u.left, c = u.left + u.width,
                  d = {top: 0, bottom: 0}, h = {top: 0, bottom: 0};
              if (r > 0) {
                var p = e[r - 1].ranges[0].left,
                    f = e[r - 1].ranges[0].left + e[r - 1].ranges[0].width;
                l === p ? d.top = 2 : l > p && (d.top = 1), c === f ? h.top = 2
                    : p < c && c < f && (h.top = 1)
              } else {
                n && (d.top = n.startStyle.top, h.top = n.endStyle.top);
              }
              if (r + 1 < a) {
                var g = e[r + 1].ranges[0].left,
                    m = e[r + 1].ranges[0].left + e[r + 1].ranges[0].width;
                l === g ? d.bottom = 2 : g < l && l < m && (d.bottom = 1), c
                === m ? h.bottom = 2 : c < m && (h.bottom = 1)
              } else {
                i
                && (d.bottom = i.startStyle.bottom, h.bottom = i.endStyle.bottom);
              }
              u.startStyle = d, u.endStyle = h
            }
          }, t.prototype._getVisibleRangesWithStyle = function (e, t, n) {
            var i = (t.linesVisibleRangesForRange(e, !0) || []).map(a),
                o = this._visibleRangesHaveGaps(i);
            return d || o || !this._roundedSelection
            || this._enrichVisibleRangesWithStyle(i, n), i
          }, t.prototype._createSelectionPiece = function (e, t, n, i, o) {
            return '<div class="cslr ' + n + '" style="top:' + e.toString()
                + "px;left:" + i.toString() + "px;width:" + o.toString()
                + "px;height:" + t + 'px;"></div>'
          }, t.prototype._actualRenderOneSelection = function (e, n, i, o) {
            for (var r = o.length > 0 && o[0].ranges[0].startStyle,
                s = this._lineHeight.toString(),
                a = (this._lineHeight - 1).toString(),
                u = o.length > 0 ? o[0].lineNumber : 0,
                l = o.length > 0 ? o[o.length - 1].lineNumber : 0, c = 0,
                d = o.length; c < d; c++) {
              for (var h = o[c], p = h.lineNumber, f = p - n,
                  g = i && (p === l || p === u) ? a : s,
                  m = i && p === u ? 1 : 0, v = "", _ = 0, y = h.ranges.length;
                  _ < y; _++) {
                var C = h.ranges[_];
                if (r) {
                  if (1 === C.startStyle.top || 1 === C.startStyle.bottom) {
                    v += this._createSelectionPiece(m, g,
                        t.SELECTION_CLASS_NAME, C.left - t.ROUNDED_PIECE_WIDTH,
                        t.ROUNDED_PIECE_WIDTH);
                    var b = t.EDITOR_BACKGROUND_CLASS_NAME;
                    1 === C.startStyle.top && (b += " "
                        + t.SELECTION_TOP_RIGHT), 1 === C.startStyle.bottom
                    && (b += " "
                        + t.SELECTION_BOTTOM_RIGHT), v += this._createSelectionPiece(
                        m, g, b, C.left - t.ROUNDED_PIECE_WIDTH,
                        t.ROUNDED_PIECE_WIDTH)
                  }
                  if (1 === C.endStyle.top || 1 === C.endStyle.bottom) {
                    v += this._createSelectionPiece(m, g,
                        t.SELECTION_CLASS_NAME, C.left + C.width,
                        t.ROUNDED_PIECE_WIDTH);
                    var w = t.EDITOR_BACKGROUND_CLASS_NAME;
                    1 === C.endStyle.top && (w += " " + t.SELECTION_TOP_LEFT), 1
                    === C.endStyle.bottom && (w += " "
                        + t.SELECTION_BOTTOM_LEFT), v += this._createSelectionPiece(
                        m, g, w, C.left + C.width, t.ROUNDED_PIECE_WIDTH)
                  }
                }
                var S = t.SELECTION_CLASS_NAME;
                r && (0 === C.startStyle.top && (S += " "
                    + t.SELECTION_TOP_LEFT), 0 === C.startStyle.bottom
                && (S += " " + t.SELECTION_BOTTOM_LEFT), 0 === C.endStyle.top
                && (S += " " + t.SELECTION_TOP_RIGHT), 0 === C.endStyle.bottom
                && (S += " "
                    + t.SELECTION_BOTTOM_RIGHT)), v += this._createSelectionPiece(
                    m, g, S, C.left, C.width)
              }
              e[f] += v
            }
          }, t.prototype.prepareRender = function (e) {
            for (var t = [], n = e.visibleRange.startLineNumber,
                i = e.visibleRange.endLineNumber, o = n; o <= i; o++) {
              t[o
              - n] = "";
            }
            for (var r = [], s = 0, a = this._selections.length; s < a; s++) {
              var u = this._selections[s];
              if (u.isEmpty()) {
                r.push(null);
              } else {
                var l = this._getVisibleRangesWithStyle(u, e,
                    this._previousFrameVisibleRangesWithStyle[s]);
                r.push(l), this._actualRenderOneSelection(t, n,
                    this._selections.length > 1, l)
              }
            }
            this._previousFrameVisibleRangesWithStyle = r, this._renderResult = t
          }, t.prototype.render = function (e, t) {
            if (!this._renderResult) {
              return "";
            }
            var n = t - e;
            if (n < 0 || n >= this._renderResult.length) {
              throw new Error(
                  "Unexpected render request");
            }
            return this._renderResult[n]
          }, t.SELECTION_CLASS_NAME = "selected-text", t.SELECTION_TOP_LEFT = "top-left-radius", t.SELECTION_BOTTOM_LEFT = "bottom-left-radius", t.SELECTION_TOP_RIGHT = "top-right-radius", t.SELECTION_BOTTOM_RIGHT = "bottom-right-radius", t.EDITOR_BACKGROUND_CLASS_NAME = "monaco-editor-background", t.ROUNDED_PIECE_WIDTH = 10, t
        }(o.DynamicViewOverlay);
        t.SelectionsOverlay = h, n.registerThemingParticipant(function (e, t) {
          var n = e.getColor(i.editorSelectionBackground);
          n && t.addRule(
              ".monaco-editor .focused .selected-text { background-color: " + n
              + "; }");
          var o = e.getColor(i.editorInactiveSelection);
          o && t.addRule(
              ".monaco-editor .selected-text { background-color: " + o + "; }");
          var r = e.getColor(i.editorSelectionForeground);
          r && t.addRule(
              ".monaco-editor .view-line span.inline-selected-text { color: "
              + r + "; }")
        })
      }), define(d[37], h([1, 0, 340, 23, 14, 32]),
      function (e, t, n, i, o, r) {
        "use strict";
        Object.defineProperty(t, "__esModule",
            {value: !0}), t.editorLineHighlight = i.registerColor(
            "editor.lineHighlightBackground",
            {dark: null, light: null, hc: null},
            n.localize(0, null)), t.editorLineHighlightBorder = i.registerColor(
            "editor.lineHighlightBorder",
            {dark: "#282828", light: "#eeeeee", hc: "#f38518"},
            n.localize(1, null)), t.editorRangeHighlight = i.registerColor(
            "editor.rangeHighlightBackground",
            {dark: "#ffffff0b", light: "#fdff0033", hc: null},
            n.localize(2, null)), t.editorCursorForeground = i.registerColor(
            "editorCursor.foreground",
            {dark: "#AEAFAD", light: r.Color.black, hc: r.Color.white},
            n.localize(3, null)), t.editorCursorBackground = i.registerColor(
            "editorCursor.background", null,
            n.localize(4, null)), t.editorWhitespaces = i.registerColor(
            "editorWhitespace.foreground",
            {dark: "#e3e4e229", light: "#33333333", hc: "#e3e4e229"},
            n.localize(5, null)), t.editorIndentGuides = i.registerColor(
            "editorIndentGuide.background", {
              dark: t.editorWhitespaces,
              light: t.editorWhitespaces,
              hc: t.editorWhitespaces
            }, n.localize(6, null)), t.editorLineNumbers = i.registerColor(
            "editorLineNumber.foreground",
            {dark: "#5A5A5A", light: "#2B91AF", hc: r.Color.white},
            n.localize(7, null)), t.editorRuler = i.registerColor(
            "editorRuler.foreground",
            {dark: "#5A5A5A", light: r.Color.lightgrey, hc: r.Color.white},
            n.localize(8, null)), t.editorCodeLensForeground = i.registerColor(
            "editorCodeLens.foreground",
            {dark: "#999999", light: "#999999", hc: "#999999"}, n.localize(9,
                null)), t.editorBracketMatchBackground = i.registerColor(
            "editorBracketMatch.background",
            {dark: "#0064001a", light: "#0064001a", hc: "#0064001a"},
            n.localize(10, null)), t.editorBracketMatchBorder = i.registerColor(
            "editorBracketMatch.border",
            {dark: "#888", light: "#B9B9B9", hc: "#fff"}, n.localize(11,
                null)), t.editorOverviewRulerBorder = i.registerColor(
            "editorOverviewRuler.border",
            {dark: "#7f7f7f4d", light: "#7f7f7f4d", hc: "#7f7f7f4d"},
            n.localize(12, null)), t.editorGutter = i.registerColor(
            "editorGutter.background", {
              dark: i.editorBackground,
              light: i.editorBackground,
              hc: i.editorBackground
            }, n.localize(13, null)), t.editorErrorForeground = i.registerColor(
            "editorError.foreground",
            {dark: "#FF0000", light: "#FF0000", hc: null},
            n.localize(14, null)), t.editorErrorBorder = i.registerColor(
            "editorError.border", {
              dark: null,
              light: null,
              hc: r.Color.fromHex("#E47777").transparent(.8)
            },
            n.localize(15, null)), t.editorWarningForeground = i.registerColor(
            "editorWarning.foreground",
            {dark: "#008000", light: "#008000", hc: null},
            n.localize(16, null)), t.editorWarningBorder = i.registerColor(
            "editorWarning.border", {
              dark: null,
              light: null,
              hc: r.Color.fromHex("#71B771").transparent(.8)
            }, n.localize(17, null)), o.registerThemingParticipant(
            function (e, n) {
              var o = e.getColor(i.editorBackground);
              o && n.addRule(
                  ".monaco-editor, .monaco-editor-background, .monaco-editor .inputarea.ime-input { background-color: "
                  + o + "; }");
              var r = e.getColor(i.editorForeground);
              r && n.addRule(
                  ".monaco-editor, .monaco-editor .inputarea.ime-input { color: "
                  + r + "; }");
              var s = e.getColor(t.editorGutter);
              s && n.addRule(
                  ".monaco-editor .margin { background-color: " + s + "; }");
              var a = e.getColor(t.editorRangeHighlight);
              a && n.addRule(
                  ".monaco-editor .rangeHighlight { background-color: " + a
                  + "; }");
              var u = e.getColor(i.activeContrastBorder);
              u && n.addRule(
                  ".monaco-editor .rangeHighlight { border: 1px dotted " + u
                  + "; }; }");
              var l = e.getColor(t.editorWhitespaces);
              l && n.addRule(".vs-whitespace { color: " + l + " !important; }")
            })
      }),define(d[497], h([1, 0, 67, 14, 37, 274]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n._context = t, n._lineHeight = n._context.configuration.editor.lineHeight, n._readOnly = n._context.configuration.editor.readOnly, n._renderLineHighlight = n._context.configuration.editor.viewInfo.renderLineHighlight, n._selectionIsEmpty = !0, n._primaryCursorIsInEditableRange = !0, n._primaryCursorLineNumber = 1, n._scrollWidth = 0, n._contentWidth = n._context.configuration.editor.layoutInfo.contentWidth, n._context.addEventHandler(
            n), n
      }

      return f(t, e), t.prototype.dispose = function () {
        this._context.removeEventHandler(
            this), this._context = null, e.prototype.dispose.call(this)
      }, t.prototype.onConfigurationChanged = function (e) {
        return e.lineHeight
        && (this._lineHeight = this._context.configuration.editor.lineHeight), e.readOnly
        && (this._readOnly = this._context.configuration.editor.readOnly), e.viewInfo
        && (this._renderLineHighlight = this._context.configuration.editor.viewInfo.renderLineHighlight), e.layoutInfo
        && (this._contentWidth = this._context.configuration.editor.layoutInfo.contentWidth), !0
      }, t.prototype.onCursorStateChanged = function (e) {
        var t = !1;
        this._primaryCursorIsInEditableRange !== e.isInEditableRange
        && (this._primaryCursorIsInEditableRange = e.isInEditableRange, t = !0);
        var n = e.selections[0].positionLineNumber;
        this._primaryCursorLineNumber !== n
        && (this._primaryCursorLineNumber = n, t = !0);
        var i = e.selections[0].isEmpty();
        return this._selectionIsEmpty !== i
            ? (this._selectionIsEmpty = i, t = !0, !0) : t
      }, t.prototype.onFlushed = function (e) {
        return !0
      }, t.prototype.onLinesDeleted = function (e) {
        return !0
      }, t.prototype.onLinesInserted = function (e) {
        return !0
      }, t.prototype.onScrollChanged = function (e) {
        return e.scrollWidthChanged
      }, t.prototype.onZonesChanged = function (e) {
        return !0
      }, t.prototype.prepareRender = function (e) {
        this._scrollWidth = e.scrollWidth
      }, t.prototype.render = function (e, t) {
        return t === this._primaryCursorLineNumber
        && this._shouldShowCurrentLine()
            ? '<div class="current-line" style="width:' + String(
                Math.max(this._scrollWidth, this._contentWidth)) + "px; height:"
            + String(this._lineHeight) + 'px;"></div>' : ""
      }, t.prototype._shouldShowCurrentLine = function () {
        return ("line" === this._renderLineHighlight || "all"
                === this._renderLineHighlight) && this._selectionIsEmpty
            && this._primaryCursorIsInEditableRange
      }, t
    }(n.DynamicViewOverlay);
    t.CurrentLineHighlightOverlay = r, i.registerThemingParticipant(
        function (e, t) {
          var n = e.getColor(o.editorLineHighlight);
          if (n && t.addRule(
              ".monaco-editor .view-overlays .current-line { background-color: "
              + n + "; }"), !n || n.isTransparent() || e.defines(
              o.editorLineHighlightBorder)) {
            var i = e.getColor(o.editorLineHighlightBorder);
            i && (t.addRule(
                ".monaco-editor .view-overlays .current-line { border: 2px solid "
                + i + "; }"), "hc" === e.type && t.addRule(
                ".monaco-editor .view-overlays .current-line { border-width: 1px; }"))
          }
        })
  }),define(d[498], h([1, 0, 67, 14, 37, 277]), function (e, t, n, i, o) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var r = function (e) {
      function t(t) {
        var n = e.call(this) || this;
        return n._context = t, n._lineHeight = n._context.configuration.editor.lineHeight, n._renderLineHighlight = n._context.configuration.editor.viewInfo.renderLineHighlight, n._primaryCursorIsInEditableRange = !0, n._primaryCursorLineNumber = 1, n._contentLeft = n._context.configuration.editor.layoutInfo.contentLeft, n._context.addEventHandler(
            n), n
      }

      return f(t, e), t.prototype.dispose = function () {
        this._context.removeEventHandler(
            this), this._context = null, e.prototype.dispose.call(this)
      }, t.prototype.onConfigurationChanged = function (e) {
        return e.lineHeight
        && (this._lineHeight = this._context.configuration.editor.lineHeight), e.viewInfo
        && (this._renderLineHighlight = this._context.configuration.editor.viewInfo.renderLineHighlight), e.layoutInfo
        && (this._contentLeft = this._context.configuration.editor.layoutInfo.contentLeft), !0
      }, t.prototype.onCursorStateChanged = function (e) {
        var t = !1;
        this._primaryCursorIsInEditableRange !== e.isInEditableRange
        && (this._primaryCursorIsInEditableRange = e.isInEditableRange, t = !0);
        var n = e.selections[0].positionLineNumber;
        return this._primaryCursorLineNumber !== n
        && (this._primaryCursorLineNumber = n, t = !0), t
      }, t.prototype.onFlushed = function (e) {
        return !0
      }, t.prototype.onLinesDeleted = function (e) {
        return !0
      }, t.prototype.onLinesInserted = function (e) {
        return !0
      }, t.prototype.onZonesChanged = function (e) {
        return !0
      }, t.prototype.prepareRender = function (e) {
      }, t.prototype.render = function (e, t) {
        return t === this._primaryCursorLineNumber
        && this._shouldShowCurrentLine()
            ? '<div class="current-line-margin" style="width:' + String(
                this._contentLeft) + "px; height:" + String(this._lineHeight)
            + 'px;"></div>' : ""
      }, t.prototype._shouldShowCurrentLine = function () {
        return ("gutter" === this._renderLineHighlight || "all"
                === this._renderLineHighlight)
            && this._primaryCursorIsInEditableRange
      }, t
    }(n.DynamicViewOverlay);
    t.CurrentLineMarginHighlightOverlay = r, i.registerThemingParticipant(
        function (e, t) {
          var n = e.getColor(o.editorLineHighlight);
          if (n) {
            t.addRule(
                ".monaco-editor .margin-view-overlays .current-line-margin { background-color: "
                + n + "; border: none; }");
          } else {
            var i = e.getColor(o.editorLineHighlightBorder);
            i && t.addRule(
                ".monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid "
                + i + "; }"), "hc" === e.type && t.addRule(
                ".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }")
          }
        })
  }),define(d[499], h([1, 0, 67, 14, 37, 4, 12, 280]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n._context = t, n._lineHeight = n._context.configuration.editor.lineHeight, n._spaceWidth = n._context.configuration.editor.fontInfo.spaceWidth, n._enabled = n._context.configuration.editor.viewInfo.renderIndentGuides, n._renderResult = null, n._context.addEventHandler(
                n), n
          }

          return f(t, e), t.prototype.dispose = function () {
            this._context.removeEventHandler(
                this), this._context = null, this._renderResult = null, e.prototype.dispose.call(
                this)
          }, t.prototype.onConfigurationChanged = function (e) {
            return e.lineHeight
            && (this._lineHeight = this._context.configuration.editor.lineHeight), e.fontInfo
            && (this._spaceWidth = this._context.configuration.editor.fontInfo.spaceWidth), e.viewInfo
            && (this._enabled = this._context.configuration.editor.viewInfo.renderIndentGuides), !0
          }, t.prototype.onDecorationsChanged = function (e) {
            return !0
          }, t.prototype.onFlushed = function (e) {
            return !0
          }, t.prototype.onLinesChanged = function (e) {
            return !0
          }, t.prototype.onLinesDeleted = function (e) {
            return !0
          }, t.prototype.onLinesInserted = function (e) {
            return !0
          }, t.prototype.onScrollChanged = function (e) {
            return e.scrollTopChanged
          }, t.prototype.onZonesChanged = function (e) {
            return !0
          }, t.prototype.prepareRender = function (e) {
            if (this._enabled) {
              for (var t = e.visibleRange.startLineNumber,
                  n = e.visibleRange.endLineNumber,
                  i = this._context.model.getTabSize() * this._spaceWidth,
                  o = this._lineHeight, a = r.computeScreenAwareSize(1), u = [],
                  l = t; l <= n; l++) {
                for (var c = l - t,
                    d = this._context.model.getLineIndentGuide(l), h = "",
                    p = e.visibleRangeForPosition(new s.Position(l, 1)),
                    f = p ? p.left : 0, g = 0; g < d;
                    g++) {
                  h += '<div class="cigr" style="left:' + f
                      + "px;height:" + o + "px;width:" + a
                      + 'px"></div>', f += i;
                }
                u[c] = h
              }
              this._renderResult = u
            } else {
              this._renderResult = null
            }
          }, t.prototype.render = function (e, t) {
            if (!this._renderResult) {
              return "";
            }
            var n = t - e;
            if (n < 0 || n >= this._renderResult.length) {
              throw new Error(
                  "Unexpected render request");
            }
            return this._renderResult[n]
          }, t
        }(n.DynamicViewOverlay);
        t.IndentGuidesOverlay = a, i.registerThemingParticipant(
            function (e, t) {
              var n = e.getColor(o.editorIndentGuides);
              n && t.addRule(
                  ".monaco-editor .lines-content .cigr { background-color: " + n
                  + "; }")
            })
      }),define(d[188], h([1, 0, 37, 14, 15, 67, 12, 283]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n._context = t, n._readConfig(), n._lastCursorModelPosition = new s.Position(
                1, 1), n._renderResult = null, n._context.addEventHandler(n), n
          }

          return f(t, e), t.prototype._readConfig = function () {
            var e = this._context.configuration.editor;
            this._lineHeight = e.lineHeight, this._renderLineNumbers = e.viewInfo.renderLineNumbers, this._renderCustomLineNumbers = e.viewInfo.renderCustomLineNumbers, this._renderRelativeLineNumbers = e.viewInfo.renderRelativeLineNumbers, this._lineNumbersLeft = e.layoutInfo.lineNumbersLeft, this._lineNumbersWidth = e.layoutInfo.lineNumbersWidth
          }, t.prototype.dispose = function () {
            this._context.removeEventHandler(
                this), this._context = null, this._renderResult = null, e.prototype.dispose.call(
                this)
          }, t.prototype.onConfigurationChanged = function (e) {
            return this._readConfig(), !0
          }, t.prototype.onCursorStateChanged = function (e) {
            var t = e.selections[0].getPosition();
            return this._lastCursorModelPosition = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(
                t), !!this._renderRelativeLineNumbers
          }, t.prototype.onFlushed = function (e) {
            return !0
          }, t.prototype.onLinesChanged = function (e) {
            return !0
          }, t.prototype.onLinesDeleted = function (e) {
            return !0
          }, t.prototype.onLinesInserted = function (e) {
            return !0
          }, t.prototype.onScrollChanged = function (e) {
            return e.scrollTopChanged
          }, t.prototype.onZonesChanged = function (e) {
            return !0
          }, t.prototype._getLineRenderLineNumber = function (e) {
            var t = this._context.model.coordinatesConverter.convertViewPositionToModelPosition(
                new s.Position(e, 1));
            if (1 !== t.column) {
              return "";
            }
            var n = t.lineNumber;
            if (this._renderCustomLineNumbers) {
              return this._renderCustomLineNumbers(
                  n);
            }
            if (this._renderRelativeLineNumbers) {
              var i = Math.abs(this._lastCursorModelPosition.lineNumber - n);
              return 0 === i ? '<span class="relative-current-line-number">' + n
                  + "</span>" : String(i)
            }
            return String(n)
          }, t.prototype.prepareRender = function (e) {
            if (this._renderLineNumbers) {
              for (var n = o.isLinux ? this._lineHeight % 2 == 0 ? " lh-even"
                      : " lh-odd" : "", i = e.visibleRange.startLineNumber,
                  r = e.visibleRange.endLineNumber,
                  s = '<div class="' + t.CLASS_NAME + n + '" style="left:'
                      + this._lineNumbersLeft.toString() + "px;width:"
                      + this._lineNumbersWidth.toString() + 'px;">', a = [],
                  u = i; u <= r; u++) {
                var l = u - i, c = this._getLineRenderLineNumber(u);
                a[l] = c ? s + c + "</div>" : ""
              }
              this._renderResult = a
            } else {
              this._renderResult = null
            }
          }, t.prototype.render = function (e, t) {
            if (!this._renderResult) {
              return "";
            }
            var n = t - e;
            if (n < 0 || n >= this._renderResult.length) {
              throw new Error(
                  "Unexpected render request");
            }
            return this._renderResult[n]
          }, t.CLASS_NAME = "line-numbers", t
        }(r.DynamicViewOverlay);
        t.LineNumbersOverlay = a, i.registerThemingParticipant(function (e, t) {
          var i = e.getColor(n.editorLineNumbers);
          i && t.addRule(".monaco-editor .line-numbers { color: " + i + "; }")
        })
      }),define(d[501],
      h([1, 0, 15, 28, 154, 151, 2, 22, 12, 66, 57, 27, 35, 182, 188, 270]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g) {
        "use strict";

        function m(e, t) {
          var n = document.createElement("canvas").getContext("2d");
          n.font = v(t);
          var o = n.measureText(e);
          return i.isFirefox ? o.width + 2 : o.width
        }

        function v(e) {
          return _("normal", e.fontWeight, e.fontSize, e.lineHeight,
              e.fontFamily)
        }

        function _(e, t, n, i, o) {
          return e + " normal " + t + " " + n + "px / " + i + "px " + o
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var y = function () {
          function e(e, t, n) {
            this.top = e, this.left = t, this.width = n
          }

          return e.prototype.setWidth = function (t) {
            return new e(this.top, this.left, t)
          }, e
        }(), C = i.isEdgeOrIE || i.isFirefox, b = function (e) {
          function t(t, n, u) {
            var l = e.call(this, t) || this;
            l._primaryCursorVisibleRange = null, l._viewController = n, l._viewHelper = u;
            var p = l._context.configuration.editor;
            l._pixelRatio = p.pixelRatio, l._accessibilitySupport = p.accessibilitySupport, l._contentLeft = p.layoutInfo.contentLeft, l._contentWidth = p.layoutInfo.contentWidth, l._contentHeight = p.layoutInfo.contentHeight, l._scrollLeft = 0, l._scrollTop = 0, l._fontInfo = p.fontInfo, l._lineHeight = p.lineHeight, l._emptySelectionClipboard = p.emptySelectionClipboard, l._visibleTextArea = null, l._selections = [new a.Selection(
                1, 1, 1,
                1)], l._lastCopiedValue = null, l._lastCopiedValueIsFromEmptySelection = !1, l.textArea = d.createFastDomNode(
                document.createElement("textarea")), h.PartFingerprints.write(
                l.textArea, 6), l.textArea.setClassName(
                "inputarea"), l.textArea.setAttribute("wrap",
                "off"), l.textArea.setAttribute("autocorrect",
                "off"), l.textArea.setAttribute("autocapitalize",
                "off"), l.textArea.setAttribute("autocomplete",
                "off"), l.textArea.setAttribute("spellcheck",
                "false"), l.textArea.setAttribute("aria-label",
                p.viewInfo.ariaLabel), l.textArea.setAttribute("role",
                "textbox"), l.textArea.setAttribute("aria-multiline",
                "true"), l.textArea.setAttribute("aria-haspopup",
                "false"), l.textArea.setAttribute("aria-autocomplete",
                "both"), l.textAreaCover = d.createFastDomNode(
                document.createElement("div")), l.textAreaCover.setPosition(
                "absolute");
            var f = {
              getLineCount: function () {
                return l._context.model.getLineCount()
              }, getLineMaxColumn: function (e) {
                return l._context.model.getLineMaxColumn(e)
              }, getValueInRange: function (e, t) {
                return l._context.model.getValueInRange(e, t)
              }
            }, g = {
              getPlainTextToCopy: function () {
                var e = l._context.model.getPlainTextToCopy(l._selections,
                    l._emptySelectionClipboard);
                if (l._emptySelectionClipboard) {
                  i.isFirefox ? l._lastCopiedValue = e.replace(/\r\n/g, "\n")
                      : l._lastCopiedValue = e;
                  var t = l._selections;
                  l._lastCopiedValueIsFromEmptySelection = 1 === t.length
                      && t[0].isEmpty()
                }
                return e
              }, getHTMLToCopy: function () {
                return l._context.model.getHTMLToCopy(l._selections,
                    l._emptySelectionClipboard)
              }, getScreenReaderContent: function (e) {
                return i.isIPad ? r.TextAreaState.EMPTY : 1
                === l._accessibilitySupport ? r.TextAreaState.EMPTY
                    : r.PagedScreenReaderStrategy.fromEditorSelection(e, f,
                        l._selections[0])
              }
            };
            return l._textAreaInput = l._register(
                new o.TextAreaInput(g, l.textArea)), l._register(
                l._textAreaInput.onKeyDown(function (e) {
                  l._viewController.emitKeyDown(e)
                })), l._register(l._textAreaInput.onKeyUp(function (e) {
              l._viewController.emitKeyUp(e)
            })), l._register(l._textAreaInput.onPaste(function (e) {
              var t = !1;
              l._emptySelectionClipboard && (t = e.text === l._lastCopiedValue
                  && l._lastCopiedValueIsFromEmptySelection), l._viewController.paste(
                  "keyboard", e.text, t)
            })), l._register(l._textAreaInput.onCut(function () {
              l._viewController.cut("keyboard")
            })), l._register(l._textAreaInput.onType(function (e) {
              e.replaceCharCnt ? l._viewController.replacePreviousChar(
                      "keyboard", e.text, e.replaceCharCnt)
                  : l._viewController.type("keyboard", e.text)
            })), l._register(l._textAreaInput.onCompositionStart(function () {
              var e = l._selections[0].startLineNumber,
                  t = l._selections[0].startColumn;
              l._context.privateViewEventBus.emit(
                  new c.ViewRevealRangeRequestEvent(new s.Range(e, t, e, t), 0,
                      !0));
              var n = l._viewHelper.visibleRangeForPositionRelativeToEditor(e,
                  t);
              n && (l._visibleTextArea = new y(
                  l._context.viewLayout.getVerticalOffsetForLineNumber(e),
                  n.left, C ? 0 : 1), l._render()), l.textArea.setClassName(
                  "inputarea ime-input"), l._viewController.compositionStart(
                  "keyboard")
            })), l._register(l._textAreaInput.onCompositionUpdate(function (e) {
              i.isEdgeOrIE ? l._visibleTextArea = l._visibleTextArea.setWidth(0)
                  : l._visibleTextArea = l._visibleTextArea.setWidth(
                      m(e.data, l._fontInfo)), l._render()
            })), l._register(l._textAreaInput.onCompositionEnd(function () {
              l._visibleTextArea = null, l._render(), l.textArea.setClassName(
                  "inputarea"), l._viewController.compositionEnd("keyboard")
            })), l._register(l._textAreaInput.onFocus(function () {
              l._context.privateViewEventBus.emit(
                  new c.ViewFocusChangedEvent(!0))
            })), l._register(l._textAreaInput.onBlur(function () {
              l._context.privateViewEventBus.emit(
                  new c.ViewFocusChangedEvent(!1))
            })), l
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.prototype.onConfigurationChanged = function (e) {
            var t = this._context.configuration.editor;
            return e.fontInfo && (this._fontInfo = t.fontInfo), e.viewInfo
            && this.textArea.setAttribute("aria-label",
                t.viewInfo.ariaLabel), e.layoutInfo
            && (this._contentLeft = t.layoutInfo.contentLeft, this._contentWidth = t.layoutInfo.contentWidth, this._contentHeight = t.layoutInfo.contentHeight), e.lineHeight
            && (this._lineHeight = t.lineHeight), e.pixelRatio
            && (this._pixelRatio = t.pixelRatio), e.accessibilitySupport
            && (this._accessibilitySupport = t.accessibilitySupport, this._textAreaInput.writeScreenReaderContent(
                "strategy changed")), e.emptySelectionClipboard
            && (this._emptySelectionClipboard = t.emptySelectionClipboard), !0
          }, t.prototype.onCursorStateChanged = function (e) {
            return this._selections = e.selections.slice(
                0), this._textAreaInput.writeScreenReaderContent(
                "selection changed"), !0
          }, t.prototype.onDecorationsChanged = function (e) {
            return !0
          }, t.prototype.onFlushed = function (e) {
            return !0
          }, t.prototype.onLinesChanged = function (e) {
            return !0
          }, t.prototype.onLinesDeleted = function (e) {
            return !0
          }, t.prototype.onLinesInserted = function (e) {
            return !0
          }, t.prototype.onScrollChanged = function (e) {
            return this._scrollLeft = e.scrollLeft, this._scrollTop = e.scrollTop, !0
          }, t.prototype.onZonesChanged = function (e) {
            return !0
          }, t.prototype.isFocused = function () {
            return this._textAreaInput.isFocused()
          }, t.prototype.focusTextArea = function () {
            this._textAreaInput.focusTextArea()
          }, t.prototype.setAriaActiveDescendant = function (e) {
            e ? (this.textArea.setAttribute("role",
                "combobox"), this.textArea.getAttribute("aria-activedescendant")
            !== e && (this.textArea.setAttribute("aria-haspopup",
                "true"), this.textArea.setAttribute("aria-activedescendant",
                e))) : (this.textArea.setAttribute("role",
                "textbox"), this.textArea.removeAttribute(
                "aria-activedescendant"), this.textArea.removeAttribute(
                "aria-haspopup"))
          }, t.prototype.prepareRender = function (e) {
            if (2
                === this._accessibilitySupport) {
              this._primaryCursorVisibleRange = null;
            } else {
              var t = new u.Position(this._selections[0].positionLineNumber,
                  this._selections[0].positionColumn);
              this._primaryCursorVisibleRange = e.visibleRangeForPosition(t)
            }
          }, t.prototype.render = function (e) {
            this._textAreaInput.writeScreenReaderContent(
                "render"), this._render()
          }, t.prototype._render = function () {
            if (this._visibleTextArea) {
              this._renderInsideEditor(
                  this._visibleTextArea.top - this._scrollTop,
                  this._contentLeft + this._visibleTextArea.left
                  - this._scrollLeft, this._visibleTextArea.width,
                  this._lineHeight,
                  !0);
            } else if (this._primaryCursorVisibleRange) {
              var e = this._contentLeft + this._primaryCursorVisibleRange.left
                  - this._scrollLeft;
              if (e < this._contentLeft || e > this._contentLeft
                  + this._contentWidth) {
                this._renderAtTopLeft();
              } else {
                var t = this._context.viewLayout.getVerticalOffsetForLineNumber(
                    this._selections[0].positionLineNumber) - this._scrollTop;
                t < 0 || t > this._contentHeight ? this._renderAtTopLeft()
                    : this._renderInsideEditor(t, e, C ? 0 : 1, C ? 0 : 1, !1)
              }
            } else {
              this._renderAtTopLeft()
            }
          }, t.prototype._renderInsideEditor = function (e, t, n, i, o) {
            var r = this.textArea, s = this.textAreaCover;
            o ? l.Configuration.applyFontInfo(r, this._fontInfo)
                : (r.setFontSize(1), r.setLineHeight(
                    this._fontInfo.lineHeight)), r.setTop(e), r.setLeft(
                t), r.setWidth(n), r.setHeight(i), s.setTop(0), s.setLeft(
                0), s.setWidth(0), s.setHeight(0)
          }, t.prototype._renderAtTopLeft = function () {
            var e = this.textArea, t = this.textAreaCover;
            if (l.Configuration.applyFontInfo(e, this._fontInfo), e.setTop(
                0), e.setLeft(0), t.setTop(0), t.setLeft(
                0), C) {
              return e.setWidth(0), e.setHeight(0), t.setWidth(
                  0), void t.setHeight(0);
            }
            e.setWidth(1), e.setHeight(1), t.setWidth(1), t.setHeight(
                1), this._context.configuration.editor.viewInfo.glyphMargin
                ? t.setClassName("monaco-editor-background textAreaCover "
                    + p.Margin.CLASS_NAME)
                : this._context.configuration.editor.viewInfo.renderLineNumbers
                    ? t.setClassName("monaco-editor-background textAreaCover "
                        + g.LineNumbersOverlay.CLASS_NAME) : t.setClassName(
                        "monaco-editor-background textAreaCover")
          }, t
        }(h.ViewPart);
        t.TextAreaHandler = b
      }),define(d[502], h([1, 0, 27, 35, 14, 37, 4, 299]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function (e) {
          function t(t) {
            var i = e.call(this, t) || this;
            return i.domNode = n.createFastDomNode(
                document.createElement("div")), i.domNode.setAttribute("role",
                "presentation"), i.domNode.setAttribute("aria-hidden",
                "true"), i.domNode.setClassName(
                "view-rulers"), i._renderedRulers = [], i._rulers = i._context.configuration.editor.viewInfo.rulers, i._height = i._context.configuration.editor.layoutInfo.contentHeight, i._typicalHalfwidthCharacterWidth = i._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth, i
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.prototype.onConfigurationChanged = function (e) {
            return !!(e.viewInfo || e.layoutInfo || e.fontInfo)
                && (this._rulers = this._context.configuration.editor.viewInfo.rulers, this._height = this._context.configuration.editor.layoutInfo.contentHeight, this._typicalHalfwidthCharacterWidth = this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth, !0)
          }, t.prototype.onScrollChanged = function (e) {
            return e.scrollHeightChanged
          }, t.prototype.prepareRender = function (e) {
          }, t.prototype._ensureRulersCount = function () {
            var e = this._renderedRulers.length, t = this._rulers.length;
            if (e !== t) {
              if (e < t) {
                for (var i = s.computeScreenAwareSize(1),
                    o = t - e; o > 0;) {
                  (a = n.createFastDomNode(
                      document.createElement("div"))).setClassName(
                      "view-ruler"), a.setWidth(i), this.domNode.appendChild(
                      a), this._renderedRulers.push(a), o--;
                }
              } else {
                for (var r = e - t;
                    r > 0;) {
                  var a = this._renderedRulers.pop();
                  this.domNode.removeChild(a), r--
                }
              }
            }
          }, t.prototype.render = function (e) {
            this._ensureRulersCount();
            for (var t = 0, n = this._rulers.length; t < n; t++) {
              var i = this._renderedRulers[t];
              i.setHeight(Math.min(e.scrollHeight, 1e6)), i.setLeft(
                  this._rulers[t] * this._typicalHalfwidthCharacterWidth)
            }
          }, t
        }(i.ViewPart);
        t.Rulers = a, o.registerThemingParticipant(function (e, t) {
          var n = e.getColor(r.editorRuler);
          n && t.addRule(
              ".monaco-editor .view-ruler { background-color: " + n + "; }")
        })
      }),define(d[503], h([1, 0, 35, 444, 27, 18, 14, 37, 49, 307]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function (e) {
          function t(t) {
            var n = e.call(this, t) || this;
            return n._readOnly = n._context.configuration.editor.readOnly, n._cursorBlinking = n._context.configuration.editor.viewInfo.cursorBlinking, n._cursorStyle = n._context.configuration.editor.viewInfo.cursorStyle, n._selectionIsEmpty = !0, n._primaryCursor = new i.ViewCursor(
                n._context,
                !1), n._secondaryCursors = [], n._renderData = [], n._domNode = o.createFastDomNode(
                document.createElement("div")), n._domNode.setAttribute("role",
                "presentation"), n._domNode.setAttribute("aria-hidden",
                "true"), n._updateDomClassName(), n._domNode.appendChild(
                n._primaryCursor.getDomNode()), n._startCursorBlinkAnimation = new r.TimeoutTimer, n._cursorFlatBlinkInterval = new r.IntervalTimer, n._blinkingEnabled = !1, n._editorHasFocus = !1, n._updateBlinking(), n
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(
                this), this._startCursorBlinkAnimation.dispose(), this._cursorFlatBlinkInterval.dispose()
          }, t.prototype.getDomNode = function () {
            return this._domNode
          }, t.prototype.onConfigurationChanged = function (e) {
            e.readOnly
            && (this._readOnly = this._context.configuration.editor.readOnly), e.viewInfo
            && (this._cursorBlinking = this._context.configuration.editor.viewInfo.cursorBlinking, this._cursorStyle = this._context.configuration.editor.viewInfo.cursorStyle), this._primaryCursor.onConfigurationChanged(
                e), this._updateBlinking(), e.viewInfo
            && this._updateDomClassName();
            for (var t = 0, n = this._secondaryCursors.length; t < n;
                t++) {
              this._secondaryCursors[t].onConfigurationChanged(e);
            }
            return !0
          }, t.prototype._onCursorPositionChanged = function (e, t, n) {
            if (this._primaryCursor.onCursorPositionChanged(e,
                n), this._updateBlinking(), this._secondaryCursors.length
            < t.length) {
              for (var o = t.length - this._secondaryCursors.length,
                  r = 0; r < o; r++) {
                var s = new i.ViewCursor(this._context, !0);
                this._domNode.domNode.insertBefore(s.getDomNode().domNode,
                    this._primaryCursor.getDomNode().domNode.nextSibling), this._secondaryCursors.push(
                    s)
              }
            } else if (this._secondaryCursors.length
                > t.length) {
              for (var a = this._secondaryCursors.length
                  - t.length, r = 0; r < a; r++) {
                this._domNode.removeChild(
                    this._secondaryCursors[0].getDomNode()), this._secondaryCursors.splice(
                    0, 1);
              }
            }
            for (r = 0; r < t.length;
                r++) {
              this._secondaryCursors[r].onCursorPositionChanged(t[r], n)
            }
          }, t.prototype.onCursorStateChanged = function (e) {
            for (var t = [], n = 0, i = e.selections.length; n < i;
                n++) {
              t[n] = e.selections[n].getPosition();
            }
            this._onCursorPositionChanged(t[0], t.slice(1),
                e.isInEditableRange);
            var o = e.selections[0].isEmpty();
            return this._selectionIsEmpty !== o
            && (this._selectionIsEmpty = o, this._updateDomClassName()), !0
          }, t.prototype.onDecorationsChanged = function (e) {
            return !0
          }, t.prototype.onFlushed = function (e) {
            return !0
          }, t.prototype.onFocusChanged = function (e) {
            return this._editorHasFocus = e.isFocused, this._updateBlinking(), !1
          }, t.prototype.onLinesChanged = function (e) {
            return !0
          }, t.prototype.onLinesDeleted = function (e) {
            return !0
          }, t.prototype.onLinesInserted = function (e) {
            return !0
          }, t.prototype.onScrollChanged = function (e) {
            return !0
          }, t.prototype.onTokensChanged = function (e) {
            var t = function (t) {
              for (var n = 0, i = e.ranges.length; n < i;
                  n++) {
                if (e.ranges[n].fromLineNumber <= t.lineNumber
                    && t.lineNumber <= e.ranges[n].toLineNumber) {
                  return !0;
                }
              }
              return !1
            };
            if (t(this._primaryCursor.getPosition())) {
              return !0;
            }
            for (var n = 0; n < this._secondaryCursors.length; n++) {
              if (t(
                  this._secondaryCursors[n].getPosition())) {
                return !0;
              }
            }
            return !1
          }, t.prototype.onZonesChanged = function (e) {
            return !0
          }, t.prototype.getPosition = function () {
            return this._primaryCursor.getPosition()
          }, t.prototype._getCursorBlinking = function () {
            return this._editorHasFocus ? this._readOnly
                || !this._primaryCursor.getIsInEditableRange()
                    ? u.TextEditorCursorBlinkingStyle.Solid : this._cursorBlinking
                : u.TextEditorCursorBlinkingStyle.Hidden
          }, t.prototype._updateBlinking = function () {
            var e = this;
            this._startCursorBlinkAnimation.cancel(), this._cursorFlatBlinkInterval.cancel();
            var n = this._getCursorBlinking(),
                i = n === u.TextEditorCursorBlinkingStyle.Hidden,
                o = n === u.TextEditorCursorBlinkingStyle.Solid;
            i ? this._hide()
                : this._show(), this._blinkingEnabled = !1, this._updateDomClassName(), i
            || o || (n === u.TextEditorCursorBlinkingStyle.Blink
                ? this._cursorFlatBlinkInterval.cancelAndSet(function () {
                  e._isVisible ? e._hide() : e._show()
                }, t.BLINK_INTERVAL)
                : this._startCursorBlinkAnimation.setIfNotSet(function () {
                  e._blinkingEnabled = !0, e._updateDomClassName()
                }, t.BLINK_INTERVAL))
          }, t.prototype._updateDomClassName = function () {
            this._domNode.setClassName(this._getClassName())
          }, t.prototype._getClassName = function () {
            var e = "cursors-layer";
            switch (this._selectionIsEmpty
            || (e += " has-selection"), this._cursorStyle) {
              case u.TextEditorCursorStyle.Line:
                e += " cursor-line-style";
                break;
              case u.TextEditorCursorStyle.Block:
                e += " cursor-block-style";
                break;
              case u.TextEditorCursorStyle.Underline:
                e += " cursor-underline-style";
                break;
              case u.TextEditorCursorStyle.LineThin:
                e += " cursor-line-thin-style";
                break;
              case u.TextEditorCursorStyle.BlockOutline:
                e += " cursor-block-outline-style";
                break;
              case u.TextEditorCursorStyle.UnderlineThin:
                e += " cursor-underline-thin-style";
                break;
              default:
                e += " cursor-line-style"
            }
            if (this._blinkingEnabled) {
              switch (this._getCursorBlinking()) {
                case u.TextEditorCursorBlinkingStyle.Blink:
                  e += " cursor-blink";
                  break;
                case u.TextEditorCursorBlinkingStyle.Smooth:
                  e += " cursor-smooth";
                  break;
                case u.TextEditorCursorBlinkingStyle.Phase:
                  e += " cursor-phase";
                  break;
                case u.TextEditorCursorBlinkingStyle.Expand:
                  e += " cursor-expand";
                  break;
                case u.TextEditorCursorBlinkingStyle.Solid:
                  e += " cursor-solid";
                  break;
                default:
                  e += " cursor-solid"
              }
            } else {
              e += " cursor-solid";
            }
            return e
          }, t.prototype._show = function () {
            this._primaryCursor.show();
            for (var e = 0, t = this._secondaryCursors.length; e < t;
                e++) {
              this._secondaryCursors[e].show();
            }
            this._isVisible = !0
          }, t.prototype._hide = function () {
            this._primaryCursor.hide();
            for (var e = 0, t = this._secondaryCursors.length; e < t;
                e++) {
              this._secondaryCursors[e].hide();
            }
            this._isVisible = !1
          }, t.prototype.prepareRender = function (e) {
            this._primaryCursor.prepareRender(e);
            for (var t = 0, n = this._secondaryCursors.length; t < n;
                t++) {
              this._secondaryCursors[t].prepareRender(e)
            }
          }, t.prototype.render = function (e) {
            this._renderData = [], this._renderData.push(
                this._primaryCursor.render(e));
            for (var t = 0, n = this._secondaryCursors.length; t < n;
                t++) {
              this._renderData.push(this._secondaryCursors[t].render(e));
            }
            this._renderData = this._renderData.filter(function (e) {
              return !!e
            })
          }, t.prototype.getLastRenderData = function () {
            return this._renderData
          }, t.BLINK_INTERVAL = 500, t
        }(n.ViewPart);
        t.ViewCursors = l, s.registerThemingParticipant(function (e, t) {
          var n = e.getColor(a.editorCursorForeground);
          if (n) {
            var i = e.getColor(a.editorCursorBackground);
            i || (i = n.opposite()), t.addRule(
                ".monaco-editor .cursor { background-color: " + n
                + "; border-color: " + n + "; color: " + i + "; }"), "hc"
            === e.type && t.addRule(
                ".monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid "
                + i + "; border-right: 1px solid " + i + "; }")
          }
        })
      }),define(d[504],
      h([1, 0, 303, 3, 4, 27, 106, 90, 66, 12, 14, 23, 63, 37, 75, 53, 13, 19,
        42, 309]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, y, C) {
        "use strict";

        function b(e) {
          for (var t = e.get(C.ICodeEditorService).listDiffEditors(), n = 0,
              i = t.length; n < i; n++) {
            var o = t[n];
            if (o.hasWidgetFocus()) {
              return o
            }
          }
          return null
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var w;
        !function (e) {
          e[e.Equal = 0] = "Equal", e[e.Insert = 1] = "Insert", e[e.Delete = 2] = "Delete"
        }(w || (w = {}));
        var S = function () {
          function e(e, t, n, i) {
            this.originalLineStart = e, this.originalLineEnd = t, this.modifiedLineStart = n, this.modifiedLineEnd = i
          }

          return e.prototype.getType = function () {
            return 0 === this.originalLineStart ? 1 : 0
            === this.modifiedLineStart ? 2 : 0
          }, e
        }(), E = function () {
          return function (e) {
            this.entries = e
          }
        }(), L = function (e) {
          function t(t) {
            var i = e.call(this) || this;
            return i._width = 0, i._diffEditor = t, i._isVisible = !1, i.shadow = r.createFastDomNode(
                document.createElement("div")), i.shadow.setClassName(
                "diff-review-shadow"), i.actionBarContainer = r.createFastDomNode(
                document.createElement(
                    "div")), i.actionBarContainer.setClassName(
                "diff-review-actions"), i._actionBar = i._register(
                new g.ActionBar(
                    i.actionBarContainer.domNode)), i._actionBar.push(
                new m.Action("diffreview.close", n.localize(0, null),
                    "close-diff-review", !0, function () {
                      return i.hide(), null
                    }), {label: !1, icon: !0}), i.domNode = r.createFastDomNode(
                document.createElement("div")), i.domNode.setClassName(
                "diff-review monaco-editor-background"), i._content = r.createFastDomNode(
                document.createElement("div")), i._content.setClassName(
                "diff-review-content"), i.scrollbar = i._register(
                new h.DomScrollableElement(i._content.domNode,
                    {})), i.domNode.domNode.appendChild(
                i.scrollbar.getDomNode()), i._register(
                t.onDidUpdateDiff(function () {
                  i._isVisible && (i._diffs = i._compute(), i._render())
                })), i._register(
                t.getModifiedEditor().onDidChangeCursorPosition(function () {
                  i._isVisible && i._render()
                })), i._register(
                t.getOriginalEditor().onDidFocusEditor(function () {
                  i._isVisible && i.hide()
                })), i._register(
                t.getModifiedEditor().onDidFocusEditor(function () {
                  i._isVisible && i.hide()
                })), i._register(
                o.addStandardDisposableListener(i.domNode.domNode, "click",
                    function (e) {
                      e.preventDefault();
                      var t = o.findParentWithClass(e.target,
                          "diff-review-row");
                      t && i._goToRow(t)
                    })), i._register(
                o.addStandardDisposableListener(i.domNode.domNode, "keydown",
                    function (e) {
                      (e.equals(18) || e.equals(2066) || e.equals(530))
                      && (e.preventDefault(), i._goToRow(
                          i._getNextRow())), (e.equals(16) || e.equals(2064)
                          || e.equals(528)) && (e.preventDefault(), i._goToRow(
                          i._getPrevRow())), (e.equals(9) || e.equals(2057)
                          || e.equals(521) || e.equals(1033))
                      && (e.preventDefault(), i.hide()), (e.equals(10)
                          || e.equals(3)) && (e.preventDefault(), i.accept())
                    })), i._diffs = [], i._currentDiff = null, i
          }

          return f(t, e), t.prototype.prev = function () {
            var e = 0;
            if (this._isVisible
            || (this._diffs = this._compute()), this._isVisible) {
              for (var t = -1, n = 0, i = this._diffs.length; n < i;
                  n++) {
                if (this._diffs[n] === this._currentDiff) {
                  t = n;
                  break
                }
              }
              e = this._diffs.length + t - 1
            } else {
              e = this._findDiffIndex(this._diffEditor.getPosition());
            }
            0 !== this._diffs.length
            && (e %= this._diffs.length, this._diffEditor.setPosition(
                new l.Position(this._diffs[e].entries[0].modifiedLineStart,
                    1)), this._isVisible = !0, this._diffEditor.doLayout(), this._render(), this._goToRow(
                this._getNextRow()))
          }, t.prototype.next = function () {
            var e = 0;
            if (this._isVisible
            || (this._diffs = this._compute()), this._isVisible) {
              for (var t = -1, n = 0, i = this._diffs.length; n < i;
                  n++) {
                if (this._diffs[n] === this._currentDiff) {
                  t = n;
                  break
                }
              }
              e = t + 1
            } else {
              e = this._findDiffIndex(this._diffEditor.getPosition());
            }
            0 !== this._diffs.length
            && (e %= this._diffs.length, this._diffEditor.setPosition(
                new l.Position(this._diffs[e].entries[0].modifiedLineStart,
                    1)), this._isVisible = !0, this._diffEditor.doLayout(), this._render(), this._goToRow(
                this._getNextRow()))
          }, t.prototype.accept = function () {
            var e = -1, t = this._getCurrentFocusedRow();
            if (t) {
              var n = parseInt(t.getAttribute("data-line"), 10);
              isNaN(n) || (e = n)
            }
            this.hide(), -1 !== e && (this._diffEditor.setPosition(
                new l.Position(e, 1)), this._diffEditor.revealPosition(
                new l.Position(e, 1)))
          }, t.prototype.hide = function () {
            this._isVisible = !1, this._diffEditor.focus(), this._diffEditor.doLayout(), this._render()
          }, t.prototype._getPrevRow = function () {
            var e = this._getCurrentFocusedRow();
            return e ? e.previousElementSibling ? e.previousElementSibling : e
                : this._getFirstRow()
          }, t.prototype._getNextRow = function () {
            var e = this._getCurrentFocusedRow();
            return e ? e.nextElementSibling ? e.nextElementSibling : e
                : this._getFirstRow()
          }, t.prototype._getFirstRow = function () {
            return this.domNode.domNode.querySelector(".diff-review-row")
          }, t.prototype._getCurrentFocusedRow = function () {
            var e = document.activeElement;
            return e && /diff-review-row/.test(e.className) ? e : null
          }, t.prototype._goToRow = function (e) {
            var t = this._getCurrentFocusedRow();
            e.tabIndex = 0, e.focus(), t && t !== e
            && (t.tabIndex = -1), this.scrollbar.scanDomNode()
          }, t.prototype.isVisible = function () {
            return this._isVisible
          }, t.prototype.layout = function (e, t, n) {
            this._width = t, this.shadow.setTop(e - 6), this.shadow.setWidth(
                t), this.shadow.setHeight(
                this._isVisible ? 6 : 0), this.domNode.setTop(
                e), this.domNode.setWidth(t), this.domNode.setHeight(
                n), this._content.setHeight(n), this._content.setWidth(
                t), this._isVisible ? (this.actionBarContainer.setAttribute(
                "aria-hidden", "false"), this.actionBarContainer.setDisplay(
                "block")) : (this.actionBarContainer.setAttribute("aria-hidden",
                "true"), this.actionBarContainer.setDisplay("none"))
          }, t.prototype._compute = function () {
            var e = this._diffEditor.getLineChanges();
            if (!e || 0 === e.length) {
              return [];
            }
            var n = this._diffEditor.getOriginalEditor().getModel(),
                i = this._diffEditor.getModifiedEditor().getModel();
            return n && i ? t._mergeAdjacent(e, n.getLineCount(),
                i.getLineCount()) : []
          }, t._mergeAdjacent = function (e, t, n) {
            if (!e || 0 === e.length) {
              return [];
            }
            for (var i = [], o = 0, r = 0, s = e.length; r < s; r++) {
              var a = e[r], u = a.originalStartLineNumber,
                  l = a.originalEndLineNumber, c = a.modifiedStartLineNumber,
                  d = a.modifiedEndLineNumber, h = [], p = 0,
                  f = 0 === l ? u : u - 1, g = 0 === d ? c : c - 1, m = 1,
                  v = 1;
              if (r > 0) {
                var _ = e[r - 1];
                m = 0 === _.originalEndLineNumber ? _.originalStartLineNumber
                    + 1 : _.originalEndLineNumber + 1, v = 0
                === _.modifiedEndLineNumber ? _.modifiedStartLineNumber + 1
                    : _.modifiedEndLineNumber + 1
              }
              var y = f - 3 + 1, C = g - 3 + 1;
              y < m && (y += k = m - y, C += k), C < v && (y += k = v
                  - C, C += k), h[p++] = new S(y, f, C, g), 0 !== l
              && (h[p++] = new S(u, l, 0, 0)), 0 !== d && (h[p++] = new S(0, 0,
                  c, d));
              var b = 0 === l ? u + 1 : l + 1, w = 0 === d ? c + 1 : d + 1,
                  L = t, x = n;
              if (r + 1 < s) {
                var N = e[r + 1];
                L = 0 === N.originalEndLineNumber ? N.originalStartLineNumber
                    : N.originalStartLineNumber - 1, x = 0
                === N.modifiedEndLineNumber ? N.modifiedStartLineNumber
                    : N.modifiedStartLineNumber - 1
              }
              var M = b + 3 - 1, T = w + 3 - 1;
              if (M > L && (M += k = L - M, T += k), T > x) {
                var k = x - T;
                M += k, T += k
              }
              h[p++] = new S(b, M, w, T), i[o++] = new E(h)
            }
            for (var I = i[0].entries, D = [], O = 0, r = 1, s = i.length;
                r < s; r++) {
              var R = i[r].entries, P = I[I.length - 1], A = R[0];
              0 === P.getType() && 0 === A.getType() && A.originalLineStart
              <= P.originalLineEnd ? (I[I.length - 1] = new S(
                      P.originalLineStart, A.originalLineEnd, P.modifiedLineStart,
                      A.modifiedLineEnd), I = I.concat(R.slice(1)))
                  : (D[O++] = new E(I), I = R)
            }
            return D[O++] = new E(I), D
          }, t.prototype._findDiffIndex = function (e) {
            for (var t = e.lineNumber, n = 0, i = this._diffs.length; n < i;
                n++) {
              var o = this._diffs[n].entries;
              if (t <= o[o.length - 1].modifiedLineEnd) {
                return n
              }
            }
            return 0
          }, t.prototype._render = function () {
            var e = this._diffEditor.getOriginalEditor().getConfiguration(),
                i = this._diffEditor.getModifiedEditor().getConfiguration(),
                r = this._diffEditor.getOriginalEditor().getModel(),
                s = this._diffEditor.getModifiedEditor().getModel(),
                a = r.getOptions(), l = s.getOptions();
            if (!this._isVisible || !r || !s) {
              return o.clearNode(
                  this._content.domNode), this._currentDiff = null, void this.scrollbar.scanDomNode();
            }
            var c = this._diffEditor.getPosition(), d = this._findDiffIndex(c);
            if (this._diffs[d] !== this._currentDiff) {
              this._currentDiff = this._diffs[d];
              var h = this._diffs[d].entries, p = document.createElement("div");
              p.className = "diff-review-table", p.setAttribute("role",
                  "list"), u.Configuration.applyFontInfoSlow(p, i.fontInfo);
              for (var f = 0, g = 0, m = 0, v = 0, _ = 0, y = h.length; _ < y;
                  _++) {
                var C = (N = h[_]).originalLineStart, b = N.originalLineEnd,
                    w = N.modifiedLineStart, S = N.modifiedLineEnd;
                0 !== C && (0 === f || C < f) && (f = C), 0 !== b && (0 === g
                    || b > g) && (g = b), 0 !== w && (0 === m || w < m)
                && (m = w), 0 !== S && (0 === v || S > v) && (v = S)
              }
              var E = document.createElement("div");
              E.className = "diff-review-row";
              var L = document.createElement("div");
              L.className = "diff-review-cell diff-review-summary", L.appendChild(
                  document.createTextNode(
                      d + 1 + "/" + this._diffs.length + ": @@ -" + f + "," + (g
                          - f + 1) + " +" + m + "," + (v - m + 1)
                      + " @@")), E.setAttribute("data-line",
                  String(m)), E.setAttribute("aria-label",
                  n.localize(1, null, d + 1, this._diffs.length, f, g - f + 1,
                      m, v - m + 1)), E.appendChild(L), E.setAttribute("role",
                  "listitem"), p.appendChild(E);
              for (var x = m, _ = 0, y = h.length; _ < y; _++) {
                var N = h[_];
                t._renderSection(p, N, x, this._width, e, r, a, i, s, l), 0
                !== N.modifiedLineStart && (x = N.modifiedLineEnd)
              }
              o.clearNode(
                  this._content.domNode), this._content.domNode.appendChild(
                  p), this.scrollbar.scanDomNode()
            }
          }, t._renderSection = function (e, t, i, o, r, s, a, u, l, c) {
            var d = t.getType(), h = "diff-review-row", p = "",
                f = "diff-review-spacer";
            switch (d) {
              case 1:
                h = "diff-review-row line-insert", p = " char-insert", f = "diff-review-spacer insert-sign";
                break;
              case 2:
                h = "diff-review-row line-delete", p = " char-delete", f = "diff-review-spacer delete-sign"
            }
            for (var g = t.originalLineStart, m = t.originalLineEnd,
                v = t.modifiedLineStart, _ = t.modifiedLineEnd,
                y = Math.max(_ - v, m - g), C = r.layoutInfo.glyphMarginWidth
                    + r.layoutInfo.lineNumbersWidth,
                b = 10 + u.layoutInfo.glyphMarginWidth
                    + u.layoutInfo.lineNumbersWidth, w = 0; w <= y; w++) {
              var S = 0 === g ? 0 : g + w, E = 0 === v ? 0 : v + w,
                  L = document.createElement("div");
              L.style.minWidth = o + "px", L.className = h, L.setAttribute(
                  "role", "listitem"), 0 !== E && (i = E), L.setAttribute(
                  "data-line", String(i));
              var x = document.createElement("div");
              x.className = "diff-review-cell", L.appendChild(x);
              var N = document.createElement("span");
              N.style.width = C + "px", N.style.minWidth = C
                  + "px", N.className = "diff-review-line-number" + p, 0 !== S
                  ? N.appendChild(document.createTextNode(String(S)))
                  : N.innerHTML = "&nbsp;", x.appendChild(N);
              var M = document.createElement("span");
              M.style.width = b + "px", M.style.minWidth = b
                  + "px", M.style.paddingRight = "10px", M.className = "diff-review-line-number"
                  + p, 0 !== E ? M.appendChild(
                      document.createTextNode(String(E)))
                  : M.innerHTML = "&nbsp;", x.appendChild(M);
              var T = document.createElement("span");
              T.className = f, T.innerHTML = "&nbsp;&nbsp;", x.appendChild(T);
              var k = void 0;
              0 !== E ? (x.insertAdjacentHTML("beforeend",
                  this._renderLine(l, u, c.tabSize, E)), k = l.getLineContent(
                  E)) : (x.insertAdjacentHTML("beforeend",
                  this._renderLine(s, r, a.tabSize, S)), k = s.getLineContent(
                  S)), 0 === k.length && (k = n.localize(2, null));
              var I = void 0;
              switch (d) {
                case 0:
                  I = n.localize(3, null, S, E, k);
                  break;
                case 1:
                  I = n.localize(4, null, E, k);
                  break;
                case 2:
                  I = n.localize(5, null, S, k)
              }
              L.setAttribute("aria-label", I), e.appendChild(L)
            }
          }, t._renderLine = function (e, t, n, i) {
            var o = e.getLineContent(i);
            return s.renderViewLine(new s.RenderLineInput(t.fontInfo.isMonospace
                && !t.viewInfo.disableMonospaceOptimizations, o,
                e.mightContainRTL(), 0,
                [new a.ViewLineToken(o.length, 16793600)], [], n,
                t.fontInfo.spaceWidth, t.viewInfo.stopRenderingLineAfter,
                t.viewInfo.renderWhitespace, t.viewInfo.renderControlCharacters,
                t.viewInfo.fontLigatures)).html
          }, t
        }(i.Disposable);
        t.DiffReview = L, c.registerThemingParticipant(function (e, t) {
          var n = e.getColor(p.editorLineNumbers);
          n && t.addRule(
              ".monaco-diff-editor .diff-review-line-number { color: " + n
              + "; }");
          var i = e.getColor(d.scrollbarShadow);
          i && t.addRule(
              ".monaco-diff-editor .diff-review-shadow { box-shadow: " + i
              + " 0 -6px 6px -6px inset; }")
        });
        (function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.diffReview.next",
              label: n.localize(6, null),
              alias: "Go to Next Difference",
              precondition: y.ContextKeyExpr.has("isInDiffEditor"),
              kbOpts: {kbExpr: null, primary: 65}
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            var n = b(e);
            n && n.diffReviewNext()
          }, t = v([_.editorAction], t)
        })(_.EditorAction), function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.diffReview.prev",
              label: n.localize(7, null),
              alias: "Go to Previous Difference",
              precondition: y.ContextKeyExpr.has("isInDiffEditor"),
              kbOpts: {kbExpr: null, primary: 1089}
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            var n = b(e);
            n && n.diffReviewPrev()
          }, t = v([_.editorAction], t)
        }(_.EditorAction)
      }),define(d[140], h([1, 0, 14]), function (e, t, n) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var i = function () {
      return function (e, t, n, i) {
        this.from = 0 | e, this.to = 0 | t, this.colorId = 0
            | n, this.position = 0 | i
      }
    }();
    t.ColorZone = i;
    var o = function () {
      function e(e, t, n, i, o, r, s) {
        this.startLineNumber = e, this.endLineNumber = t, this.position = n, this.forceHeight = i, this._color = o, this._darkColor = r, this._hcColor = s, this._colorZones = null
      }

      return e.prototype.getColor = function (e) {
        switch (e) {
          case n.HIGH_CONTRAST:
            return this._hcColor;
          case n.DARK:
            return this._darkColor
        }
        return this._color
      }, e.prototype.equals = function (e) {
        return this.startLineNumber === e.startLineNumber && this.endLineNumber
            === e.endLineNumber && this.position === e.position
            && this.forceHeight === e.forceHeight && this._color === e._color
            && this._darkColor === e._darkColor && this._hcColor === e._hcColor
      }, e.prototype.compareTo = function (e) {
        return this.startLineNumber === e.startLineNumber ? this.endLineNumber
        === e.endLineNumber ? this.forceHeight === e.forceHeight ? this.position
        === e.position ? this._darkColor === e._darkColor ? this._color
            === e._color ? this._hcColor === e._hcColor ? 0 : this._hcColor
            < e._hcColor ? -1 : 1 : this._color < e._color ? -1 : 1
            : this._darkColor < e._darkColor ? -1 : 1 : this.position
            - e.position : this.forceHeight - e.forceHeight : this.endLineNumber
            - e.endLineNumber : this.startLineNumber - e.startLineNumber
      }, e.prototype.setColorZones = function (e) {
        this._colorZones = e
      }, e.prototype.getColorZones = function () {
        return this._colorZones
      }, e
    }();
    t.OverviewRulerZone = o;
    var r = function () {
      function e(e) {
        this._getVerticalOffsetForLine = e, this._zones = [], this._colorZonesInvalid = !1, this._lineHeight = 0, this._domWidth = 0, this._domHeight = 0, this._outerHeight = 0, this._maximumHeight = 0, this._minimumHeight = 0, this._themeType = n.LIGHT, this._pixelRatio = 1, this._lastAssignedId = 0, this._color2Id = Object.create(
            null), this._id2Color = []
      }

      return e.prototype.getId2Color = function () {
        return this._id2Color
      }, e.prototype.setZones = function (e) {
        e.sort(function (e, t) {
          return e.compareTo(t)
        });
        for (var t = this._zones, n = 0, i = this._zones.length, o = 0,
            r = e.length, s = []; o < r;) {
          var a = e[o];
          if (n >= i) {
            s.push(a), o++;
          } else {
            var u = t[n], l = u.compareTo(a);
            l < 0 ? n++ : l > 0 ? (s.push(a), o++) : (s.push(u), n++, o++)
          }
        }
        this._zones = s
      }, e.prototype.setLineHeight = function (e) {
        return this._lineHeight !== e
            && (this._lineHeight = e, this._colorZonesInvalid = !0, !0)
      }, e.prototype.setPixelRatio = function (e) {
        this._pixelRatio = e, this._colorZonesInvalid = !0
      }, e.prototype.getDOMWidth = function () {
        return this._domWidth
      }, e.prototype.getCanvasWidth = function () {
        return this._domWidth * this._pixelRatio
      }, e.prototype.setDOMWidth = function (e) {
        return this._domWidth !== e
            && (this._domWidth = e, this._colorZonesInvalid = !0, !0)
      }, e.prototype.getDOMHeight = function () {
        return this._domHeight
      }, e.prototype.getCanvasHeight = function () {
        return this._domHeight * this._pixelRatio
      }, e.prototype.setDOMHeight = function (e) {
        return this._domHeight !== e
            && (this._domHeight = e, this._colorZonesInvalid = !0, !0)
      }, e.prototype.getOuterHeight = function () {
        return this._outerHeight
      }, e.prototype.setOuterHeight = function (e) {
        return this._outerHeight !== e
            && (this._outerHeight = e, this._colorZonesInvalid = !0, !0)
      }, e.prototype.setMaximumHeight = function (e) {
        return this._maximumHeight !== e
            && (this._maximumHeight = e, this._colorZonesInvalid = !0, !0)
      }, e.prototype.setMinimumHeight = function (e) {
        return this._minimumHeight !== e
            && (this._minimumHeight = e, this._colorZonesInvalid = !0, !0)
      }, e.prototype.setThemeType = function (e) {
        return this._themeType !== e
            && (this._themeType = e, this._colorZonesInvalid = !0, !0)
      }, e.prototype.resolveColorZones = function () {
        for (var e = this._colorZonesInvalid, t = Math.floor(this._lineHeight),
            n = Math.floor(this.getCanvasHeight()),
            i = Math.floor(this._maximumHeight * this._pixelRatio),
            o = Math.floor(this._minimumHeight * this._pixelRatio),
            r = this._themeType, s = n / Math.floor(this._outerHeight), a = [],
            u = 0, l = this._zones.length; u < l; u++) {
          var c = this._zones[u];
          if (!e) {
            var d = c.getColorZones();
            if (d) {
              for (var h = 0, p = d.length; h < p; h++) {
                a.push(d[h]);
              }
              continue
            }
          }
          var f = [];
          if (c.forceHeight) {
            var g = Math.floor(c.forceHeight * this._pixelRatio),
                m = Math.floor(
                    this._getVerticalOffsetForLine(c.startLineNumber)),
                v = (m = Math.floor(m * s)) + g;
            f.push(this.createZone(n, m, v, g, g, c.getColor(r), c.position))
          } else {
            var m = Math.floor(
                    this._getVerticalOffsetForLine(c.startLineNumber)),
                v = Math.floor(this._getVerticalOffsetForLine(c.endLineNumber))
                    + t;
            m = Math.floor(m * s), v = Math.floor(v * s);
            var _ = (c.endLineNumber - c.startLineNumber + 1) * i;
            if (v - m > _) {
              for (var y = c.startLineNumber; y <= c.endLineNumber;
                  y++) {
                v = (m = Math.floor(this._getVerticalOffsetForLine(y)))
                    + t, m = Math.floor(m * s), v = Math.floor(v * s), f.push(
                    this.createZone(n, m, v, o, i, c.getColor(r),
                        c.position));
              }
            } else {
              f.push(
                  this.createZone(n, m, v, o, _, c.getColor(r), c.position))
            }
          }
          c.setColorZones(f);
          for (var h = 0, p = f.length; h < p; h++) {
            a.push(f[h])
          }
        }
        this._colorZonesInvalid = !1;
        return a.sort(function (e, t) {
          return e.colorId === t.colorId ? e.from === t.from ? e.to - t.to
              : e.from - t.from : e.colorId - t.colorId
        }), a
      }, e.prototype.createZone = function (e, t, n, o, r, s, a) {
        e = Math.floor(e), t = Math.floor(t), n = Math.floor(n), o = Math.floor(
            o), r = Math.floor(r);
        var u = Math.floor((t + n) / 2), l = n - u;
        l > r / 2 && (l = r / 2), l < o / 2 && (l = o / 2), u - l < 0
        && (u = l), u + l > e && (u = e - l);
        var c = this._color2Id[s];
        return c
        || (c = ++this._lastAssignedId, this._color2Id[s] = c, this._id2Color[c] = s), new i(
            u - l, u + l, c, a)
      }, e
    }();
    t.OverviewZoneManager = r
  }),define(d[190], h([1, 0, 27, 20, 140, 14]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var s = function () {
      function e(e, t, i, s, a, u, l, c) {
        this._canvasLeftOffset = e, this._domNode = n.createFastDomNode(
            document.createElement("canvas")), this._domNode.setClassName(
            t), this._domNode.setPosition(
            "absolute"), this._domNode.setLayerHinting(
            !0), this._lanesCount = 3, this._background = null, this._zoneManager = new o.OverviewZoneManager(
            c), this._zoneManager.setMinimumHeight(
            u), this._zoneManager.setMaximumHeight(
            l), this._zoneManager.setThemeType(
            r.LIGHT), this._zoneManager.setDOMWidth(
            0), this._zoneManager.setDOMHeight(
            0), this._zoneManager.setOuterHeight(
            i), this._zoneManager.setLineHeight(
            s), this._zoneManager.setPixelRatio(a)
      }

      return e.prototype.dispose = function () {
        this._zoneManager = null
      }, e.prototype.setLayout = function (e, t) {
        this._domNode.setTop(e.top), this._domNode.setRight(e.right);
        var n = !1;
        n = this._zoneManager.setDOMWidth(e.width)
            || n, (n = this._zoneManager.setDOMHeight(e.height) || n)
        && (this._domNode.setWidth(
            this._zoneManager.getDOMWidth()), this._domNode.setHeight(
            this._zoneManager.getDOMHeight()), this._domNode.domNode.width = this._zoneManager.getCanvasWidth(), this._domNode.domNode.height = this._zoneManager.getCanvasHeight(), t
        && this.render(!0))
      }, e.prototype.getLanesCount = function () {
        return this._lanesCount
      }, e.prototype.setLanesCount = function (e, t) {
        this._lanesCount = e, t && this.render(!0)
      }, e.prototype.setThemeType = function (e, t) {
        this._zoneManager.setThemeType(e), t && this.render(!0)
      }, e.prototype.setUseBackground = function (e, t) {
        this._background = e, t && this.render(!0)
      }, e.prototype.getDomNode = function () {
        return this._domNode.domNode
      }, e.prototype.getPixelWidth = function () {
        return this._zoneManager.getCanvasWidth()
      }, e.prototype.getPixelHeight = function () {
        return this._zoneManager.getCanvasHeight()
      }, e.prototype.setScrollHeight = function (e, t) {
        this._zoneManager.setOuterHeight(e), t && this.render(!0)
      }, e.prototype.setLineHeight = function (e, t) {
        this._zoneManager.setLineHeight(e), t && this.render(!0)
      }, e.prototype.setPixelRatio = function (e, t) {
        this._zoneManager.setPixelRatio(e), this._domNode.setWidth(
            this._zoneManager.getDOMWidth()), this._domNode.setHeight(
            this._zoneManager.getDOMHeight()), this._domNode.domNode.width = this._zoneManager.getCanvasWidth(), this._domNode.domNode.height = this._zoneManager.getCanvasHeight(), t
        && this.render(!0)
      }, e.prototype.setZones = function (e, t) {
        this._zoneManager.setZones(e), t && this.render(!1)
      }, e.prototype.render = function (e) {
        if (0 === this._zoneManager.getOuterHeight()) {
          return !1;
        }
        var t = this._zoneManager.getCanvasWidth(),
            n = this._zoneManager.getCanvasHeight(),
            i = this._zoneManager.resolveColorZones(),
            o = this._zoneManager.getId2Color(),
            r = this._domNode.domNode.getContext("2d");
        if (null === this._background ? r.clearRect(0, 0, t, n)
            : (r.fillStyle = this._background.toRGBHex(), r.fillRect(0, 0, t,
                n)), i.length > 0) {
          var s = t - this._canvasLeftOffset;
          this._lanesCount >= 3 ? this._renderThreeLanes(r, i, o, s) : 2
          === this._lanesCount ? this._renderTwoLanes(r, i, o, s) : 1
              === this._lanesCount && this._renderOneLane(r, i, o, s)
        }
        return !0
      }, e.prototype._renderOneLane = function (e, t, n, o) {
        this._renderVerticalPatch(e, t, n,
            i.OverviewRulerLane.Left | i.OverviewRulerLane.Center
            | i.OverviewRulerLane.Right, this._canvasLeftOffset, o)
      }, e.prototype._renderTwoLanes = function (e, t, n, o) {
        var r = Math.floor(o / 2), s = o - r, a = this._canvasLeftOffset,
            u = this._canvasLeftOffset + r;
        this._renderVerticalPatch(e, t, n,
            i.OverviewRulerLane.Left | i.OverviewRulerLane.Center, a,
            r), this._renderVerticalPatch(e, t, n, i.OverviewRulerLane.Right, u,
            s)
      }, e.prototype._renderThreeLanes = function (e, t, n, o) {
        var r = Math.floor(o / 3), s = Math.floor(o / 3), a = o - r - s,
            u = this._canvasLeftOffset, l = this._canvasLeftOffset + r,
            c = this._canvasLeftOffset + r + a;
        this._renderVerticalPatch(e, t, n, i.OverviewRulerLane.Left, u,
            r), this._renderVerticalPatch(e, t, n, i.OverviewRulerLane.Center,
            l, a), this._renderVerticalPatch(e, t, n, i.OverviewRulerLane.Right,
            c, s)
      }, e.prototype._renderVerticalPatch = function (e, t, n, i, o, r) {
        for (var s = 0, a = 0, u = 0, l = 0, c = t.length; l < c; l++) {
          var d = t[l];
          if (d.position & i) {
            var h = d.colorId, p = d.from, f = d.to;
            h !== s ? (e.fillRect(o, a, r,
                u - a), s = h, e.fillStyle = n[s], a = p, u = f) : u >= p
                ? u = Math.max(u, f) : (e.fillRect(o, a, r,
                    u - a), a = p, u = f)
          }
        }
        e.fillRect(o, a, r, u - a)
      }, e
    }();
    t.OverviewRulerImpl = s
  }),define(d[507], h([1, 0, 20, 35, 190, 17, 140, 37, 32]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function (e) {
          function t(n) {
            var i = e.call(this, n) || this;
            return i._overviewRuler = new o.OverviewRulerImpl(1,
                "decorationsOverviewRuler",
                i._context.viewLayout.getScrollHeight(),
                i._context.configuration.editor.lineHeight,
                i._context.configuration.editor.pixelRatio,
                t.MIN_DECORATION_HEIGHT, t.MAX_DECORATION_HEIGHT, function (e) {
                  return i._context.viewLayout.getVerticalOffsetForLineNumber(e)
                }), i._overviewRuler.setLanesCount(
                i._context.configuration.editor.viewInfo.overviewRulerLanes,
                !1), i._overviewRuler.setLayout(
                i._context.configuration.editor.layoutInfo.overviewRuler,
                !1), i._renderBorder = i._context.configuration.editor.viewInfo.overviewRulerBorder, i._updateColors(), i._updateBackground(
                !1), i._tokensColorTrackerListener = r.TokenizationRegistry.onDidChange(
                function (e) {
                  e.changedColorMap && i._updateBackground(!0)
                }), i._shouldUpdateDecorations = !0, i._zonesFromDecorations = [], i._shouldUpdateCursorPosition = !0, i._hideCursor = i._context.configuration.editor.viewInfo.hideCursorInOverviewRuler, i._zonesFromCursors = [], i._cursorPositions = [], i
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(
                this), this._overviewRuler.dispose(), this._tokensColorTrackerListener.dispose()
          }, t.prototype._updateBackground = function (e) {
            var t = this._context.configuration.editor.viewInfo.minimap.enabled;
            this._overviewRuler.setUseBackground(
                t ? r.TokenizationRegistry.getDefaultBackground() : null, e)
          }, t.prototype.onConfigurationChanged = function (e) {
            var t = this._overviewRuler.getLanesCount(),
                n = this._context.configuration.editor.viewInfo.overviewRulerLanes;
            return t !== n && this._overviewRuler.setLanesCount(n,
                !1), e.lineHeight && this._overviewRuler.setLineHeight(
                this._context.configuration.editor.lineHeight, !1), e.pixelRatio
            && this._overviewRuler.setPixelRatio(
                this._context.configuration.editor.pixelRatio, !1), e.viewInfo
            && (this._renderBorder = this._context.configuration.editor.viewInfo.overviewRulerBorder, this._hideCursor = this._context.configuration.editor.viewInfo.hideCursorInOverviewRuler, this._shouldUpdateCursorPosition = !0, this._updateBackground(
                !1)), e.layoutInfo && this._overviewRuler.setLayout(
                this._context.configuration.editor.layoutInfo.overviewRuler,
                !1), !0
          }, t.prototype.onCursorStateChanged = function (e) {
            this._shouldUpdateCursorPosition = !0, this._cursorPositions = [];
            for (var t = 0, n = e.selections.length; t < n;
                t++) {
              this._cursorPositions[t] = e.selections[t].getPosition();
            }
            return !0
          }, t.prototype.onDecorationsChanged = function (e) {
            return this._shouldUpdateDecorations = !0, !0
          }, t.prototype.onFlushed = function (e) {
            return this._shouldUpdateCursorPosition = !0, this._shouldUpdateDecorations = !0, !0
          }, t.prototype.onScrollChanged = function (t) {
            return this._overviewRuler.setScrollHeight(t.scrollHeight,
                !1), e.prototype.onScrollChanged.call(this, t)
            || t.scrollHeightChanged
          }, t.prototype.onZonesChanged = function (e) {
            return !0
          }, t.prototype.onThemeChanged = function (e) {
            return this._updateColors(), this._shouldUpdateDecorations = !0, this._shouldUpdateCursorPosition = !0, !0
          }, t.prototype.getDomNode = function () {
            return this._overviewRuler.getDomNode()
          }, t.prototype._updateColors = function () {
            var e = this._context.theme.getColor(a.editorOverviewRulerBorder);
            this._borderColor = e ? e.toString() : null;
            var t = this._context.theme.getColor(a.editorCursorForeground);
            this._cursorColor = t ? t.transparent(.7).toString()
                : null, this._overviewRuler.setThemeType(
                this._context.theme.type, !1)
          }, t.prototype._createZonesFromDecorations = function () {
            for (var e = this._context.model.getAllOverviewRulerDecorations(),
                t = [], n = 0, i = e.length; n < i; n++) {
              var o = e[n], r = o.source.options.overviewRuler;
              t.push(new s.OverviewRulerZone(o.range.startLineNumber,
                  o.range.endLineNumber, r.position, 0,
                  this.resolveRulerColor(r.color),
                  this.resolveRulerColor(r.darkColor),
                  this.resolveRulerColor(r.hcColor)))
            }
            return t
          }, t.prototype.resolveRulerColor = function (e) {
            return n.isThemeColor(e) ? (this._context.theme.getColor(e.id)
                || u.Color.transparent).toString() : e
          }, t.prototype._createZonesFromCursors = function () {
            for (var e = [], t = 0, i = this._cursorPositions.length; t < i;
                t++) {
              var o = this._cursorPositions[t];
              e.push(new s.OverviewRulerZone(o.lineNumber, o.lineNumber,
                  n.OverviewRulerLane.Full, 2, this._cursorColor,
                  this._cursorColor, this._cursorColor))
            }
            return e
          }, t.prototype.prepareRender = function (e) {
          }, t.prototype.render = function (e) {
            if (this._shouldUpdateDecorations
                || this._shouldUpdateCursorPosition) {
              this._shouldUpdateDecorations
              && (this._shouldUpdateDecorations = !1, this._zonesFromDecorations = this._createZonesFromDecorations()), this._shouldUpdateCursorPosition
              && (this._shouldUpdateCursorPosition = !1, this._hideCursor
                  ? this._zonesFromCursors = []
                  : this._zonesFromCursors = this._createZonesFromCursors());
              var t = [];
              t = (t = t.concat(this._zonesFromCursors)).concat(
                  this._zonesFromDecorations), this._overviewRuler.setZones(t,
                  !1)
            }
            if (this._overviewRuler.render(!1) && this._renderBorder
                && this._borderColor && this._overviewRuler.getLanesCount() > 0
                && (this._zonesFromDecorations.length > 0
                    || this._zonesFromCursors.length > 0)) {
              var n = this._overviewRuler.getDomNode().getContext("2d");
              n.beginPath(), n.lineWidth = 1, n.strokeStyle = this._borderColor, n.moveTo(
                  0, 0), n.lineTo(0,
                  this._overviewRuler.getPixelHeight()), n.stroke(), n.moveTo(0,
                  0), n.lineTo(this._overviewRuler.getPixelWidth(),
                  0), n.stroke()
            }
          }, t.MIN_DECORATION_HEIGHT = 6, t.MAX_DECORATION_HEIGHT = 60, t
        }(i.ViewPart);
        t.DecorationsOverviewRuler = l
      }),define(d[508], h([1, 0, 82, 190]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0});
    var o = function (e) {
      function t(t, n, o, r) {
        var s = e.call(this) || this;
        return s._context = t, s._overviewRuler = new i.OverviewRulerImpl(0, n,
            s._context.viewLayout.getScrollHeight(),
            s._context.configuration.editor.lineHeight,
            s._context.configuration.editor.pixelRatio, o, r, function (e) {
              return s._context.viewLayout.getVerticalOffsetForLineNumber(e)
            }), s._context.addEventHandler(s), s
      }

      return f(t, e), t.prototype.dispose = function () {
        this._context.removeEventHandler(
            this), this._overviewRuler.dispose(), e.prototype.dispose.call(this)
      }, t.prototype.onConfigurationChanged = function (e) {
        return e.lineHeight && this._overviewRuler.setLineHeight(
            this._context.configuration.editor.lineHeight, !0), e.pixelRatio
        && this._overviewRuler.setPixelRatio(
            this._context.configuration.editor.pixelRatio, !0), !0
      }, t.prototype.onFlushed = function (e) {
        return !0
      }, t.prototype.onScrollChanged = function (t) {
        return this._overviewRuler.setScrollHeight(t.scrollHeight,
            !0), e.prototype.onScrollChanged.call(this, t)
        || t.scrollHeightChanged
      }, t.prototype.onZonesChanged = function (e) {
        return !0
      }, t.prototype.getDomNode = function () {
        return this._overviewRuler.getDomNode()
      }, t.prototype.setLayout = function (e) {
        this._overviewRuler.setLayout(e, !0)
      }, t.prototype.setZones = function (e) {
        this._overviewRuler.setZones(e, !0)
      }, t
    }(n.ViewEventHandler);
    t.OverviewRuler = o
  }),define(d[509],
      h([1, 0, 10, 4, 27, 2, 82, 501, 490, 449, 217, 443, 230, 497, 498, 231,
        113, 188, 499, 492, 182, 233, 235, 236, 507, 508, 502, 494, 495, 503,
        237, 35, 216, 78, 491, 221, 486, 493, 57, 14]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, v, _, y, C, b,
          w, S, E, L, x, N, M, T, k, I, D, O, R, P, A, F, W, B, V) {
        "use strict";

        function H(e) {
          try {
            return e()
          } catch (e) {
            n.onUnexpectedError(e)
          }
        }

        function z(e, t) {
          try {
            return e(t)
          } catch (e) {
            n.onUnexpectedError(e)
          }
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var K = function (e) {
          function t(t, n, i, o, r, s) {
            var d = e.call(this) || this;
            d._isDisposed = !1, d._cursor = r, d._renderAnimationFrame = null, d.outgoingEvents = new P.ViewOutgoingEvents(
                o);
            var h = new l.ViewController(n, o, s, d.outgoingEvents, t);
            return d.eventDispatcher = new c.ViewEventDispatcher(function (e) {
              return d._renderOnce(e)
            }), d.eventDispatcher.addEventHandler(
                d), d._context = new O.ViewContext(n, i.getTheme(), o,
                d.eventDispatcher), d._register(i.onThemeChange(function (e) {
              d._context.theme = e, d.eventDispatcher.emit(
                  new B.ViewThemeChangedEvent), d.render(!0, !1)
            })), d.viewParts = [], d._textAreaHandler = new a.TextAreaHandler(
                d._context, h,
                d.createTextAreaHandlerHelper()), d.viewParts.push(
                d._textAreaHandler), d.createViewParts(), d._setLayout(), d.pointerHandler = new u.PointerHandler(
                d._context, h, d.createPointerHandlerHelper()), d._register(
                o.addEventListener(function (e) {
                  d.eventDispatcher.emitMany(e)
                })), d._register(d._cursor.addEventListener(function (e) {
              d.eventDispatcher.emitMany(e)
            })), d
          }

          return f(t, e), t.prototype.createViewParts = function () {
            this.linesContent = o.createFastDomNode(
                document.createElement("div")), this.linesContent.setClassName(
                "lines-content monaco-editor-background"), this.linesContent.setPosition(
                "absolute"), this.domNode = o.createFastDomNode(
                document.createElement("div")), this.domNode.setClassName(
                this.getEditorClassName()), this.overflowGuardContainer = o.createFastDomNode(
                document.createElement("div")), D.PartFingerprints.write(
                this.overflowGuardContainer,
                3), this.overflowGuardContainer.setClassName(
                "overflow-guard"), this._scrollbar = new F.EditorScrollbar(
                this._context, this.linesContent, this.domNode,
                this.overflowGuardContainer), this.viewParts.push(
                this._scrollbar), this.viewLines = new C.ViewLines(
                this._context,
                this.linesContent), this.viewZones = new I.ViewZones(
                this._context), this.viewParts.push(this.viewZones);
            var e = new L.DecorationsOverviewRuler(this._context);
            this.viewParts.push(e);
            var t = new M.ScrollDecorationViewPart(this._context);
            this.viewParts.push(t);
            var n = new d.ContentViewOverlays(this._context);
            this.viewParts.push(n), n.addDynamicOverlay(
                new p.CurrentLineHighlightOverlay(
                    this._context)), n.addDynamicOverlay(
                new T.SelectionsOverlay(this._context)), n.addDynamicOverlay(
                new m.DecorationsOverlay(this._context)), n.addDynamicOverlay(
                new y.IndentGuidesOverlay(this._context));
            var i = new d.MarginViewOverlays(this._context);
            this.viewParts.push(i), i.addDynamicOverlay(
                new g.CurrentLineMarginHighlightOverlay(
                    this._context)), i.addDynamicOverlay(
                new v.GlyphMarginOverlay(this._context)), i.addDynamicOverlay(
                new S.MarginViewLineDecorationsOverlay(
                    this._context)), i.addDynamicOverlay(
                new w.LinesDecorationsOverlay(
                    this._context)), i.addDynamicOverlay(
                new _.LineNumbersOverlay(this._context));
            var r = new b.Margin(this._context);
            r.getDomNode().appendChild(
                this.viewZones.marginDomNode), r.getDomNode().appendChild(
                i.getDomNode()), this.viewParts.push(
                r), this.contentWidgets = new h.ViewContentWidgets(
                this._context, this.domNode), this.viewParts.push(
                this.contentWidgets), this.viewCursors = new k.ViewCursors(
                this._context), this.viewParts.push(
                this.viewCursors), this.overlayWidgets = new E.ViewOverlayWidgets(
                this._context), this.viewParts.push(this.overlayWidgets);
            var s = new N.Rulers(this._context);
            this.viewParts.push(s);
            var a = new W.Minimap(this._context);
            if (this.viewParts.push(a), e) {
              var u = this._scrollbar.getOverviewRulerLayoutInfo();
              u.parent.insertBefore(e.getDomNode(), u.insertBefore)
            }
            this.linesContent.appendChild(
                n.getDomNode()), this.linesContent.appendChild(
                s.domNode), this.linesContent.appendChild(
                this.viewZones.domNode), this.linesContent.appendChild(
                this.viewLines.getDomNode()), this.linesContent.appendChild(
                this.contentWidgets.domNode), this.linesContent.appendChild(
                this.viewCursors.getDomNode()), this.overflowGuardContainer.appendChild(
                r.getDomNode()), this.overflowGuardContainer.appendChild(
                this._scrollbar.getDomNode()), this.overflowGuardContainer.appendChild(
                t.getDomNode()), this.overflowGuardContainer.appendChild(
                this._textAreaHandler.textArea), this.overflowGuardContainer.appendChild(
                this._textAreaHandler.textAreaCover), this.overflowGuardContainer.appendChild(
                this.overlayWidgets.getDomNode()), this.overflowGuardContainer.appendChild(
                a.getDomNode()), this.domNode.appendChild(
                this.overflowGuardContainer), this.domNode.appendChild(
                this.contentWidgets.overflowingContentWidgetsDomNode)
          }, t.prototype._flushAccumulatedAndRenderNow = function () {
            this._renderNow()
          }, t.prototype.createPointerHandlerHelper = function () {
            var e = this;
            return {
              viewDomNode: this.domNode.domNode,
              linesContentDomNode: this.linesContent.domNode,
              focusTextArea: function () {
                e.focus()
              },
              getLastViewCursorsRenderData: function () {
                return e.viewCursors.getLastRenderData() || []
              },
              shouldSuppressMouseDownOnViewZone: function (t) {
                return e.viewZones.shouldSuppressMouseDownOnViewZone(t)
              },
              shouldSuppressMouseDownOnWidget: function (t) {
                return e.contentWidgets.shouldSuppressMouseDownOnWidget(t)
              },
              getPositionFromDOMInfo: function (t, n) {
                return e._flushAccumulatedAndRenderNow(), e.viewLines.getPositionFromDOMInfo(
                    t, n)
              },
              visibleRangeForPosition2: function (t, n) {
                e._flushAccumulatedAndRenderNow();
                var i = e.viewLines.visibleRangesForRange2(
                    new r.Range(t, n, t, n));
                return i ? i[0] : null
              },
              getLineWidth: function (t) {
                return e._flushAccumulatedAndRenderNow(), e.viewLines.getLineWidth(
                    t)
              }
            }
          }, t.prototype.createTextAreaHandlerHelper = function () {
            var e = this;
            return {
              visibleRangeForPositionRelativeToEditor: function (t, n) {
                e._flushAccumulatedAndRenderNow();
                var i = e.viewLines.visibleRangesForRange2(
                    new r.Range(t, n, t, n));
                return i ? i[0] : null
              }
            }
          }, t.prototype._setLayout = function () {
            var e = this._context.configuration.editor.layoutInfo;
            this.domNode.setWidth(e.width), this.domNode.setHeight(
                e.height), this.overflowGuardContainer.setWidth(
                e.width), this.overflowGuardContainer.setHeight(
                e.height), this.linesContent.setWidth(
                1e6), this.linesContent.setHeight(1e6)
          }, t.prototype.getEditorClassName = function () {
            return this._context.configuration.editor.editorClassName + " "
                + V.getThemeTypeSelector(this._context.theme.type)
          }, t.prototype.onConfigurationChanged = function (e) {
            return e.editorClassName && this.domNode.setClassName(
                this.getEditorClassName()), e.layoutInfo
            && this._setLayout(), !1
          }, t.prototype.onFocusChanged = function (e) {
            return this.domNode.toggleClassName("focused",
                e.isFocused), e.isFocused
                ? this.outgoingEvents.emitViewFocusGained()
                : this.outgoingEvents.emitViewFocusLost(), !1
          }, t.prototype.onScrollChanged = function (e) {
            return this.outgoingEvents.emitScrollChanged(e), !1
          }, t.prototype.onThemeChanged = function (e) {
            return this.domNode.setClassName(this.getEditorClassName()), !1
          }, t.prototype.dispose = function () {
            this._isDisposed = !0, null !== this._renderAnimationFrame
            && (this._renderAnimationFrame.dispose(), this._renderAnimationFrame = null), this.eventDispatcher.removeEventHandler(
                this), this.outgoingEvents.dispose(), this.pointerHandler.dispose(), this.viewLines.dispose();
            for (var t = 0, n = this.viewParts.length; t < n;
                t++) {
              this.viewParts[t].dispose();
            }
            this.viewParts = [], e.prototype.dispose.call(this)
          }, t.prototype._renderOnce = function (e) {
            var t = H(e);
            return this._scheduleRender(), t
          }, t.prototype._scheduleRender = function () {
            null === this._renderAnimationFrame
            && (this._renderAnimationFrame = i.runAtThisOrScheduleAtNextAnimationFrame(
                this._onRenderScheduled.bind(this), 100))
          }, t.prototype._onRenderScheduled = function () {
            this._renderAnimationFrame = null, this._flushAccumulatedAndRenderNow()
          }, t.prototype._renderNow = function () {
            var e = this;
            H(function () {
              return e._actualRender()
            })
          }, t.prototype._getViewPartsToRender = function () {
            for (var e = [], t = 0, n = this.viewParts.length; t < n; t++) {
              var i = this.viewParts[t];
              i.shouldRender() && e.push(i)
            }
            return e
          }, t.prototype._actualRender = function () {
            if (i.isInDOM(this.domNode.domNode)) {
              var e = this._getViewPartsToRender();
              if (this.viewLines.shouldRender() || 0 !== e.length) {
                var t = this._context.viewLayout.getLinesViewportData();
                this._context.model.setViewport(t.startLineNumber,
                    t.endLineNumber, t.centeredLineNumber);
                var n = new A.ViewportData(this._cursor.getViewSelections(), t,
                    this._context.viewLayout.getWhitespaceViewportData(),
                    this._context.model);
                this.viewLines.shouldRender() && (this.viewLines.renderText(
                    n), this.viewLines.onDidRender(), e = this._getViewPartsToRender());
                for (var o = new R.RenderingContext(this._context.viewLayout, n,
                    this.viewLines), r = 0, s = e.length; r < s;
                    r++) {
                  (a = e[r]).prepareRender(o);
                }
                for (var r = 0, s = e.length; r < s; r++) {
                  var a = e[r];
                  a.render(o), a.onDidRender()
                }
              }
            }
          }, t.prototype.delegateVerticalScrollbarMouseDown = function (e) {
            this._scrollbar.delegateVerticalScrollbarMouseDown(e)
          }, t.prototype.getOffsetForColumn = function (e, t) {
            var n = this._context.model.validateModelPosition(
                    {lineNumber: e, column: t}),
                i = this._context.model.coordinatesConverter.convertModelPositionToViewPosition(
                    n);
            this._flushAccumulatedAndRenderNow();
            var o = this.viewLines.visibleRangesForRange2(
                new r.Range(i.lineNumber, i.column, i.lineNumber, i.column));
            return o ? o[0].left : -1
          }, t.prototype.getTargetAtClientPoint = function (e, t) {
            return this.pointerHandler.getTargetAtClientPoint(e, t)
          }, t.prototype.getInternalEventBus = function () {
            return this.outgoingEvents
          }, t.prototype.createOverviewRuler = function (e, t, n) {
            return new x.OverviewRuler(this._context, e, t, n)
          }, t.prototype.change = function (e) {
            var t = this, n = !1;
            return this._renderOnce(function () {
              var i = {
                addZone: function (e) {
                  return n = !0, t.viewZones.addZone(e)
                }, removeZone: function (e) {
                  e && (n = t.viewZones.removeZone(e) || n)
                }, layoutZone: function (e) {
                  e && (n = t.viewZones.layoutZone(e) || n)
                }
              };
              z(e, i), i.addZone = null, i.removeZone = null, n
              && (t._context.viewLayout.onHeightMaybeChanged(), t._context.privateViewEventBus.emit(
                  new B.ViewZonesChangedEvent))
            }), n
          }, t.prototype.render = function (e, t) {
            if (t) {
              this.viewLines.forceShouldRender();
              for (var n = 0, i = this.viewParts.length; n < i;
                  n++) {
                this.viewParts[n].forceShouldRender()
              }
            }
            e ? this._flushAccumulatedAndRenderNow() : this._scheduleRender()
          }, t.prototype.setAriaActiveDescendant = function (e) {
            this._textAreaHandler.setAriaActiveDescendant(e)
          }, t.prototype.focus = function () {
            this._textAreaHandler.focusTextArea()
          }, t.prototype.isFocused = function () {
            return this._textAreaHandler.isFocused()
          }, t.prototype.addContentWidget = function (e) {
            this.contentWidgets.addWidget(e.widget), this.layoutContentWidget(
                e), this._scheduleRender()
          }, t.prototype.layoutContentWidget = function (e) {
            var t = e.position ? e.position.position : null,
                n = e.position ? e.position.preference : null;
            this.contentWidgets.setWidgetPosition(e.widget, t,
                n), this._scheduleRender()
          }, t.prototype.removeContentWidget = function (e) {
            this.contentWidgets.removeWidget(e.widget), this._scheduleRender()
          }, t.prototype.addOverlayWidget = function (e) {
            this.overlayWidgets.addWidget(e.widget), this.layoutOverlayWidget(
                e), this._scheduleRender()
          }, t.prototype.layoutOverlayWidget = function (e) {
            var t = e.position ? e.position.preference : null;
            this.overlayWidgets.setWidgetPosition(e.widget, t)
            && this._scheduleRender()
          }, t.prototype.removeOverlayWidget = function (e) {
            this.overlayWidgets.removeWidget(e.widget), this._scheduleRender()
          }, t
        }(s.ViewEventHandler);
        t.View = K
      }),define(d[191],
      h([1, 0, 10, 4, 16, 31, 19, 447, 2, 42, 66, 509, 3, 11, 149, 14, 37, 310,
        312]), function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _) {
        "use strict";

        function C(e) {
          return S + encodeURIComponent(e.toString()) + E
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var b = function (e) {
          function t(t, i, o, r, s, a, u) {
            var l = e.call(this, t, i, o, a) || this;
            l._onMouseUp = l._register(
                new p.Emitter), l.onMouseUp = l._onMouseUp.event, l._onMouseDown = l._register(
                new p.Emitter), l.onMouseDown = l._onMouseDown.event, l._onMouseDrag = l._register(
                new p.Emitter), l.onMouseDrag = l._onMouseDrag.event, l._onMouseDrop = l._register(
                new p.Emitter), l.onMouseDrop = l._onMouseDrop.event, l._onContextMenu = l._register(
                new p.Emitter), l.onContextMenu = l._onContextMenu.event, l._onMouseMove = l._register(
                new p.Emitter), l.onMouseMove = l._onMouseMove.event, l._onMouseLeave = l._register(
                new p.Emitter), l.onMouseLeave = l._onMouseLeave.event, l._onKeyUp = l._register(
                new p.Emitter), l.onKeyUp = l._onKeyUp.event, l._onKeyDown = l._register(
                new p.Emitter), l.onKeyDown = l._onKeyDown.event, l._onDidScrollChange = l._register(
                new p.Emitter), l.onDidScrollChange = l._onDidScrollChange.event, l._onDidChangeViewZones = l._register(
                new p.Emitter), l.onDidChangeViewZones = l._onDidChangeViewZones.event, l._codeEditorService = r, l._commandService = s, l._themeService = u, l._focusTracker = new w(
                t), l._focusTracker.onChange(function () {
              l._focusTracker.hasFocus() ? l._onDidFocusEditor.fire()
                  : l._onDidBlurEditor.fire()
            }), l.contentWidgets = {}, l.overlayWidgets = {};
            for (var c = l._getContributions(), d = 0, h = c.length; d < h;
                d++) {
              var f = c[d];
              try {
                var m = l._instantiationService.createInstance(f, l);
                l._contributions[m.getId()] = m
              } catch (e) {
                n.onUnexpectedError(e)
              }
            }
            return l._getActions().forEach(function (e) {
              var t = new g.InternalEditorAction(e.id, e.label, e.alias,
                  e.precondition, function () {
                    return l._instantiationService.invokeFunction(function (t) {
                      return e.runEditorCommand(t, l, null)
                    })
                  }, l._contextKeyService);
              l._actions[t.id] = t
            }), l._codeEditorService.addCodeEditor(l), l
          }

          return f(t, e), t.prototype._createConfiguration = function (e) {
            return new c.Configuration(e, this.domElement)
          }, t.prototype.dispose = function () {
            this._codeEditorService.removeCodeEditor(
                this), this.contentWidgets = {}, this.overlayWidgets = {}, this._focusTracker.dispose(), e.prototype.dispose.call(
                this)
          }, t.prototype.createOverviewRuler = function (e, t, n) {
            return this._view.createOverviewRuler(e, t, n)
          }, t.prototype.getDomNode = function () {
            return this.hasView ? this._view.domNode.domNode : null
          }, t.prototype.getCompletelyVisibleLinesRangeInViewport = function () {
            if (!this.hasView) {
              return null;
            }
            var e = this.viewModel.getCompletelyVisibleViewRange();
            return this.viewModel.coordinatesConverter.convertViewRangeToModelRange(
                e)
          }, t.prototype.delegateVerticalScrollbarMouseDown = function (e) {
            this.hasView && this._view.delegateVerticalScrollbarMouseDown(e)
          }, t.prototype.layout = function (e) {
            this._configuration.observeReferenceElement(e), this.render()
          }, t.prototype.focus = function () {
            this.hasView && this._view.focus()
          }, t.prototype.isFocused = function () {
            return this.hasView && this._view.isFocused()
          }, t.prototype.hasWidgetFocus = function () {
            return this._focusTracker && this._focusTracker.hasFocus()
          }, t.prototype.addContentWidget = function (e) {
            var t = {widget: e, position: e.getPosition()};
            this.contentWidgets.hasOwnProperty(e.getId()) && console.warn(
                "Overwriting a content widget with the same id."), this.contentWidgets[e.getId()] = t, this.hasView
            && this._view.addContentWidget(t)
          }, t.prototype.layoutContentWidget = function (e) {
            var t = e.getId();
            if (this.contentWidgets.hasOwnProperty(t)) {
              var n = this.contentWidgets[t];
              n.position = e.getPosition(), this.hasView
              && this._view.layoutContentWidget(n)
            }
          }, t.prototype.removeContentWidget = function (e) {
            var t = e.getId();
            if (this.contentWidgets.hasOwnProperty(t)) {
              var n = this.contentWidgets[t];
              delete this.contentWidgets[t], this.hasView
              && this._view.removeContentWidget(n)
            }
          }, t.prototype.addOverlayWidget = function (e) {
            var t = {widget: e, position: e.getPosition()};
            this.overlayWidgets.hasOwnProperty(e.getId()) && console.warn(
                "Overwriting an overlay widget with the same id."), this.overlayWidgets[e.getId()] = t, this.hasView
            && this._view.addOverlayWidget(t)
          }, t.prototype.layoutOverlayWidget = function (e) {
            var t = e.getId();
            if (this.overlayWidgets.hasOwnProperty(t)) {
              var n = this.overlayWidgets[t];
              n.position = e.getPosition(), this.hasView
              && this._view.layoutOverlayWidget(n)
            }
          }, t.prototype.removeOverlayWidget = function (e) {
            var t = e.getId();
            if (this.overlayWidgets.hasOwnProperty(t)) {
              var n = this.overlayWidgets[t];
              delete this.overlayWidgets[t], this.hasView
              && this._view.removeOverlayWidget(n)
            }
          }, t.prototype.changeViewZones = function (e) {
            this.hasView && this._view.change(e)
            && this._onDidChangeViewZones.fire()
          }, t.prototype.getWhitespaces = function () {
            return this.hasView ? this.viewModel.viewLayout.getWhitespaces()
                : []
          }, t.prototype._getVerticalOffsetForPosition = function (e, t) {
            var n = this.model.validatePosition({lineNumber: e, column: t}),
                i = this.viewModel.coordinatesConverter.convertModelPositionToViewPosition(
                    n);
            return this.viewModel.viewLayout.getVerticalOffsetForLineNumber(
                i.lineNumber)
          }, t.prototype.getTopForLineNumber = function (e) {
            return this.hasView ? this._getVerticalOffsetForPosition(e, 1) : -1
          }, t.prototype.getTopForPosition = function (e, t) {
            return this.hasView ? this._getVerticalOffsetForPosition(e, t) : -1
          }, t.prototype.getTargetAtClientPoint = function (e, t) {
            return this.hasView ? this._view.getTargetAtClientPoint(e, t) : null
          }, t.prototype.getScrolledVisiblePosition = function (e) {
            if (!this.hasView) {
              return null;
            }
            var t = this.model.validatePosition(e),
                n = this._configuration.editor.layoutInfo;
            return {
              top: this._getVerticalOffsetForPosition(t.lineNumber, t.column)
                  - this.getScrollTop(),
              left: this._view.getOffsetForColumn(t.lineNumber, t.column)
                  + n.glyphMarginWidth + n.lineNumbersWidth + n.decorationsWidth
                  - this.getScrollLeft(),
              height: this._configuration.editor.lineHeight
            }
          }, t.prototype.getOffsetForColumn = function (e, t) {
            return this.hasView ? this._view.getOffsetForColumn(e, t) : -1
          }, t.prototype.render = function () {
            this.hasView && this._view.render(!0, !1)
          }, t.prototype.setHiddenAreas = function (e) {
            this.viewModel && this.viewModel.setHiddenAreas(e.map(function (e) {
              return u.Range.lift(e)
            }))
          }, t.prototype.setAriaActiveDescendant = function (e) {
            this.hasView && this._view.setAriaActiveDescendant(e)
          }, t.prototype.applyFontInfo = function (e) {
            c.Configuration.applyFontInfoSlow(e,
                this._configuration.editor.fontInfo)
          }, t.prototype._attachModel = function (t) {
            if (this._view = null, e.prototype._attachModel.call(this,
                t), this._view) {
              this.domElement.appendChild(this._view.domNode.domNode);
              for (var n = Object.keys(this.contentWidgets), i = 0,
                  o = n.length; i < o; i++) {
                r = n[i];
                this._view.addContentWidget(this.contentWidgets[r])
              }
              for (var i = 0, o = (n = Object.keys(this.overlayWidgets)).length;
                  i < o; i++) {
                var r = n[i];
                this._view.addOverlayWidget(this.overlayWidgets[r])
              }
              this._view.render(!1, !0), this.hasView = !0
            }
          }, t.prototype._createView = function () {
            var e = this;
            this._view = new d.View(this._commandService, this._configuration,
                this._themeService, this.viewModel, this.cursor,
                function (t, n) {
                  e.cursor && t.runCoreEditorCommand(e.cursor, n)
                });
            var t = this._view.getInternalEventBus();
            this.listenersToRemove.push(t.onDidGainFocus(function () {
              e._onDidFocusEditorText.fire(), e._onDidFocusEditor.fire()
            })), this.listenersToRemove.push(t.onDidScroll(function (t) {
              e._onDidScrollChange.fire(t)
            })), this.listenersToRemove.push(t.onDidLoseFocus(function () {
              e._onDidBlurEditorText.fire()
            })), this.listenersToRemove.push(t.onContextMenu(function (t) {
              e._onContextMenu.fire(t)
            })), this.listenersToRemove.push(t.onMouseDown(function (t) {
              e._onMouseDown.fire(t)
            })), this.listenersToRemove.push(t.onMouseUp(function (t) {
              e._onMouseUp.fire(t)
            })), this.listenersToRemove.push(t.onMouseDrag(function (t) {
              e._onMouseDrag.fire(t)
            })), this.listenersToRemove.push(t.onMouseDrop(function (t) {
              e._onMouseDrop.fire(t)
            })), this.listenersToRemove.push(t.onKeyUp(function (t) {
              e._onKeyUp.fire(t)
            })), this.listenersToRemove.push(t.onMouseMove(function (t) {
              e._onMouseMove.fire(t)
            })), this.listenersToRemove.push(t.onMouseLeave(function (t) {
              e._onMouseLeave.fire(t)
            })), this.listenersToRemove.push(t.onKeyDown(function (t) {
              e._onKeyDown.fire(t)
            }))
          }, t.prototype._detachModel = function () {
            var t = null;
            this._view
            && (this._view.dispose(), t = this._view.domNode.domNode, this._view = null);
            var n = e.prototype._detachModel.call(this);
            return t && this.domElement.removeChild(t), n
          }, t.prototype._registerDecorationType = function (e, t, n) {
            this._codeEditorService.registerDecorationType(e, t, n)
          }, t.prototype._removeDecorationType = function (e) {
            this._codeEditorService.removeDecorationType(e)
          }, t.prototype._resolveDecorationOptions = function (e, t) {
            return this._codeEditorService.resolveDecorationOptions(e, t)
          }, t = v([y(2, o.IInstantiationService), y(3, l.ICodeEditorService),
            y(4, r.ICommandService), y(5, s.IContextKeyService),
            y(6, m.IThemeService)], t)
        }(a.CommonCodeEditor);
        t.CodeEditorWidget = b;
        var w = function (e) {
              function t(t) {
                var n = e.call(this) || this;
                return n._onChange = n._register(
                    new p.Emitter), n.onChange = n._onChange.event, n._hasFocus = !1, n._domFocusTracker = n._register(
                    i.trackFocus(t)), n._domFocusTracker.addFocusListener(
                    function () {
                      n._hasFocus = !0, n._onChange.fire(void 0)
                    }), n._domFocusTracker.addBlurListener(function () {
                  n._hasFocus = !1, n._onChange.fire(void 0)
                }), n
              }

              return f(t, e), t.prototype.hasFocus = function () {
                return this._hasFocus
              }, t
            }(h.Disposable), S = encodeURIComponent(
                "<svg xmlns='http://www.w3.org/2000/svg' height='3' width='6'><g fill='"),
            E = encodeURIComponent(
                "'><polygon points='5.5,0 2.5,3 1.1,3 4.1,0'/><polygon points='4,0 6,2 6,0.6 5.4,0'/><polygon points='0,2 1,3 2.4,3 0,0.6'/></g></svg>");
        m.registerThemingParticipant(function (e, t) {
          var n = e.getColor(_.editorErrorBorder);
          n && t.addRule(
              ".monaco-editor .redsquiggly { border-bottom: 4px double " + n
              + "; }");
          var i = e.getColor(_.editorErrorForeground);
          i && t.addRule(
              '.monaco-editor .redsquiggly { background: url("data:image/svg+xml,'
              + C(i) + '") repeat-x bottom left; }');
          var o = e.getColor(_.editorWarningBorder);
          o && t.addRule(
              ".monaco-editor .greensquiggly { border-bottom: 4px double " + o
              + "; }");
          var r = e.getColor(_.editorWarningForeground);
          r && t.addRule(
              '.monaco-editor .greensquiggly { background: url("data:image/svg+xml;utf8,'
              + C(r) + '") repeat-x bottom left; }')
        })
      }),define(d[141], h([1, 0, 16, 31, 19, 42, 191, 13, 30, 14]),
      function (e, t, n, i, o, r, s, a, u, l) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var c = function (e) {
          function t(t, n, i, o, r, s, a) {
            return e.call(this, t, n, i, o, r, s, a) || this
          }

          return f(t, e), t.prototype._getContributions = function () {
            return [].concat(
                u.EditorBrowserRegistry.getEditorContributions()).concat(
                a.CommonEditorRegistry.getEditorContributions())
          }, t.prototype._getActions = function () {
            return a.CommonEditorRegistry.getEditorActions()
          }, t = v([y(2, n.IInstantiationService), y(3, r.ICodeEditorService),
            y(4, i.ICommandService), y(5, o.IContextKeyService),
            y(6, l.IThemeService)], t)
        }(s.CodeEditorWidget);
        t.CodeEditor = c
      }),define(d[193],
      h([1, 0, 302, 18, 3, 26, 4, 36, 27, 99, 16, 19, 42, 2, 20, 61, 138, 106,
        141, 90, 66, 86, 84, 11, 49, 14, 23, 140, 34, 504, 50, 308]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, C, b, w, S,
          E, L, x, N, M, T, k, I, D, O) {
        "use strict";

        function R(e, t, n, i, o) {
          return {range: new p.Range(e, t, n, i), options: o}
        }

        function P(e) {
          return e.modifiedEndLineNumber > 0
        }

        function A(e) {
          return e.originalEndLineNumber > 0
        }

        function F() {
          var e = document.createElement("div");
          return e.className = "diagonal-fill", e
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var W = function () {
          function e() {
            this._zones = [], this._zonesMap = {}, this._decorations = []
          }

          return e.prototype.getForeignViewZones = function (e) {
            var t = this;
            return e.filter(function (e) {
              return !t._zonesMap[String(e.id)]
            })
          }, e.prototype.clean = function (e) {
            var t = this;
            this._zones.length > 0 && e.changeViewZones(function (e) {
              for (var n = 0, i = t._zones.length; n < i; n++) {
                e.removeZone(
                    t._zones[n])
              }
            }), this._zones = [], this._zonesMap = {}, this._decorations.length
            > 0 && e.changeDecorations(function (e) {
              e.deltaDecorations(t._decorations, [])
            }), this._decorations = []
          }, e.prototype.apply = function (e, t, n) {
            var i = this;
            e.changeViewZones(function (e) {
              for (var t = 0, o = i._zones.length; t < o; t++) {
                e.removeZone(
                    i._zones[t]);
              }
              i._zones = [], i._zonesMap = {};
              for (var t = 0, r = n.zones.length; t < r; t++) {
                n.zones[t].suppressMouseDown = !0;
                var s = e.addZone(n.zones[t]);
                i._zones.push(s), i._zonesMap[String(s)] = !0
              }
            }), this._decorations = e.deltaDecorations(this._decorations,
                n.decorations), t && t.setZones(n.overviewZones)
          }, e
        }(), B = 0, V = function (e) {
          function t(n, o, r, a, l, c, h, p) {
            var f = e.call(this) || this;
            f._onDidDispose = f._register(
                new x.Emitter), f.onDidDispose = f._onDidDispose.event, f._onDidUpdateDiff = f._register(
                new x.Emitter), f.onDidUpdateDiff = f._onDidUpdateDiff.event, f._lastOriginalWarning = null, f._lastModifiedWarning = null, f._editorWorkerService = r, f._codeEditorService = c, f._contextKeyService = a.createScoped(
                n), f._contextKeyService.createKey("isInDiffEditor",
                !0), f._themeService = h, f._messageService = p, f.id = ++B, f._domElement = n, o = o
                || {}, f._renderSideBySide = !0, void 0 !== o.renderSideBySide
            && (f._renderSideBySide = o.renderSideBySide), f._ignoreTrimWhitespace = !0, void 0
            !== o.ignoreTrimWhitespace
            && (f._ignoreTrimWhitespace = o.ignoreTrimWhitespace), f._renderIndicators = !0, void 0
            !== o.renderIndicators
            && (f._renderIndicators = o.renderIndicators), f._originalIsEditable = !1, void 0
            !== o.originalEditable && (f._originalIsEditable = Boolean(
                o.originalEditable)), f._updateDecorationsRunner = f._register(
                new i.RunOnceScheduler(function () {
                  return f._updateDecorations()
                }, 0)), f._containerDomElement = document.createElement(
                "div"), f._containerDomElement.className = t._getClassName(
                f._themeService.getTheme(),
                f._renderSideBySide), f._containerDomElement.style.position = "relative", f._containerDomElement.style.height = "100%", f._domElement.appendChild(
                f._containerDomElement), f._overviewViewportDomElement = u.createFastDomNode(
                document.createElement(
                    "div")), f._overviewViewportDomElement.setClassName(
                "diffViewport"), f._overviewViewportDomElement.setPosition(
                "absolute"), f._overviewDomElement = document.createElement(
                "div"), f._overviewDomElement.className = "diffOverview", f._overviewDomElement.style.position = "absolute", f._overviewDomElement.appendChild(
                f._overviewViewportDomElement.domNode), f._register(
                s.addStandardDisposableListener(f._overviewDomElement,
                    "mousedown", function (e) {
                      f.modifiedEditor.delegateVerticalScrollbarMouseDown(e)
                    })), f._containerDomElement.appendChild(
                f._overviewDomElement), f._createLeftHandSide(), f._createRightHandSide(), f._beginUpdateDecorationsTimeout = -1, f._currentlyChangingViewZones = !1, f._diffComputationToken = 0, f._originalEditorState = new W, f._modifiedEditorState = new W, f._isVisible = !0, f._isHandlingScrollEvent = !1, f._width = 0, f._height = 0, f._reviewHeight = 0, f._lineChanges = null;
            var g = new L.ServiceCollection;
            g.set(d.IContextKeyService, f._contextKeyService);
            var m = l.createChild(g);
            return f._createLeftHandSideEditor(o,
                m), f._createRightHandSideEditor(o,
                m), f._reviewPane = new D.DiffReview(
                f), f._containerDomElement.appendChild(
                f._reviewPane.domNode.domNode), f._containerDomElement.appendChild(
                f._reviewPane.shadow.domNode), f._containerDomElement.appendChild(
                f._reviewPane.actionBarContainer.domNode), o.automaticLayout
            && (f._measureDomElementToken = window.setInterval(function () {
              return f._measureDomElement(!1)
            }, 100)), f._enableSplitViewResizing = !0, void 0
            !== o.enableSplitViewResizing
            && (f._enableSplitViewResizing = o.enableSplitViewResizing), f._renderSideBySide
                ? f._setStrategy(
                    new j(f._createDataSource(), f._enableSplitViewResizing))
                : f._setStrategy(new G(f._createDataSource(),
                    f._enableSplitViewResizing)), f._codeEditorService.addDiffEditor(
                f), f._register(h.onThemeChange(function (e) {
              f._strategy && f._strategy.applyColors(e)
              && f._updateDecorationsRunner.schedule(), f._containerDomElement.className = t._getClassName(
                  f._themeService.getTheme(), f._renderSideBySide)
            })), f
          }

          return f(t, e), Object.defineProperty(t.prototype,
              "ignoreTrimWhitespace", {
                get: function () {
                  return this._ignoreTrimWhitespace
                }, enumerable: !0, configurable: !0
              }), Object.defineProperty(t.prototype, "renderSideBySide", {
            get: function () {
              return this._renderSideBySide
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "renderIndicators", {
            get: function () {
              return this._renderIndicators
            }, enumerable: !0, configurable: !0
          }), t.prototype.hasWidgetFocus = function () {
            return s.isAncestor(document.activeElement, this._domElement)
          }, t.prototype.diffReviewNext = function () {
            this._reviewPane.next()
          }, t.prototype.diffReviewPrev = function () {
            this._reviewPane.prev()
          }, t._getClassName = function (e, t) {
            var n = "monaco-diff-editor monaco-editor-background ";
            return t && (n += "side-by-side "), n += M.getThemeTypeSelector(
                e.type)
          }, t.prototype._recreateOverviewRulers = function () {
            this._originalOverviewRuler
            && (this._overviewDomElement.removeChild(
                this._originalOverviewRuler.getDomNode()), this._originalOverviewRuler.dispose()), this._originalOverviewRuler = this.originalEditor.createOverviewRuler(
                "original diffOverviewRuler", 4,
                Number.MAX_VALUE), this._overviewDomElement.appendChild(
                this._originalOverviewRuler.getDomNode()), this._modifiedOverviewRuler
            && (this._overviewDomElement.removeChild(
                this._modifiedOverviewRuler.getDomNode()), this._modifiedOverviewRuler.dispose()), this._modifiedOverviewRuler = this.modifiedEditor.createOverviewRuler(
                "modified diffOverviewRuler", 4,
                Number.MAX_VALUE), this._overviewDomElement.appendChild(
                this._modifiedOverviewRuler.getDomNode()), this._layoutOverviewRulers()
          }, t.prototype._createLeftHandSide = function () {
            this._originalDomNode = document.createElement(
                "div"), this._originalDomNode.className = "editor original", this._originalDomNode.style.position = "absolute", this._originalDomNode.style.height = "100%", this._containerDomElement.appendChild(
                this._originalDomNode)
          }, t.prototype._createRightHandSide = function () {
            this._modifiedDomNode = document.createElement(
                "div"), this._modifiedDomNode.className = "editor modified", this._modifiedDomNode.style.position = "absolute", this._modifiedDomNode.style.height = "100%", this._containerDomElement.appendChild(
                this._modifiedDomNode)
          }, t.prototype._createLeftHandSideEditor = function (e, t) {
            var n = this;
            this.originalEditor = this._createInnerEditor(t,
                this._originalDomNode, this._adjustOptionsForLeftHandSide(e,
                    this._originalIsEditable)), this._register(
                this.originalEditor.onDidScrollChange(function (e) {
                  n._isHandlingScrollEvent || (e.scrollTopChanged
                      || e.scrollLeftChanged || e.scrollHeightChanged)
                  && (n._isHandlingScrollEvent = !0, n.modifiedEditor.setScrollPosition(
                      {
                        scrollLeft: e.scrollLeft,
                        scrollTop: e.scrollTop
                      }), n._isHandlingScrollEvent = !1, n._layoutOverviewViewport())
                })), this._register(
                this.originalEditor.onDidChangeViewZones(function () {
                  n._onViewZonesChanged()
                })), this._register(
                this.originalEditor.onDidChangeModelContent(function () {
                  n._isVisible && n._beginUpdateDecorationsSoon()
                }))
          }, t.prototype._createRightHandSideEditor = function (e, t) {
            var n = this;
            this.modifiedEditor = this._createInnerEditor(t,
                this._modifiedDomNode,
                this._adjustOptionsForRightHandSide(e)), this._register(
                this.modifiedEditor.onDidScrollChange(function (e) {
                  n._isHandlingScrollEvent || (e.scrollTopChanged
                      || e.scrollLeftChanged || e.scrollHeightChanged)
                  && (n._isHandlingScrollEvent = !0, n.originalEditor.setScrollPosition(
                      {
                        scrollLeft: e.scrollLeft,
                        scrollTop: e.scrollTop
                      }), n._isHandlingScrollEvent = !1, n._layoutOverviewViewport())
                })), this._register(
                this.modifiedEditor.onDidChangeViewZones(function () {
                  n._onViewZonesChanged()
                })), this._register(
                this.modifiedEditor.onDidChangeConfiguration(function (e) {
                  e.fontInfo && n.modifiedEditor.getModel()
                  && n._onViewZonesChanged()
                })), this._register(
                this.modifiedEditor.onDidChangeModelContent(function () {
                  n._isVisible && n._beginUpdateDecorationsSoon()
                }))
          }, t.prototype._createInnerEditor = function (e, t, n) {
            return e.createInstance(b.CodeEditor, t, n)
          }, t.prototype.destroy = function () {
            this.dispose()
          }, t.prototype.dispose = function () {
            this._codeEditorService.removeDiffEditor(
                this), window.clearInterval(
                this._measureDomElementToken), this._cleanViewZonesAndDecorations(), this._originalOverviewRuler.dispose(), this._modifiedOverviewRuler.dispose(), this.originalEditor.dispose(), this.modifiedEditor.dispose(), this._strategy.dispose(), this._reviewPane.dispose(), this._onDidDispose.fire(), e.prototype.dispose.call(
                this)
          }, t.prototype.getId = function () {
            return this.getEditorType() + ":" + this.id
          }, t.prototype.getEditorType = function () {
            return g.EditorType.IDiffEditor
          }, t.prototype.getLineChanges = function () {
            return this._lineChanges
          }, t.prototype.getOriginalEditor = function () {
            return this.originalEditor
          }, t.prototype.getModifiedEditor = function () {
            return this.modifiedEditor
          }, t.prototype.updateOptions = function (e) {
            var n = !1;
            void 0 !== e.renderSideBySide && this._renderSideBySide
            !== e.renderSideBySide
            && (this._renderSideBySide = e.renderSideBySide, n = !0);
            var i = !1;
            void 0 !== e.ignoreTrimWhitespace && this._ignoreTrimWhitespace
            !== e.ignoreTrimWhitespace
            && (this._ignoreTrimWhitespace = e.ignoreTrimWhitespace, i = !0), void 0
            !== e.renderIndicators && this._renderIndicators
            !== e.renderIndicators
            && (this._renderIndicators = e.renderIndicators, i = !0), i
            && this._beginUpdateDecorations(), void 0 !== e.originalEditable
            && (this._originalIsEditable = Boolean(
                e.originalEditable)), this.modifiedEditor.updateOptions(
                this._adjustOptionsForRightHandSide(
                    e)), this.originalEditor.updateOptions(
                this._adjustOptionsForLeftHandSide(e,
                    this._originalIsEditable)), void 0
            !== e.enableSplitViewResizing
            && (this._enableSplitViewResizing = e.enableSplitViewResizing), this._strategy.setEnableSplitViewResizing(
                this._enableSplitViewResizing), n && (this._renderSideBySide
                ? this._setStrategy(new j(this._createDataSource(),
                    this._enableSplitViewResizing)) : this._setStrategy(
                    new G(this._createDataSource(),
                        this._enableSplitViewResizing)), this._containerDomElement.className = t._getClassName(
                this._themeService.getTheme(), this._renderSideBySide))
          }, t.prototype.getValue = function (e) {
            return void 0 === e && (e = null), this.modifiedEditor.getValue(e)
          }, t.prototype.getModel = function () {
            return {
              original: this.originalEditor.getModel(),
              modified: this.modifiedEditor.getModel()
            }
          }, t.prototype.setModel = function (e) {
            if (e && (!e.original || !e.modified)) {
              throw new Error(
                  e.original
                      ? "DiffEditorWidget.setModel: Modified model is null"
                      : "DiffEditorWidget.setModel: Original model is null");
            }
            this._cleanViewZonesAndDecorations(), this.originalEditor.setModel(
                e ? e.original : null), this.modifiedEditor.setModel(
                e ? e.modified
                    : null), this._updateDecorationsRunner.cancel(), e
            && (this.originalEditor.setScrollTop(
                0), this.modifiedEditor.setScrollTop(
                0)), this._lineChanges = null, this._diffComputationToken++, e
                ? (this._recreateOverviewRulers(), this._beginUpdateDecorations())
                : this._lineChanges = null, this._layoutOverviewViewport()
          }, t.prototype.getDomNode = function () {
            return this._domElement
          }, t.prototype.getVisibleColumnFromPosition = function (e) {
            return this.modifiedEditor.getVisibleColumnFromPosition(e)
          }, t.prototype.getPosition = function () {
            return this.modifiedEditor.getPosition()
          }, t.prototype.setPosition = function (e, t, n, i) {
            this.modifiedEditor.setPosition(e, t, n, i)
          }, t.prototype.revealLine = function (e) {
            this.modifiedEditor.revealLine(e)
          }, t.prototype.revealLineInCenter = function (e) {
            this.modifiedEditor.revealLineInCenter(e)
          }, t.prototype.revealLineInCenterIfOutsideViewport = function (e) {
            this.modifiedEditor.revealLineInCenterIfOutsideViewport(e)
          }, t.prototype.revealPosition = function (e, t, n) {
            void 0 === t && (t = !1), void 0 === n
            && (n = !1), this.modifiedEditor.revealPosition(e, t, n)
          }, t.prototype.revealPositionInCenter = function (e) {
            this.modifiedEditor.revealPositionInCenter(e)
          }, t.prototype.revealPositionInCenterIfOutsideViewport = function (e) {
            this.modifiedEditor.revealPositionInCenterIfOutsideViewport(e)
          }, t.prototype.getSelection = function () {
            return this.modifiedEditor.getSelection()
          }, t.prototype.getSelections = function () {
            return this.modifiedEditor.getSelections()
          }, t.prototype.setSelection = function (e, t, n, i) {
            this.modifiedEditor.setSelection(e, t, n, i)
          }, t.prototype.setSelections = function (e) {
            this.modifiedEditor.setSelections(e)
          }, t.prototype.revealLines = function (e, t) {
            this.modifiedEditor.revealLines(e, t)
          }, t.prototype.revealLinesInCenter = function (e, t) {
            this.modifiedEditor.revealLinesInCenter(e, t)
          }, t.prototype.revealLinesInCenterIfOutsideViewport = function (e,
              t) {
            this.modifiedEditor.revealLinesInCenterIfOutsideViewport(e, t)
          }, t.prototype.revealRange = function (e, t, n) {
            void 0 === t && (t = !1), void 0 === n
            && (n = !0), this.modifiedEditor.revealRange(e, t, n)
          }, t.prototype.revealRangeInCenter = function (e) {
            this.modifiedEditor.revealRangeInCenter(e)
          }, t.prototype.revealRangeInCenterIfOutsideViewport = function (e) {
            this.modifiedEditor.revealRangeInCenterIfOutsideViewport(e)
          }, t.prototype.revealRangeAtTop = function (e) {
            this.modifiedEditor.revealRangeAtTop(e)
          }, t.prototype.getActions = function () {
            return this.modifiedEditor.getActions()
          }, t.prototype.getSupportedActions = function () {
            return this.modifiedEditor.getSupportedActions()
          }, t.prototype.getAction = function (e) {
            return this.modifiedEditor.getAction(e)
          }, t.prototype.saveViewState = function () {
            return {
              original: this.originalEditor.saveViewState(),
              modified: this.modifiedEditor.saveViewState()
            }
          }, t.prototype.restoreViewState = function (e) {
            if (e.original && e.original) {
              var t = e;
              this.originalEditor.restoreViewState(
                  t.original), this.modifiedEditor.restoreViewState(t.modified)
            }
          }, t.prototype.layout = function (e) {
            this._measureDomElement(!1, e)
          }, t.prototype.focus = function () {
            this.modifiedEditor.focus()
          }, t.prototype.isFocused = function () {
            return this.originalEditor.isFocused()
                || this.modifiedEditor.isFocused()
          }, t.prototype.onVisible = function () {
            this._isVisible = !0, this.originalEditor.onVisible(), this.modifiedEditor.onVisible(), this._beginUpdateDecorations()
          }, t.prototype.onHide = function () {
            this._isVisible = !1, this.originalEditor.onHide(), this.modifiedEditor.onHide(), this._cleanViewZonesAndDecorations()
          }, t.prototype.trigger = function (e, t, n) {
            this.modifiedEditor.trigger(e, t, n)
          }, t.prototype.changeDecorations = function (e) {
            return this.modifiedEditor.changeDecorations(e)
          }, t.prototype._measureDomElement = function (e, t) {
            if ((t = t || {
                  width: this._containerDomElement.clientWidth,
                  height: this._containerDomElement.clientHeight
                }).width
                <= 0) {
              return this._width = 0, this._height = 0, void (this._reviewHeight = 0);
            }
            (e || t.width !== this._width || t.height !== this._height)
            && (this._width = t.width, this._height = t.height, this._reviewHeight = this._reviewPane.isVisible()
                ? this._height : 0, this._doLayout())
          }, t.prototype._layoutOverviewRulers = function () {
            var e = t.ENTIRE_DIFF_OVERVIEW_WIDTH - 2 * t.ONE_OVERVIEW_WIDTH;
            this.modifiedEditor.getLayoutInfo()
            && (this._originalOverviewRuler.setLayout({
              top: 0,
              width: t.ONE_OVERVIEW_WIDTH,
              right: e + t.ONE_OVERVIEW_WIDTH,
              height: this._height - this._reviewHeight
            }), this._modifiedOverviewRuler.setLayout({
              top: 0,
              right: 0,
              width: t.ONE_OVERVIEW_WIDTH,
              height: this._height - this._reviewHeight
            }))
          }, t.prototype._onViewZonesChanged = function () {
            this._currentlyChangingViewZones
            || this._updateDecorationsRunner.schedule()
          }, t.prototype._beginUpdateDecorationsSoon = function () {
            var e = this;
            -1 !== this._beginUpdateDecorationsTimeout && (window.clearTimeout(
                this._beginUpdateDecorationsTimeout), this._beginUpdateDecorationsTimeout = -1), this._beginUpdateDecorationsTimeout = window.setTimeout(
                function () {
                  return e._beginUpdateDecorations()
                }, t.UPDATE_DIFF_DECORATIONS_DELAY)
          }, t._equals = function (e, t) {
            return !e && !t || !(!e || !t) && e.toString() === t.toString()
          }, t.prototype._beginUpdateDecorations = function () {
            var e = this;
            this._beginUpdateDecorationsTimeout = -1;
            var i = this.originalEditor.getModel(),
                o = this.modifiedEditor.getModel();
            if (i && o) {
              this._diffComputationToken++;
              var r = this._diffComputationToken;
              this._editorWorkerService.canComputeDiff(i.uri, o.uri)
                  ? this._editorWorkerService.computeDiff(i.uri, o.uri,
                      this._ignoreTrimWhitespace).then(function (t) {
                    r === e._diffComputationToken && i
                    === e.originalEditor.getModel() && o
                    === e.modifiedEditor.getModel()
                    && (e._lineChanges = t, e._updateDecorationsRunner.schedule(), e._onDidUpdateDiff.fire())
                  }, function (t) {
                    r === e._diffComputationToken && i
                    === e.originalEditor.getModel() && o
                    === e.modifiedEditor.getModel()
                    && (e._lineChanges = null, e._updateDecorationsRunner.schedule())
                  }) : t._equals(i.uri, this._lastOriginalWarning) && t._equals(
                      o.uri, this._lastModifiedWarning)
                  || (this._lastOriginalWarning = i.uri, this._lastModifiedWarning = o.uri, this._messageService.show(
                      a.default.Warning, n.localize(0, null)))
            }
          }, t.prototype._cleanViewZonesAndDecorations = function () {
            this._originalEditorState.clean(
                this.originalEditor), this._modifiedEditorState.clean(
                this.modifiedEditor)
          }, t.prototype._updateDecorations = function () {
            if (this.originalEditor.getModel()
                && this.modifiedEditor.getModel()) {
              var e = this._lineChanges || [],
                  t = this._originalEditorState.getForeignViewZones(
                      this.originalEditor.getWhitespaces()),
                  n = this._modifiedEditorState.getForeignViewZones(
                      this.modifiedEditor.getWhitespaces()),
                  i = this._strategy.getEditorsDiffDecorations(e,
                      this._ignoreTrimWhitespace, this._renderIndicators, t, n,
                      this.originalEditor, this.modifiedEditor);
              try {
                this._currentlyChangingViewZones = !0, this._originalEditorState.apply(
                    this.originalEditor, this._originalOverviewRuler,
                    i.original), this._modifiedEditorState.apply(
                    this.modifiedEditor, this._modifiedOverviewRuler,
                    i.modified)
              } finally {
                this._currentlyChangingViewZones = !1
              }
            }
          }, t.prototype._adjustOptionsForSubEditor = function (e) {
            var t = r.clone(e || {});
            return t.inDiffEditor = !0, t.wordWrap = "off", t.wordWrapMinified = !1, t.automaticLayout = !1, t.scrollbar = t.scrollbar
                || {}, t.scrollbar.vertical = "visible", t.folding = !1, t.codeLens = !1, t.fixedOverflowWidgets = !0, t.lineDecorationsWidth = "2ch", t.minimap
            || (t.minimap = {}), t.minimap.enabled = !1, t
          }, t.prototype._adjustOptionsForLeftHandSide = function (e, t) {
            var n = this._adjustOptionsForSubEditor(e);
            return n.readOnly = !t, n.overviewRulerLanes = 1, n.extraEditorClassName = "original-in-monaco-diff-editor", n
          }, t.prototype._adjustOptionsForRightHandSide = function (e) {
            var n = this._adjustOptionsForSubEditor(e);
            return n.revealHorizontalRightPadding = N.EDITOR_DEFAULTS.viewInfo.revealHorizontalRightPadding
                + t.ENTIRE_DIFF_OVERVIEW_WIDTH, n.scrollbar.verticalHasArrows = !1, n.extraEditorClassName = "modified-in-monaco-diff-editor", n
          }, t.prototype.doLayout = function () {
            this._measureDomElement(!0)
          }, t.prototype._doLayout = function () {
            var e = this._strategy.layout();
            this._originalDomNode.style.width = e
                + "px", this._originalDomNode.style.left = "0px", this._modifiedDomNode.style.width = this._width
                - e + "px", this._modifiedDomNode.style.left = e
                + "px", this._overviewDomElement.style.top = "0px", this._overviewDomElement.style.height = this._height
                - this._reviewHeight
                + "px", this._overviewDomElement.style.width = t.ENTIRE_DIFF_OVERVIEW_WIDTH
                + "px", this._overviewDomElement.style.left = this._width
                - t.ENTIRE_DIFF_OVERVIEW_WIDTH
                + "px", this._overviewViewportDomElement.setWidth(
                t.ENTIRE_DIFF_OVERVIEW_WIDTH), this._overviewViewportDomElement.setHeight(
                30), this.originalEditor.layout({
              width: e,
              height: this._height - this._reviewHeight
            }), this.modifiedEditor.layout({
              width: this._width - e - t.ENTIRE_DIFF_OVERVIEW_WIDTH,
              height: this._height - this._reviewHeight
            }), (this._originalOverviewRuler || this._modifiedOverviewRuler)
            && this._layoutOverviewRulers(), this._reviewPane.layout(
                this._height - this._reviewHeight, this._width,
                this._reviewHeight), this._layoutOverviewViewport()
          }, t.prototype._layoutOverviewViewport = function () {
            var e = this._computeOverviewViewport();
            e ? (this._overviewViewportDomElement.setTop(
                    e.top), this._overviewViewportDomElement.setHeight(e.height))
                : (this._overviewViewportDomElement.setTop(
                    0), this._overviewViewportDomElement.setHeight(0))
          }, t.prototype._computeOverviewViewport = function () {
            var e = this.modifiedEditor.getLayoutInfo();
            if (!e) {
              return null;
            }
            var t = this.modifiedEditor.getScrollTop(),
                n = this.modifiedEditor.getScrollHeight(),
                i = Math.max(0, e.contentHeight), o = Math.max(0, i - 0),
                r = n > 0 ? o / n : 0;
            return {
              height: Math.max(0, Math.floor(e.contentHeight * r)),
              top: Math.floor(t * r)
            }
          }, t.prototype._createDataSource = function () {
            var e = this;
            return {
              getWidth: function () {
                return e._width
              }, getHeight: function () {
                return e._height - e._reviewHeight
              }, getContainerDomNode: function () {
                return e._containerDomElement
              }, relayoutEditors: function () {
                e._doLayout()
              }, getOriginalEditor: function () {
                return e.originalEditor
              }, getModifiedEditor: function () {
                return e.modifiedEditor
              }
            }
          }, t.prototype._setStrategy = function (e) {
            this._strategy
            && this._strategy.dispose(), this._strategy = e, e.applyColors(
                this._themeService.getTheme()), this._lineChanges
            && this._updateDecorations(), this._measureDomElement(!0)
          }, t.prototype._getLineChangeAtOrBeforeLineNumber = function (e, t) {
            if (0 === this._lineChanges.length || e < t(
                this._lineChanges[0])) {
              return null;
            }
            for (var n = 0, i = this._lineChanges.length - 1; n < i;) {
              var o = Math.floor((n + i) / 2), r = t(this._lineChanges[o]),
                  s = o + 1 <= i ? t(this._lineChanges[o + 1])
                      : Number.MAX_VALUE;
              e < r ? i = o - 1 : e >= s ? n = o + 1 : (n = o, i = o)
            }
            return this._lineChanges[n]
          }, t.prototype._getEquivalentLineForOriginalLineNumber = function (e) {
            var t = this._getLineChangeAtOrBeforeLineNumber(e, function (e) {
              return e.originalStartLineNumber
            });
            if (!t) {
              return e;
            }
            var n = t.originalStartLineNumber + (t.originalEndLineNumber > 0
                    ? -1 : 0),
                i = t.modifiedStartLineNumber + (t.modifiedEndLineNumber > 0
                    ? -1 : 0),
                o = t.originalEndLineNumber > 0 ? t.originalEndLineNumber
                    - t.originalStartLineNumber + 1 : 0,
                r = t.modifiedEndLineNumber > 0 ? t.modifiedEndLineNumber
                    - t.modifiedStartLineNumber + 1 : 0, s = e - n;
            return s <= o ? i + Math.min(s, r) : i + r - o + s
          }, t.prototype._getEquivalentLineForModifiedLineNumber = function (e) {
            var t = this._getLineChangeAtOrBeforeLineNumber(e, function (e) {
              return e.modifiedStartLineNumber
            });
            if (!t) {
              return e;
            }
            var n = t.originalStartLineNumber + (t.originalEndLineNumber > 0
                    ? -1 : 0),
                i = t.modifiedStartLineNumber + (t.modifiedEndLineNumber > 0
                    ? -1 : 0),
                o = t.originalEndLineNumber > 0 ? t.originalEndLineNumber
                    - t.originalStartLineNumber + 1 : 0,
                r = t.modifiedEndLineNumber > 0 ? t.modifiedEndLineNumber
                    - t.modifiedStartLineNumber + 1 : 0, s = e - i;
            return s <= r ? n + Math.min(s, o) : n + o - r + s
          }, t.prototype.getDiffLineInformationForOriginal = function (e) {
            return this._lineChanges ? {
              equivalentLineNumber: this._getEquivalentLineForOriginalLineNumber(
                  e)
            } : null
          }, t.prototype.getDiffLineInformationForModified = function (e) {
            return this._lineChanges ? {
              equivalentLineNumber: this._getEquivalentLineForModifiedLineNumber(
                  e)
            } : null
          }, t.ONE_OVERVIEW_WIDTH = 15, t.ENTIRE_DIFF_OVERVIEW_WIDTH = 30, t.UPDATE_DIFF_DECORATIONS_DELAY = 200, t = v(
              [y(2, m.IEditorWorkerService), y(3, d.IContextKeyService),
                y(4, c.IInstantiationService), y(5, h.ICodeEditorService),
                y(6, M.IThemeService), y(7, O.IMessageService)], t)
        }(o.Disposable);
        t.DiffEditorWidget = V;
        var H = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n._dataSource = t, n
          }

          return f(t, e), t.prototype.applyColors = function (e) {
            var t = (e.getColor(T.diffInserted)
                    || T.defaultInsertColor).transparent(2),
                n = (e.getColor(T.diffRemoved)
                    || T.defaultRemoveColor).transparent(2),
                i = !t.equals(this._insertColor) || !n.equals(
                    this._removeColor);
            return this._insertColor = t, this._removeColor = n, i
          }, t.prototype.getEditorsDiffDecorations = function (e, t, n, i, o, r,
              s) {
            o = o.sort(function (e, t) {
              return e.afterLineNumber - t.afterLineNumber
            }), i = i.sort(function (e, t) {
              return e.afterLineNumber - t.afterLineNumber
            });
            var a = this._getViewZones(e, i, o, r, s, n),
                u = this._getOriginalEditorDecorations(e, t, n, r, s),
                l = this._getModifiedEditorDecorations(e, t, n, r, s);
            return {
              original: {
                decorations: u.decorations,
                overviewZones: u.overviewZones,
                zones: a.original
              },
              modified: {
                decorations: l.decorations,
                overviewZones: l.overviewZones,
                zones: a.modified
              }
            }
          }, t.prototype._getViewZones = function (e, t, n, i, o, r) {
            return null
          }, t.prototype._getOriginalEditorDecorations = function (e, t, n, i,
              o) {
            return null
          }, t.prototype._getModifiedEditorDecorations = function (e, t, n, i,
              o) {
            return null
          }, t
        }(o.Disposable), z = function () {
          function e(e) {
            this._source = e, this._index = -1, this.advance()
          }

          return e.prototype.advance = function () {
            this._index++, this._index < this._source.length
                ? this.current = this._source[this._index] : this.current = null
          }, e
        }(), K = function () {
          function e(e, t, n) {
            this.lineChanges = e, this.originalForeignVZ = t, this.modifiedForeignVZ = n
          }

          return e.prototype.getViewZones = function () {
            for (var e = {original: [], modified: []}, t = 0, n = 0, i = 0,
                o = 0, r = 0, s = 0, a = function (e, t) {
                  return e.afterLineNumber - t.afterLineNumber
                }, u = function (e, t) {
                  if (null === t.domNode && e.length > 0) {
                    var n = e[e.length - 1];
                    if (n.afterLineNumber === t.afterLineNumber && null
                        === n.domNode) {
                      return void (n.heightInLines += t.heightInLines)
                    }
                  }
                  e.push(t)
                }, l = new z(this.modifiedForeignVZ),
                c = new z(this.originalForeignVZ), d = 0,
                h = this.lineChanges.length; d <= h; d++) {
              var p = d < h ? this.lineChanges[d] : null;
              null !== p ? (i = p.originalStartLineNumber
                      + (p.originalEndLineNumber > 0 ? -1
                          : 0), o = p.modifiedStartLineNumber
                      + (p.modifiedEndLineNumber > 0 ? -1
                          : 0), n = p.originalEndLineNumber > 0
                      ? p.originalEndLineNumber - p.originalStartLineNumber + 1
                      : 0, t = p.modifiedEndLineNumber > 0 ? p.modifiedEndLineNumber
                      - p.modifiedStartLineNumber + 1 : 0, r = Math.max(
                      p.originalStartLineNumber,
                      p.originalEndLineNumber), s = Math.max(
                      p.modifiedStartLineNumber, p.modifiedEndLineNumber))
                  : (r = i += 1e7 + n, s = o += 1e7 + t);
              for (var f = [], g = [];
                  l.current && l.current.afterLineNumber <= s;) {
                m = void 0;
                m = l.current.afterLineNumber <= o ? i - o
                    + l.current.afterLineNumber : r, f.push({
                  afterLineNumber: m,
                  heightInLines: l.current.heightInLines,
                  domNode: null
                }), l.advance()
              }
              for (; c.current && c.current.afterLineNumber <= r;) {
                var m = void 0;
                m = c.current.afterLineNumber <= i ? o - i
                    + c.current.afterLineNumber : s, g.push({
                  afterLineNumber: m,
                  heightInLines: c.current.heightInLines,
                  domNode: null
                }), c.advance()
              }
              if (null !== p && P(p) && (v = this._produceOriginalFromDiff(p, n,
                  t)) && f.push(v), null !== p && A(p)) {
                var v = this._produceModifiedFromDiff(p, n, t);
                v && g.push(v)
              }
              var _ = 0, y = 0;
              for (f = f.sort(a), g = g.sort(a);
                  _ < f.length && y < g.length;) {
                var C = f[_], b = g[y], w = C.afterLineNumber - i,
                    S = b.afterLineNumber - o;
                w < S ? (u(e.original, C), _++) : S < w ? (u(e.modified,
                    b), y++) : C.shouldNotShrink ? (u(e.original, C), _++)
                    : b.shouldNotShrink ? (u(e.modified, b), y++)
                        : C.heightInLines >= b.heightInLines
                            ? (C.heightInLines -= b.heightInLines, y++)
                            : (b.heightInLines -= C.heightInLines, _++)
              }
              for (; _ < f.length;) {
                u(e.original, f[_]), _++;
              }
              for (; y < g.length;) {
                u(e.modified, g[y]), y++
              }
            }
            var E = function (e) {
              e.domNode || (e.domNode = F())
            };
            return e.original.forEach(E), e.modified.forEach(E), e
          }, e
        }(), U = {
          charDelete: I.ModelDecorationOptions.register(
              {className: "char-delete"}),
          charDeleteWholeLine: I.ModelDecorationOptions.register(
              {className: "char-delete", isWholeLine: !0}),
          charInsert: I.ModelDecorationOptions.register(
              {className: "char-insert"}),
          charInsertWholeLine: I.ModelDecorationOptions.register(
              {className: "char-insert", isWholeLine: !0}),
          lineInsert: I.ModelDecorationOptions.register({
            className: "line-insert",
            marginClassName: "line-insert",
            isWholeLine: !0
          }),
          lineInsertWithSign: I.ModelDecorationOptions.register({
            className: "line-insert",
            linesDecorationsClassName: "insert-sign",
            marginClassName: "line-insert",
            isWholeLine: !0
          }),
          lineDelete: I.ModelDecorationOptions.register({
            className: "line-delete",
            marginClassName: "line-delete",
            isWholeLine: !0
          }),
          lineDeleteWithSign: I.ModelDecorationOptions.register({
            className: "line-delete",
            linesDecorationsClassName: "delete-sign",
            marginClassName: "line-delete",
            isWholeLine: !0
          }),
          lineDeleteMargin: I.ModelDecorationOptions.register(
              {marginClassName: "line-delete"})
        }, j = function (e) {
          function t(t, n) {
            var i = e.call(this, t) || this;
            return i._disableSash = !1
                === n, i._sashRatio = null, i._sashPosition = null, i._sash = i._register(
                new l.Sash(i._dataSource.getContainerDomNode(),
                    i)), i._disableSash
            && i._sash.disable(), i._sash.addListener("start", function () {
              return i.onSashDragStart()
            }), i._sash.addListener("change", function (e) {
              return i.onSashDrag(e)
            }), i._sash.addListener("end", function () {
              return i.onSashDragEnd()
            }), i._sash.addListener("reset", function () {
              return i.onSashReset()
            }), i
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.prototype.setEnableSplitViewResizing = function (e) {
            var t = !1 === e;
            this._disableSash !== t && (this._disableSash = t, this._disableSash
                ? this._sash.disable() : this._sash.enable())
          }, t.prototype.layout = function (e) {
            void 0 === e && (e = this._sashRatio);
            var n = this._dataSource.getWidth() - V.ENTIRE_DIFF_OVERVIEW_WIDTH,
                i = Math.floor((e || .5) * n), o = Math.floor(.5 * n);
            return i = this._disableSash ? o : i || o, n > 2
            * t.MINIMUM_EDITOR_WIDTH ? (i < t.MINIMUM_EDITOR_WIDTH
            && (i = t.MINIMUM_EDITOR_WIDTH), i > n - t.MINIMUM_EDITOR_WIDTH
            && (i = n - t.MINIMUM_EDITOR_WIDTH)) : i = o, this._sashPosition
            !== i
            && (this._sashPosition = i, this._sash.layout()), this._sashPosition
          }, t.prototype.onSashDragStart = function () {
            this._startSashPosition = this._sashPosition
          }, t.prototype.onSashDrag = function (e) {
            var t = this._dataSource.getWidth() - V.ENTIRE_DIFF_OVERVIEW_WIDTH,
                n = this.layout(
                    (this._startSashPosition + (e.currentX - e.startX)) / t);
            this._sashRatio = n / t, this._dataSource.relayoutEditors()
          }, t.prototype.onSashDragEnd = function () {
            this._sash.layout()
          }, t.prototype.onSashReset = function () {
            this._sashRatio = .5, this._dataSource.relayoutEditors(), this._sash.layout()
          }, t.prototype.getVerticalSashTop = function (e) {
            return 0
          }, t.prototype.getVerticalSashLeft = function (e) {
            return this._sashPosition
          }, t.prototype.getVerticalSashHeight = function (e) {
            return this._dataSource.getHeight()
          }, t.prototype._getViewZones = function (e, t, n, i, o) {
            return new q(e, t, n).getViewZones()
          }, t.prototype._getOriginalEditorDecorations = function (e, t, n, i,
              o) {
            for (var r = {decorations: [], overviewZones: []}, s = i.getModel(),
                a = 0, u = e.length; a < u; a++) {
              var l = e[a];
              if (A(l)) {
                r.decorations.push({
                  range: new p.Range(l.originalStartLineNumber, 1,
                      l.originalEndLineNumber, Number.MAX_VALUE),
                  options: n ? U.lineDeleteWithSign : U.lineDelete
                }), P(l) && l.charChanges || r.decorations.push(
                    R(l.originalStartLineNumber, 1, l.originalEndLineNumber,
                        Number.MAX_VALUE, U.charDeleteWholeLine));
                var c = this._removeColor.toString();
                if (r.overviewZones.push(
                    new k.OverviewRulerZone(l.originalStartLineNumber,
                        l.originalEndLineNumber, g.OverviewRulerLane.Full, 0, c,
                        c, c)), l.charChanges) {
                  for (var d = 0,
                      h = l.charChanges.length; d < h; d++) {
                    var f = l.charChanges[d];
                    if (A(f)) {
                      if (t) {
                        for (var m = f.originalStartLineNumber;
                            m <= f.originalEndLineNumber; m++) {
                          var v = void 0, _ = void 0;
                          v = m === f.originalStartLineNumber
                              ? f.originalStartColumn
                              : s.getLineFirstNonWhitespaceColumn(m), _ = m
                          === f.originalEndLineNumber ? f.originalEndColumn
                              : s.getLineLastNonWhitespaceColumn(
                                  m), r.decorations.push(
                              R(m, v, m, _, U.charDelete))
                        }
                      } else {
                        r.decorations.push(
                            R(f.originalStartLineNumber, f.originalStartColumn,
                                f.originalEndLineNumber, f.originalEndColumn,
                                U.charDelete))
                      }
                    }
                  }
                }
              }
            }
            return r
          }, t.prototype._getModifiedEditorDecorations = function (e, t, n, i,
              o) {
            for (var r = {decorations: [], overviewZones: []}, s = o.getModel(),
                a = 0, u = e.length; a < u; a++) {
              var l = e[a];
              if (P(l)) {
                r.decorations.push({
                  range: new p.Range(l.modifiedStartLineNumber, 1,
                      l.modifiedEndLineNumber, Number.MAX_VALUE),
                  options: n ? U.lineInsertWithSign : U.lineInsert
                }), A(l) && l.charChanges || r.decorations.push(
                    R(l.modifiedStartLineNumber, 1, l.modifiedEndLineNumber,
                        Number.MAX_VALUE, U.charInsertWholeLine));
                var c = this._insertColor.toString();
                if (r.overviewZones.push(
                    new k.OverviewRulerZone(l.modifiedStartLineNumber,
                        l.modifiedEndLineNumber, g.OverviewRulerLane.Full, 0, c,
                        c, c)), l.charChanges) {
                  for (var d = 0,
                      h = l.charChanges.length; d < h; d++) {
                    var f = l.charChanges[d];
                    if (P(f)) {
                      if (t) {
                        for (var m = f.modifiedStartLineNumber;
                            m <= f.modifiedEndLineNumber; m++) {
                          var v = void 0, _ = void 0;
                          v = m === f.modifiedStartLineNumber
                              ? f.modifiedStartColumn
                              : s.getLineFirstNonWhitespaceColumn(m), _ = m
                          === f.modifiedEndLineNumber ? f.modifiedEndColumn
                              : s.getLineLastNonWhitespaceColumn(
                                  m), r.decorations.push(
                              R(m, v, m, _, U.charInsert))
                        }
                      } else {
                        r.decorations.push(
                            R(f.modifiedStartLineNumber, f.modifiedStartColumn,
                                f.modifiedEndLineNumber, f.modifiedEndColumn,
                                U.charInsert))
                      }
                    }
                  }
                }
              }
            }
            return r
          }, t.MINIMUM_EDITOR_WIDTH = 100, t
        }(H), q = function (e) {
          function t(t, n, i) {
            return e.call(this, t, n, i) || this
          }

          return f(t, e), t.prototype._produceOriginalFromDiff = function (e, t,
              n) {
            return n > t ? {
              afterLineNumber: Math.max(e.originalStartLineNumber,
                  e.originalEndLineNumber), heightInLines: n - t, domNode: null
            } : null
          }, t.prototype._produceModifiedFromDiff = function (e, t, n) {
            return t > n ? {
              afterLineNumber: Math.max(e.modifiedStartLineNumber,
                  e.modifiedEndLineNumber), heightInLines: t - n, domNode: null
            } : null
          }, t
        }(K), G = function (e) {
          function t(t, n) {
            var i = e.call(this, t) || this;
            return i.decorationsLeft = t.getOriginalEditor().getLayoutInfo().decorationsLeft, i._register(
                t.getOriginalEditor().onDidLayoutChange(function (e) {
                  i.decorationsLeft !== e.decorationsLeft
                  && (i.decorationsLeft = e.decorationsLeft, t.relayoutEditors())
                })), i
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.prototype.setEnableSplitViewResizing = function (e) {
          }, t.prototype._getViewZones = function (e, t, n, i, o, r) {
            return new Y(e, t, n, i, o, r).getViewZones()
          }, t.prototype._getOriginalEditorDecorations = function (e, t, n, i,
              o) {
            for (var r = {decorations: [], overviewZones: []}, s = 0,
                a = e.length; s < a; s++) {
              var u = e[s];
              if (A(u)) {
                r.decorations.push({
                  range: new p.Range(u.originalStartLineNumber, 1,
                      u.originalEndLineNumber, Number.MAX_VALUE),
                  options: U.lineDeleteMargin
                });
                var l = this._removeColor.toString();
                r.overviewZones.push(
                    new k.OverviewRulerZone(u.originalStartLineNumber,
                        u.originalEndLineNumber, g.OverviewRulerLane.Full, 0, l,
                        l, l))
              }
            }
            return r
          }, t.prototype._getModifiedEditorDecorations = function (e, t, n, i,
              o) {
            for (var r = {decorations: [], overviewZones: []}, s = o.getModel(),
                a = 0, u = e.length; a < u; a++) {
              var l = e[a];
              if (P(l)) {
                r.decorations.push({
                  range: new p.Range(l.modifiedStartLineNumber, 1,
                      l.modifiedEndLineNumber, Number.MAX_VALUE),
                  options: n ? U.lineInsertWithSign : U.lineInsert
                });
                var c = this._insertColor.toString();
                if (r.overviewZones.push(
                    new k.OverviewRulerZone(l.modifiedStartLineNumber,
                        l.modifiedEndLineNumber, g.OverviewRulerLane.Full, 0, c,
                        c, c)), l.charChanges) {
                  for (var d = 0,
                      h = l.charChanges.length; d < h; d++) {
                    var f = l.charChanges[d];
                    if (P(f)) {
                      if (t) {
                        for (var m = f.modifiedStartLineNumber;
                            m <= f.modifiedEndLineNumber; m++) {
                          var v = void 0, _ = void 0;
                          v = m === f.modifiedStartLineNumber
                              ? f.modifiedStartColumn
                              : s.getLineFirstNonWhitespaceColumn(m), _ = m
                          === f.modifiedEndLineNumber ? f.modifiedEndColumn
                              : s.getLineLastNonWhitespaceColumn(
                                  m), r.decorations.push(
                              R(m, v, m, _, U.charInsert))
                        }
                      } else {
                        r.decorations.push(
                            R(f.modifiedStartLineNumber, f.modifiedStartColumn,
                                f.modifiedEndLineNumber, f.modifiedEndColumn,
                                U.charInsert))
                      }
                    }
                  }
                } else {
                  r.decorations.push(
                      R(l.modifiedStartLineNumber, 1, l.modifiedEndLineNumber,
                          Number.MAX_VALUE, U.charInsertWholeLine))
                }
              }
            }
            return r
          }, t.prototype.layout = function () {
            return Math.max(5, this.decorationsLeft)
          }, t
        }(H), Y = function (e) {
          function t(t, n, i, o, r, s) {
            var a = e.call(this, t, n, i) || this;
            return a.originalModel = o.getModel(), a.modifiedEditorConfiguration = r.getConfiguration(), a.modifiedEditorTabSize = r.getModel().getOptions().tabSize, a.renderIndicators = s, a
          }

          return f(t, e), t.prototype._produceOriginalFromDiff = function (e, t,
              n) {
            var i = document.createElement("div");
            return i.className = "inline-added-margin-view-zone", S.Configuration.applyFontInfoSlow(
                i, this.modifiedEditorConfiguration.fontInfo), {
              afterLineNumber: Math.max(e.originalStartLineNumber,
                  e.originalEndLineNumber),
              heightInLines: n,
              domNode: document.createElement("div"),
              marginDomNode: i
            }
          }, t.prototype._produceModifiedFromDiff = function (e, t, n) {
            var i = [];
            if (e.charChanges) {
              for (var o = 0, r = e.charChanges.length; o < r;
                  o++) {
                var s = e.charChanges[o];
                A(s) && i.push(new E.InlineDecoration(
                    new p.Range(s.originalStartLineNumber,
                        s.originalStartColumn,
                        s.originalEndLineNumber, s.originalEndColumn),
                    "char-delete", !1))
              }
            }
            for (var a = [], u = [],
                l = this.modifiedEditorConfiguration.layoutInfo.decorationsWidth,
                c = this.modifiedEditorConfiguration.lineHeight,
                d = e.originalStartLineNumber; d <= e.originalEndLineNumber;
                d++) {
              if (a = a.concat(
                  this.renderOriginalLine(d - e.originalStartLineNumber,
                      this.originalModel, this.modifiedEditorConfiguration,
                      this.modifiedEditorTabSize, d,
                      i)), this.renderIndicators) {
                var h = d - e.originalStartLineNumber;
                u = u.concat(
                    ['<div class="delete-sign" style="position:absolute;top:'
                    + h
                    * c + "px;width:" + l + "px;height:" + c
                    + 'px;right:0;"></div>'])
              }
            }
            var f = document.createElement("div");
            f.className = "view-lines line-delete", f.innerHTML = a.join(
                ""), S.Configuration.applyFontInfoSlow(f,
                this.modifiedEditorConfiguration.fontInfo);
            var g = document.createElement("div");
            return g.className = "inline-deleted-margin-view-zone", g.innerHTML = u.join(
                ""), S.Configuration.applyFontInfoSlow(g,
                this.modifiedEditorConfiguration.fontInfo), {
              shouldNotShrink: !0,
              afterLineNumber: 0 === e.modifiedEndLineNumber
                  ? e.modifiedStartLineNumber : e.modifiedStartLineNumber - 1,
              heightInLines: t,
              domNode: f,
              marginDomNode: g
            }
          }, t.prototype.renderOriginalLine = function (e, t, n, i, o, r) {
            var s = t.getLineContent(o),
                a = _.LineDecoration.filter(r, o, 1, s.length + 1),
                u = C.renderViewLine(new C.RenderLineInput(
                    n.fontInfo.isMonospace
                    && !n.viewInfo.disableMonospaceOptimizations, s,
                    t.mightContainRTL(), 0,
                    [new w.ViewLineToken(s.length, 16793600)], a, i,
                    n.fontInfo.spaceWidth, n.viewInfo.stopRenderingLineAfter,
                    n.viewInfo.renderWhitespace,
                    n.viewInfo.renderControlCharacters,
                    n.viewInfo.fontLigatures)), l = [];
            return l.push('<div class="view-line'), 0 === r.length && l.push(
                " char-delete"), l.push('" style="top:'), l.push(
                String(e * n.lineHeight)), l.push(
                'px;width:1000000px;">'), (l = l.concat(u.html)).push(
                "</div>"), l
          }, t
        }(K);
        M.registerThemingParticipant(function (e, t) {
          var n = e.getColor(T.diffInserted);
          n && (t.addRule(
              ".monaco-editor .line-insert, .monaco-editor .char-insert { background-color: "
              + n + "; }"), t.addRule(
              ".monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: "
              + n + "; }"), t.addRule(
              ".monaco-editor .inline-added-margin-view-zone { background-color: "
              + n + "; }"));
          var i = e.getColor(T.diffRemoved);
          i && (t.addRule(
              ".monaco-editor .line-delete, .monaco-editor .char-delete { background-color: "
              + i + "; }"), t.addRule(
              ".monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: "
              + i + "; }"), t.addRule(
              ".monaco-editor .inline-deleted-margin-view-zone { background-color: "
              + i + "; }"));
          var o = e.getColor(T.diffInsertedOutline);
          o && t.addRule(
              ".monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px dashed "
              + o + "; }");
          var r = e.getColor(T.diffRemovedOutline);
          r && t.addRule(
              ".monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px dashed "
              + r + "; }");
          var s = e.getColor(T.scrollbarShadow);
          s && t.addRule(
              ".monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px "
              + s + "; }")
        })
      }),define(d[194], h([1, 0, 26, 16, 31, 19, 42, 141, 14]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function (e) {
          function t(t, n, i, o, r, s, a, u) {
            var l = e.call(this, t, i.getRawConfiguration(), o, r, s, a, u)
                || this;
            return l._parentEditor = i, l._overwriteOptions = n, e.prototype.updateOptions.call(
                l, l._overwriteOptions), l._register(
                i.onDidChangeConfiguration(function (e) {
                  return l._onParentConfigurationChanged(e)
                })), l
          }

          return f(t, e), t.prototype.getParentEditor = function () {
            return this._parentEditor
          }, t.prototype._onParentConfigurationChanged = function (t) {
            e.prototype.updateOptions.call(this,
                this._parentEditor.getRawConfiguration()), e.prototype.updateOptions.call(
                this, this._overwriteOptions)
          }, t.prototype.updateOptions = function (t) {
            n.mixin(this._overwriteOptions, t,
                !0), e.prototype.updateOptions.call(this,
                this._overwriteOptions)
          }, t = v([y(3, i.IInstantiationService), y(4, s.ICodeEditorService),
            y(5, o.ICommandService), y(6, r.IContextKeyService),
            y(7, u.IThemeService)], t)
        }(a.CodeEditor);
        t.EmbeddedCodeEditorWidget = l
      }),define(d[514], h([1, 0, 341, 3, 12, 18, 20, 13, 21, 14, 37, 34]),
      function (e, t, n, i, o, r, s, a, u, l, c, d) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        !function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.jumpToBracket",
              label: n.localize(0, null),
              alias: "Go to Bracket",
              precondition: null,
              kbOpts: {kbExpr: u.EditorContextKeys.textFocus, primary: 3160}
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            var n = p.get(t);
            n && n.jumpToBracket()
          }, t = v([a.editorAction], t)
        }(a.EditorAction);
        var h = function () {
          return function (e, t) {
            this.position = e, this.brackets = t
          }
        }(), p = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n._editor = t, n._lastBracketsData = [], n._lastVersionId = 0, n._decorations = [], n._updateBracketsSoon = n._register(
                new r.RunOnceScheduler(function () {
                      return n._updateBrackets()
                    },
                    50)), n._matchBrackets = n._editor.getConfiguration().contribInfo.matchBrackets, n._updateBracketsSoon.schedule(), n._register(
                t.onDidChangeCursorPosition(function (e) {
                  n._matchBrackets && n._updateBracketsSoon.schedule()
                })), n._register(t.onDidChangeModel(function (e) {
              n._decorations = [], n._updateBracketsSoon.schedule()
            })), n._register(t.onDidChangeConfiguration(function (e) {
              n._matchBrackets = n._editor.getConfiguration().contribInfo.matchBrackets, !n._matchBrackets
              && n._decorations.length > 0
              && (n._decorations = n._editor.deltaDecorations(n._decorations,
                  [])), n._updateBracketsSoon.schedule()
            })), n
          }

          return f(t, e), n = t, t.get = function (e) {
            return e.getContribution(n.ID)
          }, t.prototype.getId = function () {
            return n.ID
          }, t.prototype.jumpToBracket = function () {
            var e = this._editor.getModel();
            if (e) {
              var t = this._editor.getSelection();
              if (t.isEmpty()) {
                var n = t.getStartPosition(), i = e.matchBracket(n);
                if (i) {
                  var o = null;
                  i[0].containsPosition(n) ? o = i[1].getStartPosition()
                      : i[1].containsPosition(n)
                      && (o = i[0].getStartPosition()), o
                  && (this._editor.setPosition(o), this._editor.revealPosition(
                      o))
                }
              }
            }
          }, t.prototype._updateBrackets = function () {
            if (this._matchBrackets) {
              this._recomputeBrackets();
              for (var e = [], t = 0, i = 0, o = this._lastBracketsData.length;
                  i < o; i++) {
                var r = this._lastBracketsData[i].brackets;
                r && (e[t++] = {
                  range: r[0],
                  options: n._DECORATION_OPTIONS
                }, e[t++] = {range: r[1], options: n._DECORATION_OPTIONS})
              }
              this._decorations = this._editor.deltaDecorations(
                  this._decorations, e)
            }
          }, t.prototype._recomputeBrackets = function () {
            var e = this._editor.getModel();
            if (!e) {
              return this._lastBracketsData = [], void (this._lastVersionId = 0);
            }
            var t = e.getVersionId(), n = [];
            this._lastVersionId === t && (n = this._lastBracketsData);
            for (var i = this._editor.getSelections(), r = [], s = 0, a = 0,
                u = i.length; a < u; a++) {
              var l = i[a];
              l.isEmpty() && (r[s++] = l.getStartPosition())
            }
            r.length > 1 && r.sort(o.Position.compare);
            for (var c = [], d = 0, p = 0, f = n.length, a = 0, u = r.length;
                a < u; a++) {
              for (var g = r[a]; p < f && n[p].position.isBefore(g);) {
                p++;
              }
              if (p < f && n[p].position.equals(g)) {
                c[d++] = n[p];
              } else {
                var m = e.matchBracket(g);
                c[d++] = new h(g, m)
              }
            }
            this._lastBracketsData = c, this._lastVersionId = t
          }, t.ID = "editor.contrib.bracketMatchingController", t._DECORATION_OPTIONS = d.ModelDecorationOptions.register(
              {
                stickiness: s.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
                className: "bracket-match"
              }), t = n = v([a.commonEditorContribution], t);
          var n
        }(i.Disposable);
        t.BracketMatchingController = p, l.registerThemingParticipant(
            function (e, t) {
              var n = e.getColor(c.editorBracketMatchBackground);
              n && t.addRule(
                  ".monaco-editor .bracket-match { background-color: " + n
                  + "; }");
              var i = e.getColor(c.editorBracketMatchBorder);
              i && t.addRule(
                  ".monaco-editor .bracket-match { border: 1px solid " + i
                  + "; }")
            })
      }),define(d[515], h([1, 0, 3, 36, 9, 4, 2, 25, 34, 37, 14, 23, 315]),
      function (e, t, n, i, o, r, s, a, u, l, c, d) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var h = function () {
          function e(e, t) {
            this.afterLineNumber = e, this._onHeight = t, this.heightInLines = 1, this.suppressMouseDown = !0, this.domNode = document.createElement(
                "div")
          }

          return e.prototype.onComputedHeight = function (e) {
            void 0 === this._lastHeight ? this._lastHeight = e
                : this._lastHeight !== e
                && (this._lastHeight = e, this._onHeight())
          }, e
        }(), p = function () {
          function e(t, n, o, s) {
            var a = this;
            this.allowEditorOverflow = !1, this.suppressMouseDown = !0, this._disposables = [], this._commands = Object.create(
                null), this._id = "codeLensWidget"
                + ++e._idPool, this._editor = t, this.setSymbolRange(
                n), this._domNode = document.createElement(
                "span"), this._domNode.innerHTML = "&nbsp;", r.addClass(
                this._domNode, "codelens-decoration"), r.addClass(this._domNode,
                "invisible-cl"), this._updateHeight(), this._disposables.push(
                this._editor.onDidChangeConfiguration(function (e) {
                  return e.fontInfo && a._updateHeight()
                })), this._disposables.push(
                r.addDisposableListener(this._domNode, "click", function (e) {
                  var n = e.target;
                  if ("A" === n.tagName && n.id) {
                    var r = a._commands[n.id];
                    r && (t.focus(), o.executeCommand.apply(o,
                        [r.id].concat(r.arguments)).done(void 0, function (e) {
                      s.show(i.default.Error, e)
                    }))
                  }
                })), this.updateVisibility()
          }

          return e.prototype.dispose = function () {
            n.dispose(this._disposables), this._symbolRange = null
          }, e.prototype._updateHeight = function () {
            var e = this._editor.getConfiguration(), t = e.fontInfo,
                n = e.lineHeight;
            this._domNode.style.height = Math.round(1.1 * n)
                + "px", this._domNode.style.lineHeight = n
                + "px", this._domNode.style.fontSize = Math.round(
                .9 * t.fontSize) + "px", this._domNode.innerHTML = "&nbsp;"
          }, e.prototype.updateVisibility = function () {
            this.isVisible() && (r.removeClass(this._domNode,
                "invisible-cl"), r.addClass(this._domNode, "fadein"))
          }, e.prototype.withCommands = function (e) {
            if (this._commands = Object.create(null), e && e.length) {
              for (var t = [], n = 0; n < e.length; n++) {
                var i = e[n].command, r = o.escape(i.title), s = void 0;
                i.id ? (s = o.format("<a id={0}>{1}</a>", n,
                    r), this._commands[n] = i) : s = o.format(
                    "<span>{0}</span>", r), t.push(s)
              }
              this._domNode.innerHTML = t.join(
                  "<span>&nbsp;|&nbsp;</span>"), this._editor.layoutContentWidget(
                  this)
            } else {
              this._domNode.innerHTML = "no commands"
            }
          }, e.prototype.getId = function () {
            return this._id
          }, e.prototype.getDomNode = function () {
            return this._domNode
          }, e.prototype.setSymbolRange = function (e) {
            this._symbolRange = e;
            var t = e.startLineNumber,
                n = this._editor.getModel().getLineFirstNonWhitespaceColumn(t);
            this._widgetPosition = {
              position: {lineNumber: t, column: n},
              preference: [a.ContentWidgetPositionPreference.ABOVE]
            }
          }, e.prototype.getPosition = function () {
            return this._widgetPosition
          }, e.prototype.isVisible = function () {
            return this._domNode.hasAttribute("monaco-visible-content-widget")
          }, e._idPool = 0, e
        }(), f = function () {
          function e() {
            this._removeDecorations = [], this._addDecorations = [], this._addDecorationsCallbacks = []
          }

          return e.prototype.addDecoration = function (e, t) {
            this._addDecorations.push(e), this._addDecorationsCallbacks.push(t)
          }, e.prototype.removeDecoration = function (e) {
            this._removeDecorations.push(e)
          }, e.prototype.commit = function (e) {
            for (var t = e.deltaDecorations(this._removeDecorations,
                this._addDecorations), n = 0, i = t.length; n < i;
                n++) {
              this._addDecorationsCallbacks[n](t[n])
            }
          }, e
        }();
        t.CodeLensHelper = f;
        var g = function () {
          function e(e, t, n, i, o, r, a) {
            var l = this;
            this._editor = t, this._data = e, this._decorationIds = new Array(
                this._data.length);
            var c;
            this._data.forEach(function (e, t) {
              n.addDecoration({
                range: e.symbol.range,
                options: u.ModelDecorationOptions.EMPTY
              }, function (e) {
                return l._decorationIds[t] = e
              }), c = c ? s.Range.plusRange(c, e.symbol.range) : s.Range.lift(
                  e.symbol.range)
            }), this._contentWidget = new p(t, c, o, r), this._viewZone = new h(
                c.startLineNumber - 1, a), this._viewZoneId = i.addZone(
                this._viewZone), this._editor.addContentWidget(
                this._contentWidget)
          }

          return e.prototype.dispose = function (e, t) {
            for (; this._decorationIds.length;) {
              e.removeDecoration(
                  this._decorationIds.pop());
            }
            t && t.removeZone(
                this._viewZoneId), this._editor.removeContentWidget(
                this._contentWidget), this._contentWidget.dispose()
          }, e.prototype.isValid = function () {
            var e = this;
            return this._decorationIds.some(function (t, n) {
              var i = e._editor.getModel().getDecorationRange(t),
                  o = e._data[n].symbol;
              return i && s.Range.isEmpty(o.range) === i.isEmpty()
            })
          }, e.prototype.updateCodeLensSymbols = function (e, t) {
            for (var n = this; this._decorationIds.length;) {
              t.removeDecoration(
                  this._decorationIds.pop());
            }
            this._data = e, this._decorationIds = new Array(
                this._data.length), this._data.forEach(function (e, i) {
              t.addDecoration({
                range: e.symbol.range,
                options: u.ModelDecorationOptions.EMPTY
              }, function (e) {
                return n._decorationIds[i] = e
              })
            })
          }, e.prototype.computeIfNecessary = function (e) {
            if (this._contentWidget.updateVisibility(), !this._contentWidget.isVisible()) {
              return null;
            }
            for (var t = 0; t < this._decorationIds.length;
                t++) {
              this._data[t].symbol.range = e.getDecorationRange(
                  this._decorationIds[t]);
            }
            return this._data
          }, e.prototype.updateCommands = function (e) {
            this._contentWidget.withCommands(e)
          }, e.prototype.getLineNumber = function () {
            var e = this._editor.getModel().getDecorationRange(
                this._decorationIds[0]);
            return e ? e.startLineNumber : -1
          }, e.prototype.update = function (e) {
            if (this.isValid()) {
              var t = this._editor.getModel().getDecorationRange(
                  this._decorationIds[0]);
              this._viewZone.afterLineNumber = t.startLineNumber
                  - 1, e.layoutZone(
                  this._viewZoneId), this._contentWidget.setSymbolRange(
                  t), this._editor.layoutContentWidget(this._contentWidget)
            }
          }, e
        }();
        t.CodeLens = g, c.registerThemingParticipant(function (e, t) {
          var n = e.getColor(l.editorCodeLensForeground);
          n && t.addRule(
              ".monaco-editor .codelens-decoration { color: " + n + "; }");
          var i = e.getColor(d.editorActiveLinkForeground);
          i && t.addRule(
              ".monaco-editor .codelens-decoration > a:hover { color: " + i
              + " !important; }")
        })
      }),define(d[516], h([1, 0, 18, 10, 3, 7, 31, 50, 17, 30, 453, 515]),
      function (e, t, n, i, o, r, s, a, u, l, c, d) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var h = function () {
          function e(e, t, n) {
            var i = this;
            this._editor = e, this._commandService = t, this._messageService = n, this._isEnabled = this._editor.getConfiguration().contribInfo.codeLens, this._globalToDispose = [], this._localToDispose = [], this._lenses = [], this._currentFindCodeLensSymbolsPromise = null, this._modelChangeCounter = 0, this._globalToDispose.push(
                this._editor.onDidChangeModel(function () {
                  return i._onModelChange()
                })), this._globalToDispose.push(
                this._editor.onDidChangeModelLanguage(function () {
                  return i._onModelChange()
                })), this._globalToDispose.push(
                this._editor.onDidChangeConfiguration(function (e) {
                  var t = i._isEnabled;
                  i._isEnabled = i._editor.getConfiguration().contribInfo.codeLens, t
                  !== i._isEnabled && i._onModelChange()
                })), this._globalToDispose.push(
                u.CodeLensProviderRegistry.onDidChange(this._onModelChange,
                    this)), this._onModelChange()
          }

          return t = e, e.prototype.dispose = function () {
            this._localDispose(), this._globalToDispose = o.dispose(
                this._globalToDispose)
          }, e.prototype._localDispose = function () {
            this._currentFindCodeLensSymbolsPromise
            && (this._currentFindCodeLensSymbolsPromise.cancel(), this._currentFindCodeLensSymbolsPromise = null, this._modelChangeCounter++), this._currentFindOccPromise
            && (this._currentFindOccPromise.cancel(), this._currentFindOccPromise = null), this._localToDispose = o.dispose(
                this._localToDispose)
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype._onModelChange = function () {
            var e = this;
            this._localDispose();
            var t = this._editor.getModel();
            if (t && this._isEnabled && u.CodeLensProviderRegistry.has(t)) {
              for (var o = 0, r = u.CodeLensProviderRegistry.all(t);
                  o < r.length; o++) {
                var s = r[o];
                if ("function" == typeof s.onDidChange) {
                  var a = s.onDidChange(function () {
                    return l.schedule()
                  });
                  this._localToDispose.push(a)
                }
              }
              this._detectVisibleLenses = new n.RunOnceScheduler(function () {
                e._onViewportChanged(t.getLanguageIdentifier().language)
              }, 500);
              var l = new n.RunOnceScheduler(function () {
                e._currentFindCodeLensSymbolsPromise
                && e._currentFindCodeLensSymbolsPromise.cancel(), e._currentFindCodeLensSymbolsPromise = c.getCodeLensData(
                    t);
                var n = ++e._modelChangeCounter;
                e._currentFindCodeLensSymbolsPromise.then(function (t) {
                  n === e._modelChangeCounter && (e._renderCodeLensSymbols(
                      t), e._detectVisibleLenses.schedule())
                }, i.onUnexpectedError)
              }, 250);
              this._localToDispose.push(l), this._localToDispose.push(
                  this._detectVisibleLenses), this._localToDispose.push(
                  this._editor.onDidChangeModelContent(function (t) {
                    e._editor.changeDecorations(function (t) {
                      e._editor.changeViewZones(function (n) {
                        var i = [];
                        e._lenses.forEach(function (e) {
                          e.isValid() ? e.update(n) : i.push(e)
                        });
                        var o = new d.CodeLensHelper;
                        i.forEach(function (t) {
                          t.dispose(o, n), e._lenses.splice(
                              e._lenses.indexOf(t), 1)
                        }), o.commit(t)
                      })
                    }), e._detectVisibleLenses.schedule(), l.schedule()
                  })), this._localToDispose.push(
                  this._editor.onDidScrollChange(function (t) {
                    t.scrollTopChanged && e._detectVisibleLenses.schedule()
                  })), this._localToDispose.push(
                  this._editor.onDidLayoutChange(function (t) {
                    e._detectVisibleLenses.schedule()
                  })), this._localToDispose.push({
                dispose: function () {
                  e._editor.getModel() ? e._editor.changeDecorations(
                      function (t) {
                        e._editor.changeViewZones(function (n) {
                          e._disposeAllLenses(t, n)
                        })
                      }) : e._disposeAllLenses(null, null)
                }
              }), l.schedule()
            }
          }, e.prototype._disposeAllLenses = function (e, t) {
            var n = new d.CodeLensHelper;
            this._lenses.forEach(function (e) {
              return e.dispose(n, t)
            }), e && n.commit(e), this._lenses = []
          }, e.prototype._renderCodeLensSymbols = function (e) {
            var t = this;
            if (this._editor.getModel()) {
              for (var n, i = this._editor.getModel().getLineCount(), o = [],
                  r = 0, s = e; r < s.length; r++) {
                var a = s[r], u = a.symbol.range.startLineNumber;
                u < 1 || u > i || (n && n[n.length
                - 1].symbol.range.startLineNumber === u ? n.push(a)
                    : (n = [a], o.push(n)))
              }
              var l = this._editor.getCenteredRangeInViewport(),
                  c = l && o.length !== this._lenses.length && 0
                      !== this._editor.getScrollTop();
              this._editor.changeDecorations(function (e) {
                t._editor.changeViewZones(function (n) {
                  for (var i = 0, r = 0, s = new d.CodeLensHelper;
                      r < o.length && i < t._lenses.length;) {
                    var a = o[r][0].symbol.range.startLineNumber,
                        u = t._lenses[i].getLineNumber();
                    u < a ? (t._lenses[i].dispose(s, n), t._lenses.splice(i, 1))
                        : u === a ? (t._lenses[i].updateCodeLensSymbols(o[r],
                            s), r++, i++) : (t._lenses.splice(i, 0,
                            new d.CodeLens(o[r], t._editor, s, n, t._commandService,
                                t._messageService, function () {
                                  return t._detectVisibleLenses.schedule()
                                })), i++, r++)
                  }
                  for (; i < t._lenses.length;) {
                    t._lenses[i].dispose(s,
                        n), t._lenses.splice(i, 1);
                  }
                  for (; r < o.length;) {
                    t._lenses.push(
                        new d.CodeLens(o[r], t._editor, s, n, t._commandService,
                            t._messageService, function () {
                              return t._detectVisibleLenses.schedule()
                            })), r++;
                  }
                  s.commit(e)
                })
              }), c && this._editor.revealRangeInCenter(l)
            }
          }, e.prototype._onViewportChanged = function (e) {
            var t = this;
            this._currentFindOccPromise
            && (this._currentFindOccPromise.cancel(), this._currentFindOccPromise = null);
            var i = this._editor.getModel();
            if (i) {
              var o = [], s = [];
              if (this._lenses.forEach(function (e) {
                var t = e.computeIfNecessary(i);
                t && (o.push(t), s.push(e))
              }), 0 !== o.length) {
                var a = o.map(function (e, t) {
                  var o = new Array(e.length), a = e.map(function (e, t) {
                    return n.asWinJsPromise(function (t) {
                      return e.provider.resolveCodeLens(i, e.symbol, t)
                    }).then(function (e) {
                      o[t] = e
                    })
                  });
                  return r.TPromise.join(a).then(function () {
                    s[t].updateCommands(o)
                  })
                });
                this._currentFindOccPromise = r.TPromise.join(a).then(
                    function () {
                      t._currentFindOccPromise = null
                    })
              }
            }
          }, e.ID = "css.editor.codeLens", e = t = v(
              [l.editorContribution, y(1, s.ICommandService),
                y(2, a.IMessageService)], e);
          var t
        }();
        t.CodeLensContribution = h
      }),define(d[517], h([1, 0, 30, 3, 14, 23, 17, 7, 248]),
      function (e, t, n, i, o, r, s, a, u) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var l = function () {
          function e(e) {
            var t = this;
            this.editor = e, this.currentDecorations = [], this.listenersToRemove = [], this.listenersToRemove.push(
                e.onDidChangeModelContent(function (e) {
                  return t.onChange()
                })), this.listenersToRemove.push(
                e.onDidChangeModel(function (e) {
                  return t.onModelChanged()
                })), this.listenersToRemove.push(
                e.onDidChangeModelLanguage(function (e) {
                  return t.onModelModeChanged()
                })), this.listenersToRemove.push(
                s.ColorProviderRegistry.onDidChange(function (e) {
                  return t.onModelModeChanged()
                })), this.timeoutPromise = null, this.computePromise = null, this.beginCompute()
          }

          return t = e, e.prototype.getId = function () {
            return t.ID
          }, e.get = function (e) {
            return e.getContribution(this.ID)
          }, e.prototype.dispose = function () {
            this.listenersToRemove = i.dispose(
                this.listenersToRemove), this.stop()
          }, e.prototype.onModelChanged = function () {
            this.stop(), this.beginCompute()
          }, e.prototype.onModelModeChanged = function () {
            this.stop(), this.beginCompute()
          }, e.prototype.onChange = function () {
            var e = this;
            this.timeoutPromise || (this.timeoutPromise = a.TPromise.timeout(
                t.RECOMPUTE_TIME), this.timeoutPromise.then(function () {
              e.timeoutPromise = null, e.beginCompute()
            }))
          }, e.prototype.beginCompute = function () {
            var e = this;
            this.editor.getModel() && s.ColorProviderRegistry.has(
                this.editor.getModel()) && (this.computePromise = u.getColors(
                this.editor.getModel()).then(function (t) {
              e.updateDecorations(t), e.computePromise = null
            }))
          }, e.prototype.stop = function () {
            this.timeoutPromise
            && (this.timeoutPromise.cancel(), this.timeoutPromise = null), this.computePromise
            && (this.computePromise.cancel(), this.computePromise = null)
          }, e.prototype.updateDecorations = function (e) {
            var t = this;
            this.editor.changeDecorations(function (n) {
              for (var i = [], o = 0, r = e; o < r.length; o++) {
                var s = r[o], a = {
                  startLineNumber: s.range.startLineNumber,
                  startColumn: s.range.startColumn,
                  endLineNumber: s.range.endLineNumber,
                  endColumn: s.range.endColumn
                }, u = {
                  __extraOptions: {
                    color: s.color,
                    format: s.format,
                    availableFormats: s.availableFormats
                  }
                };
                i.push({range: a, options: u})
              }
              t.currentDecorations = n.deltaDecorations(t.currentDecorations, i)
            })
          }, e.ID = "editor.contrib.colorPicker", e.RECOMPUTE_TIME = 1e3, e = t = v(
              [n.editorContribution], e);
          var t
        }();
        t.ColorPicker = l, o.registerThemingParticipant(function (e, t) {
          var n = e.getColor(r.editorWidgetBackground);
          t.addRule(
              ".monaco-editor .colorpicker-widget { background-color: " + n
              + "; }");
          var i = e.getColor(r.editorWidgetBorder);
          t.addRule(
              ".monaco-editor .colorpicker-widget { border: 1px solid " + i
              + "; }"), t.addRule(
              ".monaco-editor .colorpicker-header { border-bottom: 1px solid "
              + i + "; }")
        })
      }),define(d[518], h([1, 0, 4, 41, 25, 121, 153, 18, 14, 23]),
      function (e, t, n, i, o, r, s, a, u, l) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var c = function (e) {
          function t(t, i, o, u) {
            var c = e.call(this) || this;
            c._hideSoon = c._register(new a.RunOnceScheduler(function () {
                  return c._hide()
                },
                1e3)), c._isVisible = !1, c._editor = t, c._state = i, c._keybindingService = o, c._domNode = document.createElement(
                "div"), c._domNode.className = "findOptionsWidget", c._domNode.style.display = "none", c._domNode.style.top = "10px", c._domNode.setAttribute(
                "role", "presentation"), c._domNode.setAttribute("aria-hidden",
                "true");
            var d = u.getTheme().getColor(l.inputActiveOptionBorder);
            return c.caseSensitive = c._register(new s.CaseSensitiveCheckbox({
              appendTitle: c._keybindingLabelFor(
                  r.FIND_IDS.ToggleCaseSensitiveCommand),
              isChecked: c._state.matchCase,
              onChange: function (e) {
                c._state.change({matchCase: c.caseSensitive.checked}, !1)
              },
              inputActiveOptionBorder: d
            })), c._domNode.appendChild(
                c.caseSensitive.domNode), c.wholeWords = c._register(
                new s.WholeWordsCheckbox({
                  appendTitle: c._keybindingLabelFor(
                      r.FIND_IDS.ToggleWholeWordCommand),
                  isChecked: c._state.wholeWord,
                  onChange: function (e) {
                    c._state.change({wholeWord: c.wholeWords.checked}, !1)
                  },
                  inputActiveOptionBorder: d
                })), c._domNode.appendChild(
                c.wholeWords.domNode), c.regex = c._register(
                new s.RegexCheckbox({
                  appendTitle: c._keybindingLabelFor(
                      r.FIND_IDS.ToggleRegexCommand),
                  isChecked: c._state.isRegex,
                  onChange: function (e) {
                    c._state.change({isRegex: c.regex.checked}, !1)
                  },
                  inputActiveOptionBorder: d
                })), c._domNode.appendChild(
                c.regex.domNode), c._editor.addOverlayWidget(c), c._register(
                c._state.addChangeListener(function (e) {
                  var t = !1;
                  e.isRegex
                  && (c.regex.checked = c._state.isRegex, t = !0), e.wholeWord
                  && (c.wholeWords.checked = c._state.wholeWord, t = !0), e.matchCase
                  && (c.caseSensitive.checked = c._state.matchCase, t = !0), !c._state.isRevealed
                  && t && c._revealTemporarily()
                })), c._register(
                n.addDisposableNonBubblingMouseOutListener(c._domNode,
                    function (e) {
                      return c._onMouseOut()
                    })), c._register(
                n.addDisposableListener(c._domNode, "mouseover", function (e) {
                  return c._onMouseOver()
                })), c._applyTheme(u.getTheme()), c._register(
                u.onThemeChange(c._applyTheme.bind(c))), c
          }

          return f(t, e), t.prototype._keybindingLabelFor = function (e) {
            var t = this._keybindingService.lookupKeybinding(e);
            return t ? " (" + t.getLabel() + ")" : ""
          }, t.prototype.dispose = function () {
            this._editor.removeOverlayWidget(this), e.prototype.dispose.call(
                this)
          }, t.prototype.getId = function () {
            return t.ID
          }, t.prototype.getDomNode = function () {
            return this._domNode
          }, t.prototype.getPosition = function () {
            return {preference: o.OverlayWidgetPositionPreference.TOP_RIGHT_CORNER}
          }, t.prototype.highlightFindOptions = function () {
            this._revealTemporarily()
          }, t.prototype._revealTemporarily = function () {
            this._show(), this._hideSoon.schedule()
          }, t.prototype._onMouseOut = function () {
            this._hideSoon.schedule()
          }, t.prototype._onMouseOver = function () {
            this._hideSoon.cancel()
          }, t.prototype._show = function () {
            this._isVisible
            || (this._isVisible = !0, this._domNode.style.display = "block")
          }, t.prototype._hide = function () {
            this._isVisible
            && (this._isVisible = !1, this._domNode.style.display = "none")
          }, t.prototype._applyTheme = function (e) {
            var t = {
              inputActiveOptionBorder: e.getColor(l.inputActiveOptionBorder)
            };
            this.caseSensitive.style(t), this.wholeWords.style(
                t), this.regex.style(t)
          }, t.ID = "editor.contrib.findOptionsWidget", t
        }(i.Widget);
        t.FindOptionsWidget = c, u.registerThemingParticipant(function (e, t) {
          var n = e.getColor(l.editorWidgetBackground);
          n && t.addRule(
              ".monaco-editor .findOptionsWidget { background-color: " + n
              + "; }");
          var i = e.getColor(l.widgetShadow);
          i && t.addRule(
              ".monaco-editor .findOptionsWidget { box-shadow: 0 2px 8px " + i
              + "; }");
          var o = e.getColor(l.contrastBorder);
          o && t.addRule(
              ".monaco-editor .findOptionsWidget { border: 2px solid " + o
              + "; }")
        })
      }),define(d[519],
      h([1, 0, 347, 10, 15, 9, 4, 289, 115, 41, 99, 25, 121, 2, 176, 14, 23,
        327]), function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, v) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var _ = n.localize(0, null), y = n.localize(1, null),
            C = n.localize(2, null), b = n.localize(3, null),
            w = n.localize(4, null), S = n.localize(5, null),
            E = n.localize(6, null), L = n.localize(7, null),
            x = n.localize(8, null), N = n.localize(9, null),
            M = n.localize(10, null), T = n.localize(11, null),
            k = n.localize(12, null), I = n.localize(13, null), D = 411, O = 69,
            R = 17 + (O + 3 + 1) + 92 + 2, P = 34, A = function () {
              return function (e) {
                this.afterLineNumber = e, this.heightInPx = P, this.suppressMouseDown = !1, this.domNode = document.createElement(
                    "div"), this.domNode.className = "dock-find-viewzone"
              }
            }();
        t.FindWidgetViewZone = A;
        var F = function (e) {
          function t(t, n, i, o, r, a, u) {
            var l = e.call(this) || this;
            l._codeEditor = t, l._controller = n, l._state = i, l._contextViewProvider = o, l._keybindingService = r, l._isVisible = !1, l._isReplaceVisible = !1, l._register(
                l._state.addChangeListener(function (e) {
                  return l._onStateChanged(e)
                })), l._buildDomNode(), l._updateButtons();
            var c = function () {
              var e = l._codeEditor.getConfiguration().layoutInfo.width,
                  t = l._codeEditor.getConfiguration().layoutInfo.minimapWidth,
                  n = !1, i = !1, o = !1;
              if (s.getTotalWidth(l._domNode)
                  > D) {
                return l._domNode.style.maxWidth = e - 28 - t - 15
                    + "px", void (l._replaceInputBox.inputElement.style.width = s.getTotalWidth(
                    l._findInput.inputBox.inputElement) + "px");
              }
              D + 28 + t >= e && (i = !0), D + 28 + t - O >= e && (o = !0), D
              + 28 + t - O >= e + 50 && (n = !0), s.toggleClass(l._domNode,
                  "collapsed-find-widget", n), s.toggleClass(l._domNode,
                  "narrow-find-widget", o), s.toggleClass(l._domNode,
                  "reduced-find-widget", i), o || n
              || (l._domNode.style.maxWidth = e - 28 - t - 15 + "px");
              var r = s.getTotalWidth(l._findInput.inputBox.inputElement);
              r > 0 && (l._replaceInputBox.inputElement.style.width = r + "px")
            };
            return c(), l._register(
                l._codeEditor.onDidChangeConfiguration(function (e) {
                  e.readOnly && (l._codeEditor.getConfiguration().readOnly
                  && l._state.change({isReplaceRevealed: !1},
                      !1), l._updateButtons()), e.layoutInfo && c()
                })), l._register(
                l._codeEditor.onDidChangeCursorSelection(function () {
                  l._isVisible && l._updateToggleSelectionFindButton()
                })), l._findInputFocussed = g.CONTEXT_FIND_INPUT_FOCUSSED.bindTo(
                a), l._focusTracker = l._register(s.trackFocus(
                l._findInput.inputBox.inputElement)), l._focusTracker.addFocusListener(
                function () {
                  if (l._findInputFocussed.set(
                      !0), l._toggleSelectionFind.checked) {
                    var e = l._codeEditor.getSelection();
                    1 === e.endColumn && e.endLineNumber > e.startLineNumber
                    && (e = e.setEndPosition(e.endLineNumber - 1, 1));
                    var t = l._state.currentMatch;
                    e.startLineNumber !== e.endLineNumber
                    && (p.Range.equalsRange(e, t) || l._state.change(
                        {searchScope: e}, !0))
                  }
                }), l._focusTracker.addBlurListener(function () {
              l._findInputFocussed.set(!1)
            }), l._codeEditor.addOverlayWidget(l), l._viewZone = new A(
                0), l._applyTheme(u.getTheme()), l._register(
                u.onThemeChange(l._applyTheme.bind(l))), l._register(
                l._codeEditor.onDidChangeModel(function (e) {
                  l._isVisible && void 0 !== l._viewZoneId
                  && l._codeEditor.changeViewZones(function (e) {
                    e.removeZone(l._viewZoneId), l._viewZoneId = void 0
                  })
                })), l._register(l._codeEditor.onDidScrollChange(function (e) {
              e.scrollTopChanged ? l._layoutViewZone() : setTimeout(
                  function () {
                    l._layoutViewZone()
                  }, 0)
            })), l
          }

          return f(t, e), t.prototype.getId = function () {
            return t.ID
          }, t.prototype.getDomNode = function () {
            return this._domNode
          }, t.prototype.getPosition = function () {
            return this._isVisible
                ? {preference: d.OverlayWidgetPositionPreference.TOP_RIGHT_CORNER}
                : null
          }, t.prototype._onStateChanged = function (e) {
            if (e.searchString && (this._findInput.setValue(
                this._state.searchString), this._updateButtons()), e.replaceString
            && (this._replaceInputBox.value = this._state.replaceString), e.isRevealed
            && (this._state.isRevealed ? this._reveal(!0) : this._hide(
                !0)), e.isReplaceRevealed && (this._state.isReplaceRevealed
                ? this._codeEditor.getConfiguration().readOnly
                || this._isReplaceVisible
                || (this._isReplaceVisible = !0, this._updateButtons())
                : this._isReplaceVisible
                && (this._isReplaceVisible = !1, this._updateButtons())), e.isRegex
            && this._findInput.setRegex(this._state.isRegex), e.wholeWord
            && this._findInput.setWholeWords(this._state.wholeWord), e.matchCase
            && this._findInput.setCaseSensitive(
                this._state.matchCase), e.searchScope
            && (this._state.searchScope ? this._toggleSelectionFind.checked = !0
                : this._toggleSelectionFind.checked = !1, this._updateToggleSelectionFindButton()), e.searchString
            || e.matchesCount || e.matchesPosition) {
              var t = this._state.searchString.length > 0 && 0
                  === this._state.matchesCount;
              s.toggleClass(this._domNode, "no-results",
                  t), this._updateMatchesCount()
            }
            (e.searchString || e.currentMatch) && this._layoutViewZone()
          }, t.prototype._updateMatchesCount = function () {
            this._matchesCount.style.minWidth = O
                + "px", this._state.matchesCount >= h.MATCHES_LIMIT
                ? this._matchesCount.title = T
                : this._matchesCount.title = "", this._matchesCount.firstChild
            && this._matchesCount.removeChild(this._matchesCount.firstChild);
            var e;
            if (this._state.matchesCount > 0) {
              var t = String(this._state.matchesCount);
              this._state.matchesCount >= h.MATCHES_LIMIT && (t += "+");
              var n = String(this._state.matchesPosition);
              "0" === n && (n = "?"), e = r.format(k, n, t)
            } else {
              e = I;
            }
            this._matchesCount.appendChild(
                document.createTextNode(e)), O = Math.max(O,
                this._matchesCount.clientWidth)
          }, t.prototype._updateToggleSelectionFindButton = function () {
            var e = this._codeEditor.getSelection(),
                t = !!e && (e.startLineNumber !== e.endLineNumber
                    || e.startColumn !== e.endColumn),
                n = this._toggleSelectionFind.checked;
            this._toggleSelectionFind.setEnabled(this._isVisible && (n || t))
          }, t.prototype._updateButtons = function () {
            this._findInput.setEnabled(
                this._isVisible), this._replaceInputBox.setEnabled(
                this._isVisible
                && this._isReplaceVisible), this._updateToggleSelectionFindButton(), this._closeBtn.setEnabled(
                this._isVisible);
            var e = this._state.searchString.length > 0;
            this._prevBtn.setEnabled(
                this._isVisible && e), this._nextBtn.setEnabled(
                this._isVisible && e), this._replaceBtn.setEnabled(
                this._isVisible && this._isReplaceVisible
                && e), this._replaceAllBtn.setEnabled(
                this._isVisible && this._isReplaceVisible && e), s.toggleClass(
                this._domNode, "replaceToggled",
                this._isReplaceVisible), this._toggleReplaceBtn.toggleClass(
                "collapse",
                !this._isReplaceVisible), this._toggleReplaceBtn.toggleClass(
                "expand",
                this._isReplaceVisible), this._toggleReplaceBtn.setExpanded(
                this._isReplaceVisible);
            var t = !this._codeEditor.getConfiguration().readOnly;
            this._toggleReplaceBtn.setEnabled(this._isVisible && t)
          }, t.prototype._reveal = function (e) {
            var t = this;
            if (!this._isVisible) {
              this._isVisible = !0;
              var n = this._codeEditor.getSelection();
              !!n && (n.startLineNumber !== n.endLineNumber || n.startColumn
                  !== n.endColumn)
              && this._codeEditor.getConfiguration().contribInfo.find.autoFindInSelection
                  ? this._toggleSelectionFind.checked = !0
                  : this._toggleSelectionFind.checked = !1, this._updateButtons(), setTimeout(
                  function () {
                    s.addClass(t._domNode, "visible"), t._domNode.setAttribute(
                        "aria-hidden", "false"), e || (s.addClass(t._domNode,
                        "noanimation"), setTimeout(function () {
                      s.removeClass(t._domNode, "noanimation")
                    }, 200))
                  }, 0), this._codeEditor.layoutOverlayWidget(this);
              var i = !0;
              if (this._codeEditor.getConfiguration().contribInfo.find.seedSearchStringFromSelection
                  && n) {
                var o = s.getDomNodePagePosition(this._codeEditor.getDomNode()),
                    r = this._codeEditor.getScrolledVisiblePosition(
                        n.getStartPosition()), a = o.left + r.left;
                if (r.top < this._viewZone.heightInPx) {
                  n.endLineNumber > n.startLineNumber && (i = !1);
                  var u = s.getTopLeftOffset(this._domNode).left;
                  a > u && (i = !1);
                  var l = this._codeEditor.getScrolledVisiblePosition(
                      n.getEndPosition());
                  o.left + l.left > u && (i = !1)
                }
              }
              this._showViewZone(i)
            }
          }, t.prototype._hide = function (e) {
            var t = this;
            this._isVisible
            && (this._isVisible = !1, this._updateButtons(), s.removeClass(
                this._domNode, "visible"), this._domNode.setAttribute(
                "aria-hidden", "true"), e
            && this._codeEditor.focus(), this._codeEditor.layoutOverlayWidget(
                this), this._codeEditor.changeViewZones(function (e) {
              void 0 !== t._viewZoneId && (e.removeZone(
                  t._viewZoneId), t._viewZoneId = void 0, t._codeEditor.setScrollTop(
                  t._codeEditor.getScrollTop() - t._viewZone.heightInPx))
            }))
          }, t.prototype._layoutViewZone = function () {
            var e = this;
            this._isVisible && void 0 === this._viewZoneId
            && this._codeEditor.changeViewZones(function (t) {
              e._state.isReplaceRevealed ? e._viewZone.heightInPx = 64
                  : e._viewZone.heightInPx = P, e._viewZoneId = t.addZone(
                  e._viewZone), e._codeEditor.setScrollTop(
                  e._codeEditor.getScrollTop() + e._viewZone.heightInPx)
            })
          }, t.prototype._showViewZone = function (e) {
            var t = this;
            void 0 === e && (e = !0), this._isVisible
            && this._codeEditor.changeViewZones(function (n) {
              var i = P;
              void 0 !== t._viewZoneId ? (t._state.isReplaceRevealed
                      ? (t._viewZone.heightInPx = 64, i = 64 - P)
                      : (t._viewZone.heightInPx = P, i = P - 64), n.removeZone(
                      t._viewZoneId))
                  : t._viewZone.heightInPx = P, t._viewZoneId = n.addZone(
                  t._viewZone), e && t._codeEditor.setScrollTop(
                  t._codeEditor.getScrollTop() + i)
            })
          }, t.prototype._applyTheme = function (e) {
            var t = {
              inputActiveOptionBorder: e.getColor(v.inputActiveOptionBorder),
              inputBackground: e.getColor(v.inputBackground),
              inputForeground: e.getColor(v.inputForeground),
              inputBorder: e.getColor(v.inputBorder),
              inputValidationInfoBackground: e.getColor(
                  v.inputValidationInfoBackground),
              inputValidationInfoBorder: e.getColor(
                  v.inputValidationInfoBorder),
              inputValidationWarningBackground: e.getColor(
                  v.inputValidationWarningBackground),
              inputValidationWarningBorder: e.getColor(
                  v.inputValidationWarningBorder),
              inputValidationErrorBackground: e.getColor(
                  v.inputValidationErrorBackground),
              inputValidationErrorBorder: e.getColor(
                  v.inputValidationErrorBorder)
            };
            this._findInput.style(t), this._replaceInputBox.style(t)
          }, t.prototype.focusFindInput = function () {
            this._findInput.select(), this._findInput.focus()
          }, t.prototype.focusReplaceInput = function () {
            this._replaceInputBox.select(), this._replaceInputBox.focus()
          }, t.prototype.highlightFindOptions = function () {
            this._findInput.highlightFindOptions()
          }, t.prototype._onFindInputMouseDown = function (e) {
            e.middleButton && e.stopPropagation()
          }, t.prototype._onFindInputKeyDown = function (e) {
            return e.equals(3) ? (this._codeEditor.getAction(
                h.FIND_IDS.NextMatchFindAction).run().done(null,
                i.onUnexpectedError), void e.preventDefault()) : e.equals(1027)
                ? (this._codeEditor.getAction(
                    h.FIND_IDS.PreviousMatchFindAction).run().done(null,
                    i.onUnexpectedError), void e.preventDefault()) : e.equals(2)
                    ? (this._isReplaceVisible ? this._replaceInputBox.focus()
                        : this._findInput.focusOnCaseSensitive(), void e.preventDefault())
                    : e.equals(2066)
                        ? (this._codeEditor.focus(), void e.preventDefault())
                        : void 0
          }, t.prototype._onReplaceInputKeyDown = function (e) {
            return e.equals(3)
                ? (this._controller.replace(), void e.preventDefault())
                : e.equals(2051)
                    ? (this._controller.replaceAll(), void e.preventDefault())
                    : e.equals(2)
                        ? (this._findInput.focusOnCaseSensitive(), void e.preventDefault())
                        : e.equals(1026)
                            ? (this._findInput.focus(), void e.preventDefault())
                            : e.equals(2066)
                                ? (this._codeEditor.focus(), void e.preventDefault())
                                : void 0
          }, t.prototype.getHorizontalSashTop = function (e) {
            return 0
          }, t.prototype.getHorizontalSashLeft = function (e) {
            return 0
          }, t.prototype.getHorizontalSashWidth = function (e) {
            return 500
          }, t.prototype._keybindingLabelFor = function (e) {
            var t = this._keybindingService.lookupKeybinding(e);
            return t ? " (" + t.getLabel() + ")" : ""
          }, t.prototype._buildFindPart = function () {
            var e = this;
            this._findInput = this._register(
                new a.FindInput(null, this._contextViewProvider, {
                  width: 221,
                  label: _,
                  placeholder: y,
                  appendCaseSensitiveLabel: this._keybindingLabelFor(
                      h.FIND_IDS.ToggleCaseSensitiveCommand),
                  appendWholeWordsLabel: this._keybindingLabelFor(
                      h.FIND_IDS.ToggleWholeWordCommand),
                  appendRegexLabel: this._keybindingLabelFor(
                      h.FIND_IDS.ToggleRegexCommand),
                  validation: function (t) {
                    if (0 === t.length) {
                      return null;
                    }
                    if (!e._findInput.getRegex()) {
                      return null;
                    }
                    try {
                      return new RegExp(t), null
                    } catch (e) {
                      return {content: e.message}
                    }
                  }
                })), this._findInput.setRegex(
                !!this._state.isRegex), this._findInput.setCaseSensitive(
                !!this._state.matchCase), this._findInput.setWholeWords(
                !!this._state.wholeWord), this._register(
                this._findInput.onKeyDown(function (t) {
                  return e._onFindInputKeyDown(t)
                })), this._register(this._findInput.onInput(function () {
              e._state.change({searchString: e._findInput.getValue()}, !0)
            })), this._register(this._findInput.onDidOptionChange(function () {
              e._state.change({
                isRegex: e._findInput.getRegex(),
                wholeWord: e._findInput.getWholeWords(),
                matchCase: e._findInput.getCaseSensitive()
              }, !0)
            })), this._register(
                this._findInput.onCaseSensitiveKeyDown(function (t) {
                  t.equals(1026) && e._isReplaceVisible
                  && (e._replaceInputBox.focus(), t.preventDefault())
                })), o.isLinux && this._register(
                this._findInput.onMouseDown(function (t) {
                  return e._onFindInputMouseDown(t)
                })), this._matchesCount = document.createElement(
                "div"), this._matchesCount.className = "matchesCount", this._updateMatchesCount(), this._prevBtn = this._register(
                new B({
                  label: C + this._keybindingLabelFor(
                      h.FIND_IDS.PreviousMatchFindAction),
                  className: "previous",
                  onTrigger: function () {
                    e._codeEditor.getAction(
                        h.FIND_IDS.PreviousMatchFindAction).run().done(null,
                        i.onUnexpectedError)
                  },
                  onKeyDown: function (e) {
                  }
                })), this._nextBtn = this._register(new B({
              label: b + this._keybindingLabelFor(
                  h.FIND_IDS.NextMatchFindAction),
              className: "next",
              onTrigger: function () {
                e._codeEditor.getAction(
                    h.FIND_IDS.NextMatchFindAction).run().done(null,
                    i.onUnexpectedError)
              },
              onKeyDown: function (e) {
              }
            }));
            var t = document.createElement("div");
            return t.className = "find-part", t.appendChild(
                this._findInput.domNode), t.appendChild(
                this._matchesCount), t.appendChild(
                this._prevBtn.domNode), t.appendChild(
                this._nextBtn.domNode), this._toggleSelectionFind = this._register(
                new W({
                  parent: t,
                  title: w + this._keybindingLabelFor(
                      h.FIND_IDS.ToggleSearchScopeCommand),
                  onChange: function () {
                    if (e._toggleSelectionFind.checked) {
                      var t = e._codeEditor.getSelection();
                      1 === t.endColumn && t.endLineNumber > t.startLineNumber
                      && (t = t.setEndPosition(t.endLineNumber - 1,
                          1)), t.isEmpty() || e._state.change({searchScope: t},
                          !0)
                    } else {
                      e._state.change({searchScope: null}, !0)
                    }
                  }
                })), this._closeBtn = this._register(new B({
              label: S + this._keybindingLabelFor(
                  h.FIND_IDS.CloseFindWidgetCommand),
              className: "close-fw",
              onTrigger: function () {
                e._state.change({isRevealed: !1, searchScope: null}, !1)
              },
              onKeyDown: function (t) {
                t.equals(2) && e._isReplaceVisible && (e._replaceBtn.isEnabled()
                    ? e._replaceBtn.focus()
                    : e._codeEditor.focus(), t.preventDefault())
              }
            })), t.appendChild(this._closeBtn.domNode), t
          }, t.prototype._buildReplacePart = function () {
            var e = this, t = document.createElement("div");
            t.className = "replace-input", t.style.width = "221px", this._replaceInputBox = this._register(
                new u.InputBox(t, null,
                    {ariaLabel: E, placeholder: L})), this._register(
                s.addStandardDisposableListener(
                    this._replaceInputBox.inputElement, "keydown",
                    function (t) {
                      return e._onReplaceInputKeyDown(t)
                    })), this._register(s.addStandardDisposableListener(
                this._replaceInputBox.inputElement, "input", function (t) {
                  e._state.change({replaceString: e._replaceInputBox.value}, !1)
                })), this._replaceBtn = this._register(new B({
              label: x + this._keybindingLabelFor(h.FIND_IDS.ReplaceOneAction),
              className: "replace",
              onTrigger: function () {
                e._controller.replace()
              },
              onKeyDown: function (t) {
                t.equals(1026) && (e._closeBtn.focus(), t.preventDefault())
              }
            })), this._replaceAllBtn = this._register(new B({
              label: N + this._keybindingLabelFor(h.FIND_IDS.ReplaceAllAction),
              className: "replace-all",
              onTrigger: function () {
                e._controller.replaceAll()
              },
              onKeyDown: function (e) {
              }
            }));
            var n = document.createElement("div");
            return n.className = "replace-part", n.appendChild(
                t), n.appendChild(this._replaceBtn.domNode), n.appendChild(
                this._replaceAllBtn.domNode), n
          }, t.prototype._buildDomNode = function () {
            var e = this, t = this._buildFindPart(),
                n = this._buildReplacePart();
            this._toggleReplaceBtn = this._register(new B({
              label: M, className: "toggle left", onTrigger: function () {
                e._state.change({isReplaceRevealed: !e._isReplaceVisible},
                    !1), e._isReplaceVisible
                && (e._replaceInputBox.width = e._findInput.inputBox.width), e._showViewZone()
              }, onKeyDown: function (e) {
              }
            })), this._toggleReplaceBtn.toggleClass("expand",
                this._isReplaceVisible), this._toggleReplaceBtn.toggleClass(
                "collapse",
                !this._isReplaceVisible), this._toggleReplaceBtn.setExpanded(
                this._isReplaceVisible), this._domNode = document.createElement(
                "div"), this._domNode.className = "editor-widget find-widget", this._domNode.setAttribute(
                "aria-hidden", "true"), this._domNode.style.width = D
                + "px", this._domNode.appendChild(
                this._toggleReplaceBtn.domNode), this._domNode.appendChild(
                t), this._domNode.appendChild(n), this._buildSash()
          }, t.prototype._buildSash = function () {
            var e = this;
            this._resizeSash = new c.Sash(this._domNode, this,
                {orientation: c.Orientation.VERTICAL});
            var t = D;
            this._register(this._resizeSash.addListener("start", function (n) {
              t = s.getTotalWidth(e._domNode)
            })), this._register(
                this._resizeSash.addListener("change", function (n) {
                  var i = t + n.startX - n.currentX;
                  if (!(i < D)) {
                    var o = i - R;
                    i > (parseFloat(s.getComputedStyle(e._domNode).maxWidth)
                        || 0) || (e._domNode.style.width = i
                        + "px", e._isReplaceVisible
                    && (e._replaceInputBox.width = o))
                  }
                }))
          }, t.ID = "editor.contrib.findWidget", t
        }(l.Widget);
        t.FindWidget = F;
        var W = function (e) {
          function t(n) {
            var i = e.call(this) || this;
            return i._opts = n, i._domNode = document.createElement(
                "div"), i._domNode.className = "monaco-checkbox", i._domNode.title = i._opts.title, i._domNode.tabIndex = 0, i._checkbox = document.createElement(
                "input"), i._checkbox.type = "checkbox", i._checkbox.className = "checkbox", i._checkbox.id = "checkbox-"
                + t._COUNTER++, i._checkbox.tabIndex = -1, i._label = document.createElement(
                "label"), i._label.className = "label", i._label.htmlFor = i._checkbox.id, i._label.tabIndex = -1, i._domNode.appendChild(
                i._checkbox), i._domNode.appendChild(
                i._label), i._opts.parent.appendChild(i._domNode), i.onchange(
                i._checkbox, function (e) {
                  i._opts.onChange()
                }), i
          }

          return f(t, e), Object.defineProperty(t.prototype, "domNode", {
            get: function () {
              return this._domNode
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "checked", {
            get: function () {
              return this._checkbox.checked
            }, set: function (e) {
              this._checkbox.checked = e
            }, enumerable: !0, configurable: !0
          }), t.prototype.focus = function () {
            this._checkbox.focus()
          }, t.prototype.enable = function () {
            this._checkbox.removeAttribute("disabled")
          }, t.prototype.disable = function () {
            this._checkbox.disabled = !0
          }, t.prototype.setEnabled = function (e) {
            e ? (this.enable(), this.domNode.tabIndex = 0)
                : (this.disable(), this.domNode.tabIndex = -1)
          }, t._COUNTER = 0, t
        }(l.Widget), B = function (e) {
          function t(t) {
            var n = e.call(this) || this;
            return n._opts = t, n._domNode = document.createElement(
                "div"), n._domNode.title = n._opts.label, n._domNode.tabIndex = 0, n._domNode.className = "button "
                + n._opts.className, n._domNode.setAttribute("role",
                "button"), n._domNode.setAttribute("aria-label",
                n._opts.label), n.onclick(n._domNode, function (e) {
              n._opts.onTrigger(), e.preventDefault()
            }), n.onkeydown(n._domNode, function (e) {
              if (e.equals(10) || e.equals(
                  3)) {
                return n._opts.onTrigger(), void e.preventDefault();
              }
              n._opts.onKeyDown(e)
            }), n
          }

          return f(t, e), Object.defineProperty(t.prototype, "domNode", {
            get: function () {
              return this._domNode
            }, enumerable: !0, configurable: !0
          }), t.prototype.isEnabled = function () {
            return this._domNode.tabIndex >= 0
          }, t.prototype.focus = function () {
            this._domNode.focus()
          }, t.prototype.setEnabled = function (e) {
            s.toggleClass(this._domNode, "disabled",
                !e), this._domNode.setAttribute("aria-disabled",
                String(!e)), this._domNode.tabIndex = e ? 0 : -1
          }, t.prototype.setExpanded = function (e) {
            this._domNode.setAttribute("aria-expanded", String(!!e))
          }, t.prototype.toggleClass = function (e, t) {
            s.toggleClass(this._domNode, e, t)
          }, t
        }(l.Widget);
        t.SimpleButton = B, m.registerThemingParticipant(function (e, t) {
          function n(e, n) {
            n && t.addRule(
                ".monaco-editor " + e + " { background-color: " + n + "; }")
          }

          n(".findMatch", e.getColor(v.editorFindMatchHighlight)), n(
              ".currentFindMatch", e.getColor(v.editorFindMatch)), n(
              ".findScope", e.getColor(v.editorFindRangeHighlight)), n(
              ".find-widget", e.getColor(v.editorWidgetBackground));
          var i = e.getColor(v.widgetShadow);
          i && t.addRule(
              ".monaco-editor .find-widget { box-shadow: 0 2px 8px " + i
              + "; }");
          var o = e.getColor(v.activeContrastBorder);
          o && (t.addRule(
              ".monaco-editor .findScope { border: 1px dashed " + o.transparent(
                  .4) + "; }"), t.addRule(
              ".monaco-editor .currentFindMatch { border: 2px solid " + o
              + "; padding: 1px; -moz-box-sizing: border-box; box-sizing: border-box; }"), t.addRule(
              ".monaco-editor .findMatch { border: 1px dotted " + o
              + "; -moz-box-sizing: border-box; box-sizing: border-box; }"));
          var r = e.getColor(v.contrastBorder);
          r && t.addRule(
              ".monaco-editor .find-widget { border: 2px solid " + r + "; }");
          var s = e.getColor(v.errorForeground);
          s && t.addRule(
              ".monaco-editor .find-widget.no-results .matchesCount { color: "
              + s + "; }");
          var a = e.getColor("panel.border");
          a && t.addRule(
              ".monaco-editor .find-widget .monaco-sash { background-color: "
              + a + "; width: 3px !important; margin-left: -4px;}")
        })
      }),define(d[520], h([1, 0, 69, 46, 19, 30, 519, 518, 176, 14, 76]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function (e) {
          function t(t, n, i, o, r, u) {
            var l = e.call(this, t, i, u) || this;
            return l._widget = l._register(
                new s.FindWidget(t, l, l._state, n, o, i,
                    r)), l._findOptionsWidget = l._register(
                new a.FindOptionsWidget(t, l._state, o, r)), l
          }

          return f(t, e), t.prototype._start = function (t) {
            e.prototype._start.call(this, t), 2 === t.shouldFocus
                ? this._widget.focusReplaceInput() : 1 === t.shouldFocus
                && this._widget.focusFindInput()
          }, t.prototype.highlightFindOptions = function () {
            this._state.isRevealed ? this._widget.highlightFindOptions()
                : this._findOptionsWidget.highlightFindOptions()
          }, t = v([r.editorContribution, y(1, n.IContextViewService),
            y(2, o.IContextKeyService), y(3, i.IKeybindingService),
            y(4, l.IThemeService), y(5, c.IStorageService)], t)
        }(u.CommonFindController);
        t.FindController = d
      }),define(d[521], h([1, 0, 18, 3, 51, 2, 13, 25, 19, 14, 23, 335]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function () {
          function e(e, n) {
            this._messageListeners = [], this._editor = e, this._visible = t.CONTEXT_SNIPPET_MODE.bindTo(
                n)
          }

          return t = e, e.get = function (e) {
            return e.getContribution(t._id)
          }, e.prototype.getId = function () {
            return t._id
          }, e.prototype.dispose = function () {
            this._visible.reset()
          }, e.prototype.showMessage = function (e, t) {
            var s = this;
            o.alert(e), this._visible.set(!0), i.dispose(
                this._messageWidget), this._messageListeners = i.dispose(
                this._messageListeners), this._messageWidget = new p(
                this._editor, t, e), this._messageListeners.push(
                this._editor.onDidBlurEditorText(function () {
                  return s.closeMessage()
                })), this._messageListeners.push(
                this._editor.onDidChangeCursorPosition(function () {
                  return s.closeMessage()
                })), this._messageListeners.push(
                this._editor.onDidDispose(function () {
                  return s.closeMessage()
                })), this._messageListeners.push(
                this._editor.onDidChangeModel(function () {
                  return s.closeMessage()
                })), this._messageListeners.push(
                n.setDisposableTimeout(function () {
                  return s.closeMessage()
                }, 3e3));
            var a;
            this._messageListeners.push(this._editor.onMouseMove(function (e) {
              e.target.position && (a ? a.containsPosition(e.target.position)
                  || s.closeMessage() : a = new r.Range(t.lineNumber - 3, 1,
                  e.target.position.lineNumber + 3, 1))
            }))
          }, e.prototype.closeMessage = function () {
            this._visible.reset(), this._messageListeners = i.dispose(
                this._messageListeners), this._messageListeners.push(
                p.fadeOut(this._messageWidget))
          }, e._id = "editor.contrib.messageController", e.CONTEXT_SNIPPET_MODE = new u.RawContextKey(
              "messageVisible", !1), e = t = v(
              [s.commonEditorContribution, y(1, u.IContextKeyService)], e);
          var t
        }();
        t.MessageController = d;
        var h = s.EditorCommand.bindToContribution(d.get);
        s.CommonEditorRegistry.registerEditorCommand(new h({
          id: "leaveEditorMessage",
          precondition: d.CONTEXT_SNIPPET_MODE,
          handler: function (e) {
            return e.closeMessage()
          },
          kbOpts: {weight: s.CommonEditorRegistry.commandWeight(30), primary: 9}
        }));
        var p = function () {
          function e(e, t, n) {
            var i = t.lineNumber, o = t.column;
            this.allowEditorOverflow = !0, this.suppressMouseDown = !1, this._editor = e, this._editor.revealLinesInCenterIfOutsideViewport(
                i, i), this._position = {
              lineNumber: i,
              column: 1
            }, this._domNode = document.createElement(
                "div"), this._domNode.style.paddingLeft = e.getOffsetForColumn(
                i, o) - 6 + "px", this._domNode.classList.add(
                "monaco-editor-overlaymessage");
            var r = document.createElement("div");
            r.classList.add(
                "message"), r.textContent = n, this._domNode.appendChild(r);
            var s = document.createElement("div");
            s.classList.add("anchor"), this._domNode.appendChild(
                s), this._editor.addContentWidget(
                this), this._domNode.classList.add("fadeIn")
          }

          return e.fadeOut = function (e) {
            var t, n = function () {
              e.dispose(), clearTimeout(t), e.getDomNode().removeEventListener(
                  "animationend", n)
            };
            return t = setTimeout(n, 110), e.getDomNode().addEventListener(
                "animationend", n), e.getDomNode().classList.add(
                "fadeOut"), {dispose: n}
          }, e.prototype.dispose = function () {
            this._editor.removeContentWidget(this)
          }, e.prototype.getId = function () {
            return "messageoverlay"
          }, e.prototype.getDomNode = function () {
            return this._domNode
          }, e.prototype.getPosition = function () {
            return {
              position: this._position,
              preference: [a.ContentWidgetPositionPreference.ABOVE]
            }
          }, e
        }();
        l.registerThemingParticipant(function (e, t) {
          var n = e.getColor(c.inputValidationInfoBorder);
          if (n) {
            var i = e.type === l.HIGH_CONTRAST ? 2 : 1;
            t.addRule(
                ".monaco-editor .monaco-editor-overlaymessage .anchor { border-top-color: "
                + n + "; }"), t.addRule(
                ".monaco-editor .monaco-editor-overlaymessage .message { border: "
                + i + "px solid " + n + "; }")
          }
          var o = e.getColor(c.inputValidationInfoBackground);
          o && t.addRule(
              ".monaco-editor .monaco-editor-overlaymessage .message { background-color: "
              + o + "; }")
        })
      }),define(d[522],
      h([1, 0, 353, 11, 3, 36, 4, 19, 103, 58, 12, 2, 13, 30, 183, 23, 14, 32,
        21, 37, 366]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, C, b, w, S) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var E = function () {
              function e(e, t) {
                var n = this;
                this._editor = e, this._markers = null, this._nextIdx = -1, this._toUnbind = [], this._ignoreSelectionChange = !1, this._onCurrentMarkerChanged = new i.Emitter, this._onMarkerSetChanged = new i.Emitter, this.setMarkers(
                    t), this._toUnbind.push(this._editor.onDidDispose(function () {
                  return n.dispose()
                })), this._toUnbind.push(
                    this._editor.onDidChangeCursorPosition(function () {
                      n._ignoreSelectionChange || (n._nextIdx = -1)
                    }))
              }

              return Object.defineProperty(e.prototype, "onCurrentMarkerChanged", {
                get: function () {
                  return this._onCurrentMarkerChanged.event
                }, enumerable: !0, configurable: !0
              }), Object.defineProperty(e.prototype, "onMarkerSetChanged", {
                get: function () {
                  return this._onMarkerSetChanged.event
                }, enumerable: !0, configurable: !0
              }), e.prototype.setMarkers = function (e) {
                this._markers = e || [], this._markers.sort(function (e, t) {
                  return r.default.compare(e.severity, t.severity)
                      || d.Range.compareRangesUsingStarts(e, t)
                }), this._nextIdx = -1, this._onMarkerSetChanged.fire(this)
              }, e.prototype.withoutWatchingEditorPosition = function (e) {
                this._ignoreSelectionChange = !0;
                try {
                  e()
                } finally {
                  this._ignoreSelectionChange = !1
                }
              }, e.prototype._initIdx = function (e) {
                for (var t = !1, n = this._editor.getPosition(), i = 0;
                    i < this._markers.length; i++) {
                  var o = d.Range.lift(this._markers[i]);
                  if (o.isEmpty()) {
                    var r = this._editor.getModel().getWordAtPosition(
                        o.getStartPosition());
                    r && (o = new d.Range(o.startLineNumber, r.startColumn,
                        o.startLineNumber, r.endColumn))
                  }
                  if (o.containsPosition(n) || n.isBeforeOrEqual(
                      o.getStartPosition())) {
                    this._nextIdx = i + (e ? 0 : -1), t = !0;
                    break
                  }
                }
                t || (this._nextIdx = e ? 0 : this._markers.length
                    - 1), this._nextIdx < 0 && (this._nextIdx = this._markers.length
                    - 1)
              }, e.prototype.move = function (e) {
                if (this.canNavigate()) {
                  -1 === this._nextIdx ? this._initIdx(e) : e
                      ? (this._nextIdx += 1, this._nextIdx >= this._markers.length
                      && (this._nextIdx = 0)) : (this._nextIdx -= 1, this._nextIdx
                      < 0 && (this._nextIdx = this._markers.length - 1));
                  var t = this._markers[this._nextIdx];
                  this._onCurrentMarkerChanged.fire(t)
                } else {
                  this._onCurrentMarkerChanged.fire(void 0)
                }
              }, e.prototype.canNavigate = function () {
                return this._markers.length > 0
              }, e.prototype.next = function () {
                this.move(!0)
              }, e.prototype.previous = function () {
                this.move(!1)
              }, e.prototype.findMarkerAtPosition = function (e) {
                for (var t = 0, n = this._markers; t < n.length; t++) {
                  var i = n[t];
                  if (d.Range.containsPosition(i, e)) {
                    return i
                  }
                }
              }, Object.defineProperty(e.prototype, "total", {
                get: function () {
                  return this._markers.length
                }, enumerable: !0, configurable: !0
              }), e.prototype.indexOf = function (e) {
                return 1 + this._markers.indexOf(e)
              }, e.prototype.reveal = function () {
                var e = this;
                -1 !== this._nextIdx && this.withoutWatchingEditorPosition(
                    function () {
                      var t = new c.Position(e._markers[e._nextIdx].startLineNumber,
                          e._markers[e._nextIdx].startColumn);
                      e._editor.setPosition(t), e._editor.revealPositionInCenter(t)
                    })
              }, e.prototype.dispose = function () {
                this._toUnbind = o.dispose(this._toUnbind)
              }, e
            }(), L = function () {
              function e(e) {
                this.lines = 0, this.domNode = document.createElement(
                    "div"), this.domNode.className = "block descriptioncontainer", this.domNode.setAttribute(
                    "aria-live", "assertive"), this.domNode.setAttribute("role",
                    "alert"), e.appendChild(this.domNode)
              }

              return e.prototype.update = function (e) {
                var t = this, n = e.source, i = e.message;
                if (this.lines = 1, n) {
                  var o = new Array(n.length + 3 + 1).join(" ");
                  i = "[" + n + "] " + i.replace(/\r\n|\r|\n/g, function () {
                    return t.lines += 1, "\n" + o
                  })
                }
                this.domNode.innerText = i
              }, e
            }(), x = function (e) {
              function i(t, n, i) {
                var o = e.call(this, t,
                    {showArrow: !0, showFrame: !0, isAccessible: !0}) || this;
                return o._model = n, o._themeService = i, o._callOnDispose = [], o._severity = r.default.Warning, o._backgroundColor = b.Color.white, o._applyTheme(
                    i.getTheme()), o._callOnDispose.push(i.onThemeChange(
                    o._applyTheme.bind(o))), o.create(), o._wireModelAndView(), o
              }

              return f(i, e), i.prototype._applyTheme = function (e) {
                this._backgroundColor = e.getColor(
                    t.editorMarkerNavigationBackground);
                var n = e.getColor(this._severity === r.default.Error
                    ? t.editorMarkerNavigationError
                    : t.editorMarkerNavigationWarning);
                this.style({arrowColor: n, frameColor: n})
              }, i.prototype._applyStyles = function () {
                this._parentContainer
                && (this._parentContainer.style.backgroundColor = this._backgroundColor.toString()), e.prototype._applyStyles.call(
                    this)
              }, i.prototype.dispose = function () {
                this._callOnDispose = o.dispose(
                    this._callOnDispose), e.prototype.dispose.call(this)
              }, i.prototype.focus = function () {
                this._parentContainer.focus()
              }, i.prototype._fillContainer = function (e) {
                this._parentContainer = e, s.addClass(e,
                    "marker-widget"), this._parentContainer.tabIndex = 0, this._parentContainer.setAttribute(
                    "role", "tooltip"), this._container = document.createElement(
                    "div"), e.appendChild(
                    this._container), this._title = document.createElement(
                    "div"), this._title.className = "block title", this._container.appendChild(
                    this._title), this._message = new L(
                    this._container), this.editor.applyFontInfo(
                    this._message.domNode)
              }, i.prototype.show = function (t, n) {
                e.prototype.show.call(this, t, n), 1
                !== this.editor.getConfiguration().accessibilitySupport
                && this.focus()
              }, i.prototype._wireModelAndView = function () {
                this._model.onCurrentMarkerChanged(this.showAtMarker, this,
                    this._callOnDispose), this._model.onMarkerSetChanged(
                    this._onMarkersChanged, this, this._callOnDispose)
              }, i.prototype.showAtMarker = function (e) {
                var t = this;
                e && (this._container.classList.remove(
                    "stale"), this._title.innerHTML = n.localize(0, null,
                    this._model.indexOf(e),
                    this._model.total), this._message.update(
                    e), this._model.withoutWatchingEditorPosition(function () {
                  t._severity = e.severity, t._applyTheme(
                      t._themeService.getTheme()), t.show(
                      new c.Position(e.startLineNumber, e.startColumn),
                      t.computeRequiredHeight())
                }))
              }, i.prototype._onMarkersChanged = function () {
                var e = this._model.findMarkerAtPosition(this.position);
                e ? (this._container.classList.remove(
                        "stale"), this._message.update(e))
                    : this._container.classList.add("stale"), this._relayout()
              }, i.prototype._relayout = function () {
                e.prototype._relayout.call(this, this.computeRequiredHeight())
              }, i.prototype.computeRequiredHeight = function () {
                return 1 + this._message.lines
              }, i
            }(g.ZoneWidget), N = function (e) {
              function t(t, n) {
                var i = e.call(this, n) || this;
                return i._isNext = t, i
              }

              return f(t, e), t.prototype.run = function (e, t) {
                var n = e.get(l.ITelemetryService), i = M.get(t);
                if (i) {
                  var o = i.getOrCreateModel();
                  n.publicLog("zoneWidgetShown",
                      _({mode: "go to error"}, t.getTelemetryData())), o
                  && (this._isNext ? o.next() : o.previous(), o.reveal())
                }
              }, t
            }(h.EditorAction), M = function () {
              function e(e, t, n, i) {
                this._markerService = t, this._contextKeyService = n, this._themeService = i, this._callOnClose = [], this._editor = e, this._markersNavigationVisible = T.bindTo(
                    this._contextKeyService)
              }

              return t = e, e.get = function (e) {
                return e.getContribution(t.ID)
              }, e.prototype.getId = function () {
                return t.ID
              }, e.prototype.dispose = function () {
                this._cleanUp()
              }, e.prototype._cleanUp = function () {
                this._markersNavigationVisible.reset(), this._callOnClose = o.dispose(
                    this._callOnClose), this._zone = null, this._model = null
              }, e.prototype.getOrCreateModel = function () {
                var e = this;
                if (this._model) {
                  return this._model;
                }
                var t = this._getMarkers();
                return this._model = new E(this._editor, t), this._zone = new x(
                    this._editor, this._model,
                    this._themeService), this._markersNavigationVisible.set(
                    !0), this._callOnClose.push(
                    this._model), this._callOnClose.push(
                    this._zone), this._callOnClose.push(
                    this._editor.onDidChangeModel(function () {
                      return e._cleanUp()
                    })), this._model.onCurrentMarkerChanged(function (t) {
                  return !t && e._cleanUp()
                }, void 0, this._callOnClose), this._markerService.onMarkerChanged(
                    this._onMarkerChanged, this, this._callOnClose), this._model
              }, e.prototype.closeMarkersNavigation = function () {
                this._cleanUp(), this._editor.focus()
              }, e.prototype._onMarkerChanged = function (e) {
                var t = this;
                e.some(function (e) {
                  return t._editor.getModel().uri.toString() === e.toString()
                }) && this._model.setMarkers(this._getMarkers())
              }, e.prototype._getMarkers = function () {
                return this._markerService.read(
                    {resource: this._editor.getModel().uri})
              }, e.ID = "editor.contrib.markerController", e = t = v(
                  [p.editorContribution, y(1, u.IMarkerService),
                    y(2, a.IContextKeyService), y(3, C.IThemeService)], e);
              var t
            }(), T = (function (e) {
              function t() {
                return e.call(this, !0, {
                  id: "editor.action.marker.next",
                  label: n.localize(1, null),
                  alias: "Go to Next Error or Warning",
                  precondition: w.EditorContextKeys.writable,
                  kbOpts: {kbExpr: w.EditorContextKeys.focus, primary: 66}
                }) || this
              }

              f(t, e), t = v([h.editorAction], t)
            }(N), function (e) {
              function t() {
                return e.call(this, !1, {
                  id: "editor.action.marker.prev",
                  label: n.localize(2, null),
                  alias: "Go to Previous Error or Warning",
                  precondition: w.EditorContextKeys.writable,
                  kbOpts: {kbExpr: w.EditorContextKeys.focus, primary: 1090}
                }) || this
              }

              f(t, e), t = v([h.editorAction], t)
            }(N), new a.RawContextKey("markersNavigationVisible", !1)),
            k = h.EditorCommand.bindToContribution(M.get);
        h.CommonEditorRegistry.registerEditorCommand(new k({
          id: "closeMarkersNavigation",
          precondition: T,
          handler: function (e) {
            return e.closeMarkersNavigation()
          },
          kbOpts: {
            weight: h.CommonEditorRegistry.commandWeight(50),
            kbExpr: w.EditorContextKeys.focus,
            primary: 9,
            secondary: [1033]
          }
        }));
        var I = m.oneOf(S.editorErrorForeground, S.editorErrorBorder),
            D = m.oneOf(S.editorWarningForeground, S.editorWarningBorder);
        t.editorMarkerNavigationError = m.registerColor(
            "editorMarkerNavigationError.background",
            {dark: I, light: I, hc: I}, n.localize(3,
                null)), t.editorMarkerNavigationWarning = m.registerColor(
            "editorMarkerNavigationWarning.background",
            {dark: D, light: D, hc: D}, n.localize(4,
                null)), t.editorMarkerNavigationBackground = m.registerColor(
            "editorMarkerNavigation.background",
            {dark: "#2D2D30", light: b.Color.white, hc: "#0C141F"},
            n.localize(5, null))
      }),define(d[523],
      h([1, 0, 354, 40, 15, 71, 88, 2, 13, 25, 30, 463, 425, 3, 14, 23, 21,
        388]), function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var C = function () {
          function e(e, t, n) {
            var i = this;
            this._editor = e, this._toUnhook = [], this._isMouseDown = !1, e.getConfiguration().contribInfo.hover
            && (this._toUnhook.push(this._editor.onMouseDown(function (e) {
              return i._onEditorMouseDown(e)
            })), this._toUnhook.push(this._editor.onMouseUp(function (e) {
              return i._onEditorMouseUp(e)
            })), this._toUnhook.push(this._editor.onMouseMove(function (e) {
              return i._onEditorMouseMove(e)
            })), this._toUnhook.push(this._editor.onMouseLeave(function (e) {
              return i._hideWidgets()
            })), this._toUnhook.push(this._editor.onKeyDown(function (e) {
              return i._onKeyDown(e)
            })), this._toUnhook.push(this._editor.onDidChangeModel(function () {
              return i._hideWidgets()
            })), this._toUnhook.push(
                this._editor.onDidChangeModelDecorations(function () {
                  return i._onModelDecorationsChanged()
                })), this._toUnhook.push(
                this._editor.onDidScrollChange(function (e) {
                  (e.scrollTopChanged || e.scrollLeftChanged)
                  && i._hideWidgets()
                })), this._contentWidget = new d.ModesContentHoverWidget(e, t,
                n), this._glyphWidget = new h.ModesGlyphHoverWidget(e, t, n))
          }

          return t = e, e.get = function (e) {
            return e.getContribution(t.ID)
          }, e.prototype._onModelDecorationsChanged = function () {
            this._contentWidget.onModelDecorationsChanged(), this._glyphWidget.onModelDecorationsChanged()
          }, e.prototype._onEditorMouseDown = function (e) {
            this._isMouseDown = !0;
            var t = e.target.type;
            t !== l.MouseTargetType.CONTENT_WIDGET || e.target.detail
            !== d.ModesContentHoverWidget.ID ? t
                === l.MouseTargetType.OVERLAY_WIDGET && e.target.detail
                === h.ModesGlyphHoverWidget.ID || (t
                !== l.MouseTargetType.OVERLAY_WIDGET && e.target.detail
                !== h.ModesGlyphHoverWidget.ID
                && (this._hoverClicked = !1), this._hideWidgets())
                : this._hoverClicked = !0
          }, e.prototype._onEditorMouseUp = function (e) {
            this._isMouseDown = !1
          }, e.prototype._onEditorMouseMove = function (e) {
            var t = e.target.type, n = o.isMacintosh ? "metaKey" : "ctrlKey";
            this._isMouseDown && this._hoverClicked
            && this._contentWidget.isColorPickerVisible() || (t
                !== l.MouseTargetType.CONTENT_WIDGET || e.target.detail
                !== d.ModesContentHoverWidget.ID || e.event[n]) && (t
                !== l.MouseTargetType.OVERLAY_WIDGET || e.target.detail
                !== h.ModesGlyphHoverWidget.ID || e.event[n])
            && (this._editor.getConfiguration().contribInfo.hover && t
            === l.MouseTargetType.CONTENT_TEXT
                ? (this._glyphWidget.hide(), this._contentWidget.startShowingAt(
                    e.target.range, !1)) : t
                === l.MouseTargetType.GUTTER_GLYPH_MARGIN
                    ? (this._contentWidget.hide(), this._glyphWidget.startShowingAt(
                        e.target.position.lineNumber)) : this._hideWidgets())
          }, e.prototype._onKeyDown = function (e) {
            5 !== e.keyCode && 6 !== e.keyCode && 57 !== e.keyCode
            && this._hideWidgets()
          }, e.prototype._hideWidgets = function () {
            this._isMouseDown && this._hoverClicked
            && this._contentWidget.isColorPickerVisible()
            || (this._glyphWidget.hide(), this._contentWidget.hide())
          }, e.prototype.showContentHover = function (e, t) {
            this._contentWidget.startShowingAt(e, t)
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.dispose = function () {
            this._toUnhook = p.dispose(this._toUnhook), this._glyphWidget
            && (this._glyphWidget.dispose(), this._glyphWidget = null), this._contentWidget
            && (this._contentWidget.dispose(), this._contentWidget = null)
          }, e.ID = "editor.contrib.hover", e = t = v(
              [c.editorContribution, y(1, r.IOpenerService),
                y(2, s.IModeService)], e);
          var t
        }();
        t.ModesHoverController = C;
        !function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.showHover",
              label: n.localize(0, null),
              alias: "Show Hover",
              precondition: null,
              kbOpts: {
                kbExpr: _.EditorContextKeys.textFocus,
                primary: i.KeyChord(2089, 2087)
              }
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            var n = C.get(t);
            if (n) {
              var i = t.getPosition(),
                  o = new a.Range(i.lineNumber, i.column, i.lineNumber,
                      i.column);
              n.showContentHover(o, !0)
            }
          }, t = v([u.editorAction], t)
        }(u.EditorAction);
        g.registerThemingParticipant(function (e, t) {
          var n = e.getColor(m.editorHoverHighlight);
          n && t.addRule(
              ".monaco-editor .hoverHighlight { background-color: " + n
              + "; }");
          var i = e.getColor(m.editorHoverBackground);
          i && t.addRule(
              ".monaco-editor .monaco-editor-hover { background-color: " + i
              + "; }");
          var o = e.getColor(m.editorHoverBorder);
          o && (t.addRule(
              ".monaco-editor .monaco-editor-hover { border: 1px solid " + o
              + "; }"), t.addRule(
              ".monaco-editor .monaco-editor-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid "
              + o.transparent(.5) + "; }"));
          var r = e.getColor(m.textLinkForeground);
          r && t.addRule(
              ".monaco-editor .monaco-editor-hover a { color: " + r + "; }");
          var s = e.getColor(m.textCodeBlockBackground);
          s && t.addRule(
              ".monaco-editor .monaco-editor-hover code { background-color: "
              + s + "; }")
        })
      }),define(d[524],
      h([1, 0, 356, 7, 2, 22, 21, 13, 61, 262, 131, 14, 37, 34]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var g = function () {
          function e(e, t) {
            this.editor = e, this.editorWorkerService = t, this.requestIdPool = 0, this.currentRequest = i.TPromise.as(
                null), this.decorationRemover = i.TPromise.as(
                null), this.decorationIds = []
          }

          return t = e, e.get = function (e) {
            return e.getContribution(t.ID)
          }, e.prototype.dispose = function () {
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.run = function (e, n) {
            var s = this;
            this.currentRequest.cancel();
            var a = this.editor.getSelection(), u = this.editor.getModel().uri;
            if (a.startLineNumber !== a.endLineNumber) {
              return null;
            }
            var d = new c.EditorState(this.editor, 5);
            return this.editorWorkerService.canNavigateValueSet(u)
                ? (this.currentRequest = this.editorWorkerService.navigateValueSet(
                    u, a, n), this.currentRequest = this.currentRequest.then(
                    function (e) {
                      return e && e.range && e.value ? e : null
                    })) : this.currentRequest = i.TPromise.as(
                    null), this.currentRequest.then(function (n) {
              if (n && n.range && n.value && d.validate(s.editor)) {
                var u = o.Range.lift(n.range), c = n.range,
                    h = n.value.length - (a.endColumn - a.startColumn);
                c = {
                  startLineNumber: c.startLineNumber,
                  startColumn: c.startColumn,
                  endLineNumber: c.endLineNumber,
                  endColumn: c.startColumn + n.value.length
                }, h > 1 && (a = new r.Selection(a.startLineNumber,
                    a.startColumn, a.endLineNumber, a.endColumn + h - 1));
                var p = new l.InPlaceReplaceCommand(u, a, n.value);
                s.editor.pushUndoStop(), s.editor.executeCommand(e,
                    p), s.editor.pushUndoStop(), s.decorationIds = s.editor.deltaDecorations(
                    s.decorationIds, [{
                      range: c,
                      options: t.DECORATION
                    }]), s.decorationRemover.cancel(), s.decorationRemover = i.TPromise.timeout(
                    350), s.decorationRemover.then(function () {
                  s.editor.changeDecorations(function (e) {
                    s.decorationIds = e.deltaDecorations(s.decorationIds, [])
                  })
                })
              }
            })
          }, e.ID = "editor.contrib.inPlaceReplaceController", e.DECORATION = p.ModelDecorationOptions.register(
              {className: "valueSetReplacement"}), e = t = v(
              [a.commonEditorContribution, y(1, u.IEditorWorkerService)], e);
          var t
        }();
        (function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.inPlaceReplace.up",
              label: n.localize(0, null),
              alias: "Replace with Previous Value",
              precondition: s.EditorContextKeys.writable,
              kbOpts: {kbExpr: s.EditorContextKeys.textFocus, primary: 3154}
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            var n = g.get(t);
            if (n) {
              return n.run(this.id, !0)
            }
          }, t = v([a.editorAction], t)
        })(a.EditorAction), function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.inPlaceReplace.down",
              label: n.localize(1, null),
              alias: "Replace with Next Value",
              precondition: s.EditorContextKeys.writable,
              kbOpts: {kbExpr: s.EditorContextKeys.textFocus, primary: 3156}
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            var n = g.get(t);
            if (n) {
              return n.run(this.id, !1)
            }
          }, t = v([a.editorAction], t)
        }(a.EditorAction);
        d.registerThemingParticipant(function (e, t) {
          var n = e.getColor(h.editorBracketMatchBorder);
          n && t.addRule(
              ".monaco-editor.vs .valueSetReplacement { outline: solid 2px " + n
              + "; }")
        })
      }),define(d[525],
      h([1, 0, 358, 10, 15, 36, 7, 50, 71, 20, 13, 17, 61, 25, 401, 3, 30, 14,
        23, 34, 192, 389]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, C, b, w, S) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var E = o.isMacintosh ? n.localize(0, null) : n.localize(1, null),
            L = o.isMacintosh ? n.localize(2, null) : n.localize(3, null),
            x = n.localize(4, null), N = n.localize(5, null), M = {
              meta: w.ModelDecorationOptions.register({
                stickiness: l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
                inlineClassName: "detected-link",
                hoverMessage: E
              }),
              metaActive: w.ModelDecorationOptions.register({
                stickiness: l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
                inlineClassName: "detected-link-active",
                hoverMessage: E
              }),
              alt: w.ModelDecorationOptions.register({
                stickiness: l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
                inlineClassName: "detected-link",
                hoverMessage: x
              }),
              altActive: w.ModelDecorationOptions.register({
                stickiness: l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
                inlineClassName: "detected-link-active",
                hoverMessage: x
              }),
              altCommand: w.ModelDecorationOptions.register({
                stickiness: l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
                inlineClassName: "detected-link",
                hoverMessage: N
              }),
              altCommandActive: w.ModelDecorationOptions.register({
                stickiness: l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
                inlineClassName: "detected-link-active",
                hoverMessage: N
              }),
              metaCommand: w.ModelDecorationOptions.register({
                stickiness: l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
                inlineClassName: "detected-link",
                hoverMessage: L
              }),
              metaCommandActive: w.ModelDecorationOptions.register({
                stickiness: l.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
                inlineClassName: "detected-link-active",
                hoverMessage: L
              })
            }, T = function () {
              function e(e, t) {
                this.link = e, this.decorationId = t
              }

              return e.decoration = function (t, n) {
                return {range: t.range, options: e._getOptions(t, n, !1)}
              }, e._getOptions = function (e, t, n) {
                return /^command:/i.test(e.url) ? t ? n ? M.metaCommandActive
                    : M.metaCommand : n ? M.altCommandActive : M.altCommand : t ? n
                    ? M.metaActive : M.meta : n ? M.altActive : M.alt
              }, e.prototype.activate = function (t, n) {
                t.changeDecorationOptions(this.decorationId,
                    e._getOptions(this.link, n, !0))
              }, e.prototype.deactivate = function (t, n) {
                t.changeDecorationOptions(this.decorationId,
                    e._getOptions(this.link, n, !1))
              }, e
            }(), k = function () {
              function e(e, t, n, i) {
                var o = this;
                this.editor = e, this.openerService = t, this.messageService = n, this.editorWorkerService = i, this.listenersToRemove = [];
                var r = new S.ClickLinkGesture(e);
                this.listenersToRemove.push(r), this.listenersToRemove.push(
                    r.onMouseMoveOrRelevantKeyDown(function (e) {
                      var t = e[0], n = e[1];
                      o._onEditorMouseMove(t, n)
                    })), this.listenersToRemove.push(r.onExecute(function (e) {
                  o.onEditorMouseUp(e)
                })), this.listenersToRemove.push(r.onCancel(function (e) {
                  o.cleanUpActiveLinkDecoration()
                })), this.enabled = e.getConfiguration().contribInfo.links, this.listenersToRemove.push(
                    e.onDidChangeConfiguration(function (t) {
                      var n = e.getConfiguration().contribInfo.links;
                      o.enabled !== n && (o.enabled = n, o.updateDecorations(
                          []), o.stop(), o.beginCompute())
                    })), this.listenersToRemove.push(
                    e.onDidChangeModelContent(function (e) {
                      return o.onChange()
                    })), this.listenersToRemove.push(
                    e.onDidChangeModel(function (e) {
                      return o.onModelChanged()
                    })), this.listenersToRemove.push(
                    e.onDidChangeModelLanguage(function (e) {
                      return o.onModelModeChanged()
                    })), this.listenersToRemove.push(
                    d.LinkProviderRegistry.onDidChange(function (e) {
                      return o.onModelModeChanged()
                    })), this.timeoutPromise = null, this.computePromise = null, this.currentOccurrences = {}, this.activeLinkDecorationId = null, this.beginCompute()
              }

              return t = e, e.get = function (e) {
                return e.getContribution(t.ID)
              }, e.prototype.getId = function () {
                return t.ID
              }, e.prototype.isComputing = function () {
                return s.TPromise.is(this.computePromise)
              }, e.prototype.onModelChanged = function () {
                this.currentOccurrences = {}, this.activeLinkDecorationId = null, this.stop(), this.beginCompute()
              }, e.prototype.onModelModeChanged = function () {
                this.stop(), this.beginCompute()
              }, e.prototype.onChange = function () {
                var e = this;
                this.timeoutPromise || (this.timeoutPromise = s.TPromise.timeout(
                    t.RECOMPUTE_TIME), this.timeoutPromise.then(function () {
                  e.timeoutPromise = null, e.beginCompute()
                }))
              }, e.prototype.beginCompute = function () {
                var e = this;
                this.editor.getModel() && this.enabled
                && d.LinkProviderRegistry.has(this.editor.getModel())
                && (this.computePromise = g.getLinks(this.editor.getModel()).then(
                    function (t) {
                      e.updateDecorations(t), e.computePromise = null
                    }))
              }, e.prototype.updateDecorations = function (e) {
                var t = this, n = "altKey"
                    === this.editor.getConfiguration().multiCursorModifier;
                this.editor.changeDecorations(function (i) {
                  for (var o = [], r = Object.keys(t.currentOccurrences), s = 0,
                      a = r.length; s < a; s++) {
                    var u = r[s], l = t.currentOccurrences[u];
                    o.push(l.decorationId)
                  }
                  var c = [];
                  if (e) {
                    for (var d = 0; d < e.length; d++) {
                      c.push(
                          T.decoration(e[d], n));
                    }
                  }
                  var h = i.deltaDecorations(o, c);
                  t.currentOccurrences = {}, t.activeLinkDecorationId = null;
                  for (var p = 0, a = h.length; p < a; p++) {
                    var f = new T(e[p], h[p]);
                    t.currentOccurrences[f.decorationId] = f
                  }
                })
              }, e.prototype._onEditorMouseMove = function (e, t) {
                var n = this, i = "altKey"
                    === this.editor.getConfiguration().multiCursorModifier;
                if (this.isEnabled(e, t)) {
                  this.cleanUpActiveLinkDecoration();
                  var o = this.getLinkOccurrence(e.target.position);
                  o && this.editor.changeDecorations(function (e) {
                    o.activate(e, i), n.activeLinkDecorationId = o.decorationId
                  })
                } else {
                  this.cleanUpActiveLinkDecoration()
                }
              }, e.prototype.cleanUpActiveLinkDecoration = function () {
                var e = "altKey"
                    === this.editor.getConfiguration().multiCursorModifier;
                if (this.activeLinkDecorationId) {
                  var t = this.currentOccurrences[this.activeLinkDecorationId];
                  t && this.editor.changeDecorations(function (n) {
                    t.deactivate(n, e)
                  }), this.activeLinkDecorationId = null
                }
              }, e.prototype.onEditorMouseUp = function (e) {
                if (this.isEnabled(e)) {
                  var t = this.getLinkOccurrence(e.target.position);
                  t && this.openLinkOccurrence(t, e.hasSideBySideModifier)
                }
              }, e.prototype.openLinkOccurrence = function (e, t) {
                var o = this;
                if (this.openerService) {
                  var s = e.link;
                  s.resolve().then(function (e) {
                    return o.openerService.open(e, {openToSide: t})
                  }, function (e) {
                    "invalid" === e ? o.messageService.show(r.default.Warning,
                        n.localize(6, null, s.url)) : "missing" === e
                        ? o.messageService.show(r.default.Warning,
                            n.localize(7, null)) : i.onUnexpectedError(e)
                  }).done(null, i.onUnexpectedError)
                }
              }, e.prototype.getLinkOccurrence = function (e) {
                for (var t = this.editor.getModel().getDecorationsInRange({
                  startLineNumber: e.lineNumber,
                  startColumn: e.column,
                  endLineNumber: e.lineNumber,
                  endColumn: e.column
                }, 0, !0), n = 0; n < t.length; n++) {
                  var i = t[n], o = this.currentOccurrences[i.id];
                  if (o) {
                    return o
                  }
                }
                return null
              }, e.prototype.isEnabled = function (e, t) {
                return e.target.type === p.MouseTargetType.CONTENT_TEXT
                    && (e.hasTriggerModifier || t && t.keyCodeIsTriggerKey)
              }, e.prototype.stop = function () {
                this.timeoutPromise
                && (this.timeoutPromise.cancel(), this.timeoutPromise = null), this.computePromise
                && (this.computePromise.cancel(), this.computePromise = null)
              }, e.prototype.dispose = function () {
                this.listenersToRemove = m.dispose(
                    this.listenersToRemove), this.stop()
              }, e.ID = "editor.linkDetector", e.RECOMPUTE_TIME = 1e3, e = t = v(
                  [_.editorContribution, y(1, u.IOpenerService),
                    y(2, a.IMessageService), y(3, h.IEditorWorkerService)], e);
              var t
            }();
        !function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.openLink",
              label: n.localize(8, null),
              alias: "Open Link",
              precondition: null
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            var n = k.get(t);
            if (n) {
              var i = n.getLinkOccurrence(t.getPosition());
              i && n.openLinkOccurrence(i, !1)
            }
          }, t = v([c.editorAction], t)
        }(c.EditorAction);
        C.registerThemingParticipant(function (e, t) {
          var n = e.getColor(b.editorActiveLinkForeground);
          n && t.addRule(".monaco-editor .detected-link-active { color: " + n
              + " !important; }")
        })
      }),define(d[526],
      h([1, 0, 361, 3, 7, 4, 51, 17, 25, 18, 10, 11, 124, 19, 178, 63, 89, 14,
        23, 390]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, C, b) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var w = r.$, S = function (e) {
          function t(n) {
            var i = e.call(this) || this;
            return i._onHint = i._register(
                new d.Emitter), i.onHint = i._onHint.event, i._onCancel = i._register(
                new d.Emitter), i.onCancel = i._onCancel.event, i.editor = n, i.enabled = !1, i.triggerCharactersListeners = [], i.throttledDelayer = new l.RunOnceScheduler(
                function () {
                  return i.doTrigger()
                }, t.DELAY), i.active = !1, i._register(
                i.editor.onDidChangeConfiguration(function () {
                  return i.onEditorConfigurationChange()
                })), i._register(i.editor.onDidChangeModel(function (e) {
              return i.onModelChanged()
            })), i._register(i.editor.onDidChangeModelLanguage(function (e) {
              return i.onModelChanged()
            })), i._register(i.editor.onDidChangeCursorSelection(function (e) {
              return i.onCursorChange(e)
            })), i._register(
                a.SignatureHelpProviderRegistry.onDidChange(i.onModelChanged,
                    i)), i.onEditorConfigurationChange(), i.onModelChanged(), i
          }

          return f(t, e), t.prototype.cancel = function (e) {
            void 0 === e
            && (e = !1), this.active = !1, this.throttledDelayer.cancel(), e
            || this._onCancel.fire(void 0)
          }, t.prototype.trigger = function (e) {
            if (void 0 === e
            && (e = t.DELAY), a.SignatureHelpProviderRegistry.has(
                this.editor.getModel())) {
              return this.cancel(
                  !0), this.throttledDelayer.schedule(e)
            }
          }, t.prototype.doTrigger = function () {
            var e = this;
            g.provideSignatureHelp(this.editor.getModel(),
                this.editor.getPosition()).then(null, c.onUnexpectedError).then(
                function (t) {
                  if (!t || !t.signatures || 0
                      === t.signatures.length) {
                    return e.cancel(), e._onCancel.fire(
                        void 0), !1;
                  }
                  e.active = !0;
                  var n = {hints: t};
                  return e._onHint.fire(n), !0
                })
          }, t.prototype.isTriggered = function () {
            return this.active || this.throttledDelayer.isScheduled()
          }, t.prototype.onModelChanged = function () {
            var e = this;
            this.active
            && this.cancel(), this.triggerCharactersListeners = i.dispose(
                this.triggerCharactersListeners);
            var t = this.editor.getModel();
            if (t) {
              for (var n = new _.CharacterSet, o = 0,
                  r = a.SignatureHelpProviderRegistry.ordered(t); o < r.length;
                  o++) {
                var s = r[o];
                if (Array.isArray(
                    s.signatureHelpTriggerCharacters)) {
                  for (var u = 0,
                      l = s.signatureHelpTriggerCharacters; u < l.length; u++) {
                    var c = l[u];
                    n.add(c.charCodeAt(0))
                  }
                }
              }
              this.triggerCharactersListeners.push(
                  this.editor.onDidType(function (t) {
                    e.enabled && n.has(t.charCodeAt(t.length - 1))
                    && e.trigger()
                  }))
            }
          }, t.prototype.onCursorChange = function (e) {
            "mouse" === e.source ? this.cancel() : this.isTriggered()
                && this.trigger()
          }, t.prototype.onEditorConfigurationChange = function () {
            this.enabled = this.editor.getConfiguration().contribInfo.parameterHints, this.enabled
            || this.cancel()
          }, t.prototype.dispose = function () {
            this.cancel(!0), this.triggerCharactersListeners = i.dispose(
                this.triggerCharactersListeners), e.prototype.dispose.call(this)
          }, t.DELAY = 120, t
        }(i.Disposable);
        t.ParameterHintsModel = S;
        var E = function () {
          function e(e, t) {
            var n = this;
            this.editor = e, this.allowEditorOverflow = !0, this.model = new S(
                e), this.keyVisible = g.Context.Visible.bindTo(
                t), this.keyMultipleSignatures = g.Context.MultipleSignatures.bindTo(
                t), this.visible = !1, this.disposables = [], this.disposables.push(
                this.model.onHint(function (e) {
                  n.show(), n.hints = e.hints, n.currentSignature = e.hints.activeSignature, n.render()
                })), this.disposables.push(this.model.onCancel(function () {
              n.hide()
            })), this.element = w(".editor-widget.parameter-hints-widget");
            var i = r.append(this.element, w(".wrapper"));
            h.stop(h.domEvent(this.element, "click"))(this.next, this,
                this.disposables);
            var o = r.append(i, w(".buttons")),
                s = r.append(o, w(".button.previous")),
                a = r.append(o, w(".button.next"));
            h.stop(h.domEvent(s, "click"))(this.previous, this,
                this.disposables), h.stop(h.domEvent(a, "click"))(this.next,
                this, this.disposables), this.overloads = r.append(i,
                w(".overloads"));
            var u = w(".body");
            this.scrollbar = new m.DomScrollableElement(u,
                {}), this.disposables.push(this.scrollbar), i.appendChild(
                this.scrollbar.getDomNode()), this.signature = r.append(u,
                w(".signature")), this.docs = r.append(u,
                w(".docs")), this.currentSignature = 0, this.editor.addContentWidget(
                this), this.hide(), this.disposables.push(
                this.editor.onDidChangeCursorSelection(function (e) {
                  n.visible && n.editor.layoutContentWidget(n)
                }));
            var l = function () {
              var e = n.editor.getConfiguration().fontInfo;
              n.element.style.fontSize = e.fontSize + "px"
            };
            l(), d.chain(
                this.editor.onDidChangeConfiguration.bind(this.editor)).filter(
                function (e) {
                  return e.fontInfo
                }).on(l, null, this.disposables), this.disposables.push(
                this.editor.onDidLayoutChange(function (e) {
                  return n.updateMaxHeight()
                })), this.updateMaxHeight()
          }

          return e.prototype.show = function () {
            var e = this;
            this.model && !this.visible && (this.keyVisible.set(
                !0), this.visible = !0, o.TPromise.timeout(100).done(
                function () {
                  return r.addClass(e.element, "visible")
                }), this.editor.layoutContentWidget(this))
          }, e.prototype.hide = function () {
            this.model && this.visible
            && (this.keyVisible.reset(), this.visible = !1, this.hints = null, this.announcedLabel = null, r.removeClass(
                this.element, "visible"), this.editor.layoutContentWidget(this))
          }, e.prototype.getPosition = function () {
            return this.visible ? {
              position: this.editor.getPosition(),
              preference: [u.ContentWidgetPositionPreference.ABOVE,
                u.ContentWidgetPositionPreference.BELOW]
            } : null
          }, e.prototype.render = function () {
            var e = this.hints.signatures.length > 1;
            r.toggleClass(this.element, "multiple",
                e), this.keyMultipleSignatures.set(
                e), this.signature.innerHTML = "", this.docs.innerHTML = "";
            var t = this.hints.signatures[this.currentSignature];
            if (t) {
              var i = r.append(this.signature, w(".code")),
                  o = t.parameters.length > 0,
                  a = this.editor.getConfiguration().fontInfo;
              i.style.fontSize = a.fontSize
                  + "px", i.style.fontFamily = a.fontFamily, o
                  ? this.renderParameters(i, t, this.hints.activeParameter)
                  : r.append(i, w("span")).textContent = t.label;
              var u = t.parameters[this.hints.activeParameter];
              if (u && u.documentation) {
                var l = w("span.documentation");
                l.textContent = u.documentation, r.append(this.docs,
                    w("p", null, l))
              }
              r.toggleClass(this.signature, "has-docs",
                  !!t.documentation), t.documentation && r.append(this.docs,
                  w("p", null, t.documentation));
              var c = String(this.currentSignature + 1);
              if (this.hints.signatures.length < 10 && (c += "/"
                  + this.hints.signatures.length), this.overloads.textContent = c, u) {
                var d = u.label;
                this.announcedLabel !== d && (s.alert(
                    n.localize(0, null, d)), this.announcedLabel = d)
              }
              this.editor.layoutContentWidget(
                  this), this.scrollbar.scanDomNode()
            }
          }, e.prototype.renderParameters = function (e, t, n) {
            for (var i, o = t.label.length, s = 0, a = t.parameters.length - 1;
                a >= 0; a--) {
              var u = t.parameters[a], l = 0, c = 0;
              (s = t.label.lastIndexOf(u.label, o - 1)) >= 0 && (l = s, c = s
                  + u.label.length), (i = document.createElement(
                  "span")).textContent = t.label.substring(c, o), r.prepend(e,
                  i), (i = document.createElement(
                  "span")).className = "parameter " + (a === n ? "active"
                  : ""), i.textContent = t.label.substring(l, c), r.prepend(e,
                  i), o = l
            }
            (i = document.createElement(
                "span")).textContent = t.label.substring(0, o), r.prepend(e, i)
          }, e.prototype.next = function () {
            var e = this.hints.signatures.length;
            return e < 2 ? (this.cancel(), !1)
                : (this.currentSignature = (this.currentSignature + 1)
                    % e, this.render(), !0)
          }, e.prototype.previous = function () {
            var e = this.hints.signatures.length;
            return e < 2 ? (this.cancel(), !1)
                : (this.currentSignature = (this.currentSignature - 1 + e)
                    % e, this.render(), !0)
          }, e.prototype.cancel = function () {
            this.model.cancel()
          }, e.prototype.getDomNode = function () {
            return this.element
          }, e.prototype.getId = function () {
            return e.ID
          }, e.prototype.trigger = function () {
            this.model.trigger(0)
          }, e.prototype.updateMaxHeight = function () {
            var e = Math.max(this.editor.getLayoutInfo().height / 4, 250);
            this.element.style.maxHeight = e + "px"
          }, e.prototype.dispose = function () {
            this.disposables = i.dispose(this.disposables), this.model = null
          }, e.ID = "editor.widget.parameterHintsWidget", e = v(
              [y(1, p.IContextKeyService)], e)
        }();
        t.ParameterHintsWidget = E, C.registerThemingParticipant(
            function (e, t) {
              var n = e.getColor(b.editorHoverBorder);
              if (n) {
                var i = e.type === C.HIGH_CONTRAST ? 2 : 1;
                t.addRule(
                    ".monaco-editor .parameter-hints-widget { border: " + i
                    + "px solid " + n + "; }"), t.addRule(
                    ".monaco-editor .parameter-hints-widget.multiple .body { border-left: 1px solid "
                    + n.transparent(.5) + "; }"), t.addRule(
                    ".monaco-editor .parameter-hints-widget .signature.has-docs { border-bottom: 1px solid "
                    + n.transparent(.5) + "; }")
              }
              var o = e.getColor(b.editorHoverBackground);
              o && t.addRule(
                  ".monaco-editor .parameter-hints-widget { background-color: "
                  + o + "; }")
            })
      }),define(d[527], h([1, 0, 360, 3, 16, 21, 19, 13, 30, 526, 178]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function () {
          function e(e, t) {
            this.editor = e, this.widget = t.createInstance(
                l.ParameterHintsWidget, this.editor)
          }

          return t = e, e.get = function (e) {
            return e.getContribution(t.ID)
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.cancel = function () {
            this.widget.cancel()
          }, e.prototype.previous = function () {
            this.widget.previous()
          }, e.prototype.next = function () {
            this.widget.next()
          }, e.prototype.trigger = function () {
            this.widget.trigger()
          }, e.prototype.dispose = function () {
            this.widget = i.dispose(this.widget)
          }, e.ID = "editor.controller.parameterHints", e = t = v(
              [u.editorContribution, y(1, o.IInstantiationService)], e);
          var t
        }(), h = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.triggerParameterHints",
              label: n.localize(0, null),
              alias: "Trigger Parameter Hints",
              precondition: r.EditorContextKeys.hasSignatureHelpProvider,
              kbOpts: {kbExpr: r.EditorContextKeys.textFocus, primary: 3082}
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = d.get(t);
            n && n.trigger()
          }, t = v([a.editorAction], t)
        }(a.EditorAction);
        t.TriggerParameterHintsAction = h;
        var p = a.CommonEditorRegistry.commandWeight(75),
            g = a.EditorCommand.bindToContribution(d.get);
        a.CommonEditorRegistry.registerEditorCommand(new g({
          id: "closeParameterHints",
          precondition: c.Context.Visible,
          handler: function (e) {
            return e.cancel()
          },
          kbOpts: {
            weight: p,
            kbExpr: r.EditorContextKeys.textFocus,
            primary: 9,
            secondary: [1033]
          }
        })), a.CommonEditorRegistry.registerEditorCommand(new g({
          id: "showPrevParameterHint",
          precondition: s.ContextKeyExpr.and(c.Context.Visible,
              c.Context.MultipleSignatures),
          handler: function (e) {
            return e.previous()
          },
          kbOpts: {
            weight: p,
            kbExpr: r.EditorContextKeys.textFocus,
            primary: 16,
            secondary: [528],
            mac: {primary: 16, secondary: [528, 302]}
          }
        })), a.CommonEditorRegistry.registerEditorCommand(new g({
          id: "showNextParameterHint",
          precondition: s.ContextKeyExpr.and(c.Context.Visible,
              c.Context.MultipleSignatures),
          handler: function (e) {
            return e.next()
          },
          kbOpts: {
            weight: p,
            kbExpr: r.EditorContextKeys.textFocus,
            primary: 18,
            secondary: [530],
            mac: {primary: 18, secondary: [530, 300]}
          }
        }))
      }),define(d[528], h([1, 0, 369, 10, 3, 7, 2, 25, 14, 23, 12, 393]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function () {
          function e(e, t) {
            var n = this;
            this.themeService = t, this._disposables = [], this.allowEditorOverflow = !0, this._currentAcceptInput = null, this._currentCancelInput = null, this._editor = e, this._editor.addContentWidget(
                this), this._disposables.push(
                e.onDidChangeConfiguration(function (e) {
                  e.fontInfo && n.updateFont()
                })), this._disposables.push(t.onThemeChange(function (e) {
              return n.onThemeChange(e)
            }))
          }

          return e.prototype.onThemeChange = function (e) {
            this.updateStyles(e)
          }, e.prototype.dispose = function () {
            this._disposables = o.dispose(
                this._disposables), this._editor.removeContentWidget(this)
          }, e.prototype.getId = function () {
            return "__renameInputWidget"
          }, e.prototype.getDomNode = function () {
            return this._domNode || (this._inputField = document.createElement(
                "input"), this._inputField.className = "rename-input", this._inputField.type = "text", this._inputField.setAttribute(
                "aria-label",
                n.localize(0, null)), this._domNode = document.createElement(
                "div"), this._domNode.style.height = this._editor.getConfiguration().lineHeight
                + "px", this._domNode.className = "monaco-editor rename-box", this._domNode.appendChild(
                this._inputField), this.updateFont(), this.updateStyles(
                this.themeService.getTheme())), this._domNode
          }, e.prototype.updateStyles = function (e) {
            if (this._inputField) {
              var t = e.getColor(l.inputBackground),
                  n = e.getColor(l.inputForeground),
                  i = e.getColor(l.widgetShadow), o = e.getColor(l.inputBorder);
              this._inputField.style.backgroundColor = t ? t.toString()
                  : null, this._inputField.style.color = n ? n.toString()
                  : null, this._inputField.style.borderWidth = o ? "1px"
                  : "0px", this._inputField.style.borderStyle = o ? "solid"
                  : "none", this._inputField.style.borderColor = o
                  ? o.toString() : "none", this._domNode.style.boxShadow = i
                  ? " 0 2px 8px " + i : null
            }
          }, e.prototype.updateFont = function () {
            if (this._inputField) {
              var e = this._editor.getConfiguration().fontInfo;
              this._inputField.style.fontFamily = e.fontFamily, this._inputField.style.fontWeight = e.fontWeight, this._inputField.style.fontSize = e.fontSize
                  + "px"
            }
          }, e.prototype.getPosition = function () {
            return this._visible ? {
              position: this._position,
              preference: [a.ContentWidgetPositionPreference.BELOW,
                a.ContentWidgetPositionPreference.ABOVE]
            } : null
          }, e.prototype.acceptInput = function () {
            this._currentAcceptInput && this._currentAcceptInput()
          }, e.prototype.cancelInput = function () {
            this._currentCancelInput && this._currentCancelInput()
          }, e.prototype.getInput = function (e, t, n, a) {
            var u = this;
            this._position = new c.Position(e.startLineNumber,
                e.startColumn), this._inputField.value = t, this._inputField.setAttribute(
                "selectionStart", n.toString()), this._inputField.setAttribute(
                "selectionEnd", a.toString()), this._inputField.size = Math.max(
                1.1 * (e.endColumn - e.startColumn), 20);
            var l, d = [];
            return l = function () {
              o.dispose(d), u._hide()
            }, new r.TPromise(function (n, o) {
              u._currentCancelInput = function () {
                return u._currentAcceptInput = null, u._currentCancelInput = null, o(
                    i.canceled()), !0
              }, u._currentAcceptInput = function () {
                0 !== u._inputField.value.trim().length && u._inputField.value
                !== t
                    ? (u._currentAcceptInput = null, u._currentCancelInput = null, n(
                        u._inputField.value)) : u.cancelInput()
              };
              d.push(u._editor.onDidChangeCursorSelection(function () {
                s.Range.containsPosition(e, u._editor.getPosition())
                || u.cancelInput()
              })), d.push(u._editor.onDidBlurEditor(function () {
                return u.cancelInput()
              })), u._show()
            }, this._currentCancelInput).then(function (e) {
              return l(), e
            }, function (e) {
              return l(), r.TPromise.wrapError(e)
            })
          }, e.prototype._show = function () {
            var e = this;
            this._editor.revealLineInCenterIfOutsideViewport(
                this._position.lineNumber), this._visible = !0, this._editor.layoutContentWidget(
                this), setTimeout(function () {
              e._inputField.focus(), e._inputField.setSelectionRange(
                  parseInt(e._inputField.getAttribute("selectionStart")),
                  parseInt(e._inputField.getAttribute("selectionEnd")))
            }, 25)
          }, e.prototype._hide = function () {
            this._visible = !1, this._editor.layoutContentWidget(this)
          }, e = v([y(1, u.IThemeService)], e)
        }();
        t.default = d
      }),define(d[529],
      h([1, 0, 368, 10, 36, 7, 411, 19, 50, 163, 13, 30, 21, 338, 528, 87, 16,
        14, 18, 17, 51, 2]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, C, b, w, S,
          E) {
        "use strict";

        function L(e, t, o) {
          var s = [], a = !1,
              u = w.RenameProviderRegistry.ordered(e).map(function (n) {
                return function () {
                  if (!a) {
                    return b.asWinJsPromise(function (i) {
                      return n.provideRenameEdits(e, t, o, i)
                    }).then(function (e) {
                      if (e) {
                        if (!e.rejectReason) {
                          return a = !0, e;
                        }
                        s.push(e.rejectReason)
                      } else {
                        ;
                      }
                    }, function (e) {
                      return i.onUnexpectedExternalError(
                          e), r.TPromise.wrapError(
                          new Error("provider failed"))
                    })
                  }
                }
              });
          return b.sequence(u).then(function (e) {
            var t = e[0];
            return s.length > 0 ? {edits: void 0, rejectReason: s.join("\n")}
                : t || {edits: void 0, rejectReason: n.localize(0, null)}
          })
        }

        Object.defineProperty(t, "__esModule", {value: !0}), t.rename = L;
        var x = new a.RawContextKey("renameInputVisible", !1), N = function () {
          function e(e, t, n, i, o, r, s) {
            this.editor = e, this._messageService = t, this._textModelResolverService = n, this._progressService = i, this._fileService = s, this._renameInputField = new g.default(
                e, r), this._renameInputVisible = x.bindTo(o)
          }

          return t = e, e.get = function (e) {
            return e.getContribution(t.ID)
          }, e.prototype.dispose = function () {
            this._renameInputField.dispose()
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.run = function () {
            var e = this, t = this.editor.getSelection(),
                s = this.editor.getModel().getWordAtPosition(
                    t.getStartPosition());
            if (s) {
              var a, u = t.startLineNumber, l = 0, c = s.word.length;
              return a = new E.Range(u, s.startColumn, u,
                  s.endColumn), t.isEmpty() || t.startLineNumber
              !== t.endLineNumber || (l = Math.max(0,
                  t.startColumn - s.startColumn), c = Math.min(s.endColumn,
                  t.endColumn) - s.startColumn), this._renameInputVisible.set(
                  !0), this._renameInputField.getInput(a, s.word, l, c).then(
                  function (t) {
                    e._renameInputVisible.reset(), e.editor.focus();
                    var i = e._prepareRename(t).then(function (i) {
                      return i.finish().then(function (o) {
                        o && e.editor.setSelection(o), S.alert(
                            n.localize(1, null, s.word, t, i.ariaMessage()))
                      })
                    }, function (t) {
                      return "string" == typeof t ? void e._messageService.show(
                          o.default.Info, t) : (e._messageService.show(
                          o.default.Error,
                          n.localize(2, null)), r.TPromise.wrapError(t))
                    });
                    return e._progressService.showWhile(i, 250), i
                  }, function (t) {
                    if (e._renameInputVisible.reset(), e.editor.focus(), !i.isPromiseCanceledError(
                        t)) {
                      return r.TPromise.wrapError(t)
                    }
                  })
            }
          }, e.prototype.acceptRenameInput = function () {
            this._renameInputField.acceptInput()
          }, e.prototype.cancelRenameInput = function () {
            this._renameInputField.cancelInput()
          }, e.prototype._prepareRename = function (e) {
            var t = p.createBulkEdit(this._textModelResolverService,
                this.editor, this._fileService);
            return L(this.editor.getModel(), this.editor.getPosition(), e).then(
                function (e) {
                  return e.rejectReason ? r.TPromise.wrapError(
                      new Error(e.rejectReason)) : (t.add(e.edits), t)
                })
          }, e.ID = "editor.contrib.renameController", e = t = v(
              [d.editorContribution, y(1, u.IMessageService),
                y(2, m.ITextModelService), y(3, l.IProgressService),
                y(4, a.IContextKeyService), y(5, C.IThemeService),
                y(6, _.optional(s.IFileService))], e);
          var t
        }(), M = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.rename",
              label: n.localize(3, null),
              alias: "Rename Symbol",
              precondition: a.ContextKeyExpr.and(h.EditorContextKeys.writable,
                  h.EditorContextKeys.hasRenameProvider),
              kbOpts: {kbExpr: h.EditorContextKeys.textFocus, primary: 60},
              menuOpts: {group: "1_modification", order: 1.1}
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = N.get(t);
            if (n) {
              return n.run()
            }
          }, t = v([c.editorAction], t)
        }(c.EditorAction);
        t.RenameAction = M;
        var T = c.EditorCommand.bindToContribution(N.get);
        c.CommonEditorRegistry.registerEditorCommand(new T({
          id: "acceptRenameInput",
          precondition: x,
          handler: function (e) {
            return e.acceptRenameInput()
          },
          kbOpts: {
            weight: c.CommonEditorRegistry.commandWeight(99),
            kbExpr: h.EditorContextKeys.focus,
            primary: 3
          }
        })), c.CommonEditorRegistry.registerEditorCommand(new T({
          id: "cancelRenameInput",
          precondition: x,
          handler: function (e) {
            return e.cancelRenameInput()
          },
          kbOpts: {
            weight: c.CommonEditorRegistry.commandWeight(99),
            kbExpr: h.EditorContextKeys.focus,
            primary: 9,
            secondary: [1033]
          }
        })), c.CommonEditorRegistry.registerDefaultLanguageCommand(
            "_executeDocumentRenameProvider", function (e, t, n) {
              var o = n.newName;
              if ("string" != typeof o) {
                throw i.illegalArgument("newName");
              }
              return L(e, t, o)
            })
      }),define(d[530],
      h([1, 0, 372, 81, 9, 11, 7, 10, 3, 4, 110, 234, 63, 46, 19, 25, 109, 51,
        58, 137, 14, 23, 76, 395]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, f, g, m, C, b, w, S,
          E, L) {
        "use strict";

        function x(e) {
          return e && e.match(k) ? e : null
        }

        function N(e) {
          if (!e) {
            return !1;
          }
          var t = e.suggestion;
          return !!t.documentation || t.detail && t.detail !== t.label
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var M = !1;
        t.editorSuggestWidgetBackground = E.registerColor(
            "editorSuggestWidget.background", {
              dark: E.editorWidgetBackground,
              light: E.editorWidgetBackground,
              hc: E.editorWidgetBackground
            },
            n.localize(0, null)), t.editorSuggestWidgetBorder = E.registerColor(
            "editorSuggestWidget.border", {
              dark: E.editorWidgetBorder,
              light: E.editorWidgetBorder,
              hc: E.editorWidgetBorder
            }, n.localize(1,
                null)), t.editorSuggestWidgetForeground = E.registerColor(
            "editorSuggestWidget.foreground", {
              dark: E.editorForeground,
              light: E.editorForeground,
              hc: E.editorForeground
            }, n.localize(2,
                null)), t.editorSuggestWidgetSelectedBackground = E.registerColor(
            "editorSuggestWidget.selectedBackground", {
              dark: E.listFocusBackground,
              light: E.listFocusBackground,
              hc: E.listFocusBackground
            }, n.localize(3,
                null)), t.editorSuggestWidgetHighlightForeground = E.registerColor(
            "editorSuggestWidget.highlightForeground", {
              dark: E.listHighlightForeground,
              light: E.listHighlightForeground,
              hc: E.listHighlightForeground
            }, n.localize(4, null));
        var T,
            k = /^(#([\da-f]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))$/i,
            I = function () {
              function e(e, t, n) {
                this.widget = e, this.editor = t, this.triggerKeybindingLabel = n
              }

              return Object.defineProperty(e.prototype, "templateId", {
                get: function () {
                  return "suggestion"
                }, enumerable: !0, configurable: !0
              }), e.prototype.renderTemplate = function (e) {
                var t = this, i = Object.create(null);
                i.disposables = [], i.root = e, i.icon = l.append(e,
                    l.$(".icon")), i.colorspan = l.append(i.icon,
                    l.$("span.colorspan"));
                var o = l.append(e, l.$(".contents")),
                    s = l.append(o, l.$(".main"));
                i.highlightedLabel = new c.HighlightedLabel(
                    s), i.disposables.push(
                    i.highlightedLabel), i.typeLabel = l.append(s,
                    l.$("span.type-label")), i.readMore = l.append(s,
                    l.$("span.readMore")), i.readMore.title = n.localize(5,
                    null, this.triggerKeybindingLabel);
                var a = function () {
                  var e = t.editor.getConfiguration(),
                      n = e.fontInfo.fontFamily,
                      o = (e.contribInfo.suggestFontSize || e.fontInfo.fontSize)
                          + "px", r = (e.contribInfo.suggestLineHeight
                          || e.fontInfo.lineHeight) + "px";
                  i.root.style.fontSize = o, s.style.fontFamily = n, s.style.lineHeight = r, i.icon.style.height = r, i.icon.style.width = r, i.readMore.style.height = r, i.readMore.style.width = r
                };
                return a(), r.chain(this.editor.onDidChangeConfiguration.bind(
                    this.editor)).filter(function (e) {
                  return e.fontInfo || e.contribInfo
                }).on(a, null, i.disposables), i
              }, e.prototype.renderElement = function (e, t, o) {
                var r = this, s = o, a = e.suggestion;
                if (N(e) ? s.root.setAttribute("aria-label",
                    n.localize(6, null, a.label)) : s.root.setAttribute(
                    "aria-label",
                    n.localize(7, null, a.label)), s.icon.className = "icon "
                    + a.type, s.colorspan.style.backgroundColor = "", "color"
                === a.type) {
                  var u = x(a.label) || x(a.documentation);
                  u
                  && (s.icon.className = "icon customcolor", s.colorspan.style.backgroundColor = u)
                }
                s.highlightedLabel.set(a.label, i.createMatches(
                    e.matches)), s.typeLabel.textContent = (a.detail
                    || "").replace(/\n.*$/m, ""), N(e) ? (l.show(
                    s.readMore), s.readMore.onmousedown = function (e) {
                  e.stopPropagation(), e.preventDefault()
                }, s.readMore.onclick = function (e) {
                  e.stopPropagation(), e.preventDefault(), r.widget.toggleDetails()
                }) : (l.hide(
                    s.readMore), s.readMore.onmousedown = null, s.readMore.onclick = null)
              }, e.prototype.disposeTemplate = function (e) {
                e.highlightedLabel.dispose(), e.disposables = u.dispose(
                    e.disposables)
              }, e
            }();
        !function (e) {
          e[e.Hidden = 0] = "Hidden", e[e.Loading = 1] = "Loading", e[e.Empty = 2] = "Empty", e[e.Open = 3] = "Open", e[e.Frozen = 4] = "Frozen", e[e.Details = 5] = "Details"
        }(T || (T = {}));
        var D = function () {
          function e(e, t, i, o) {
            var s = this;
            this.widget = t, this.editor = i, this.triggerKeybindingLabel = o, this.borderWidth = 1, this.disposables = [], this.el = l.append(
                e, l.$(".details")), this.disposables.push(
                u.toDisposable(function () {
                  return e.removeChild(s.el)
                })), this.body = l.$(
                ".body"), this.scrollbar = new h.DomScrollableElement(this.body,
                {}), l.append(this.el,
                this.scrollbar.getDomNode()), this.disposables.push(
                this.scrollbar), this.header = l.append(this.body,
                l.$(".header")), this.close = l.append(this.header,
                l.$("span.close")), this.close.title = n.localize(8, null,
                o), this.type = l.append(this.header,
                l.$("p.type")), this.docs = l.append(this.body,
                l.$("p.docs")), this.ariaLabel = null, this.configureFont(), r.chain(
                this.editor.onDidChangeConfiguration.bind(this.editor)).filter(
                function (e) {
                  return e.fontInfo
                }).on(this.configureFont, this, this.disposables)
          }

          return Object.defineProperty(e.prototype, "element", {
            get: function () {
              return this.el
            }, enumerable: !0, configurable: !0
          }), e.prototype.render = function (e) {
            var t = this;
            if (!e || !N(
                e)) {
              return this.type.textContent = "", this.docs.textContent = "", l.addClass(
                  this.el, "no-docs"), void (this.ariaLabel = null);
            }
            l.removeClass(this.el,
                "no-docs"), this.docs.textContent = e.suggestion.documentation, e.suggestion.detail
                ? (this.type.innerText = e.suggestion.detail, l.show(this.type))
                : (this.type.innerText = "", l.hide(
                    this.type)), this.el.style.height = this.header.offsetHeight
                + this.docs.offsetHeight + 2 * this.borderWidth
                + "px", this.close.onmousedown = function (e) {
              e.preventDefault(), e.stopPropagation()
            }, this.close.onclick = function (e) {
              e.preventDefault(), e.stopPropagation(), t.widget.toggleDetails()
            }, this.body.scrollTop = 0, this.scrollbar.scanDomNode(), this.ariaLabel = o.format(
                "{0}\n{1}\n{2}", e.suggestion.label || "",
                e.suggestion.detail || "", e.suggestion.documentation || "")
          }, e.prototype.getAriaLabel = function () {
            return this.ariaLabel
          }, e.prototype.scrollDown = function (e) {
            void 0 === e && (e = 8), this.body.scrollTop += e
          }, e.prototype.scrollUp = function (e) {
            void 0 === e && (e = 8), this.body.scrollTop -= e
          }, e.prototype.scrollTop = function () {
            this.body.scrollTop = 0
          }, e.prototype.scrollBottom = function () {
            this.body.scrollTop = this.body.scrollHeight
          }, e.prototype.pageDown = function () {
            this.scrollDown(80)
          }, e.prototype.pageUp = function () {
            this.scrollUp(80)
          }, e.prototype.setBorderWidth = function (e) {
            this.borderWidth = e
          }, e.prototype.configureFont = function () {
            var e = this.editor.getConfiguration(), t = e.fontInfo.fontFamily,
                n = (e.contribInfo.suggestFontSize || e.fontInfo.fontSize)
                    + "px",
                i = (e.contribInfo.suggestLineHeight || e.fontInfo.lineHeight)
                    + "px";
            this.el.style.fontSize = n, this.type.style.fontFamily = t, this.close.style.height = i, this.close.style.width = i
          }, e.prototype.dispose = function () {
            this.disposables = u.dispose(this.disposables)
          }, e
        }(), O = function () {
          function e(e, n, i, o, s, a) {
            var u = this;
            this.editor = e, this.telemetryService = n, this.allowEditorOverflow = !0, this.ignoreFocusEvents = !1, this.onDidSelectEmitter = new r.Emitter, this.onDidFocusEmitter = new r.Emitter, this.onDidHideEmitter = new r.Emitter, this.onDidShowEmitter = new r.Emitter, this.onDidSelect = this.onDidSelectEmitter.event, this.onDidFocus = this.onDidFocusEmitter.event, this.onDidHide = this.onDidHideEmitter.event, this.onDidShow = this.onDidShowEmitter.event, this.maxWidgetWidth = 660, this.listWidth = 330, this.storageServiceAvailable = !0, this.expandSuggestionDocs = !1;
            var c = a.lookupKeybinding("editor.action.triggerSuggest"),
                h = c ? " (" + c.getLabel() + ")" : "";
            this.isAuto = !1, this.focusedItem = null, this.storageService = s, void 0
            === this.expandDocsSettingFromStorage()
            && (this.storageService.store("expandSuggestionDocs", M,
                L.StorageScope.GLOBAL), void 0
            === this.expandDocsSettingFromStorage()
            && (this.storageServiceAvailable = !1)), this.element = l.$(
                ".editor-widget.suggest-widget"), this.editor.getConfiguration().contribInfo.iconsInSuggestions
            || l.addClass(this.element,
                "no-icons"), this.messageElement = l.append(this.element,
                l.$(".message")), this.listElement = l.append(this.element,
                l.$(".tree")), this.details = new D(this.element, this,
                this.editor, h);
            var p = new I(this, this.editor, h);
            this.list = new d.List(this.listElement, this, [p], {
              useShadows: !1,
              selectOnMouseDown: !0
            }), this.toDispose = [w.attachListStyler(this.list, o, {
              listInactiveFocusBackground: t.editorSuggestWidgetSelectedBackground,
              listInactiveFocusOutline: E.activeContrastBorder
            }), o.onThemeChange(function (e) {
              return u.onThemeChange(e)
            }), e.onDidBlurEditorText(function () {
              return u.onEditorBlur()
            }), e.onDidLayoutChange(function () {
              return u.onEditorLayoutChange()
            }), this.list.onSelectionChange(function (e) {
              return u.onListSelection(e)
            }), this.list.onFocusChange(function (e) {
              return u.onListFocus(e)
            }), this.editor.onDidChangeCursorSelection(function () {
              return u.onCursorSelectionChanged()
            })], this.suggestWidgetVisible = m.Context.Visible.bindTo(
                i), this.suggestWidgetMultipleSuggestions = m.Context.MultipleSuggestions.bindTo(
                i), this.suggestionSupportsAutoAccept = m.Context.AcceptOnKey.bindTo(
                i), this.editor.addContentWidget(this), this.setState(
                0), this.onThemeChange(o.getTheme())
          }

          return e.prototype.onCursorSelectionChanged = function () {
            0 !== this.state && this.editor.layoutContentWidget(this)
          }, e.prototype.onEditorBlur = function () {
            var e = this;
            this.editorBlurTimeout = s.TPromise.timeout(150).then(function () {
              e.editor.isFocused() || e.setState(0)
            })
          }, e.prototype.onEditorLayoutChange = function () {
            3 !== this.state && 5 !== this.state
            || !this.expandDocsSettingFromStorage() || this.expandSideOrBelow()
          }, e.prototype.onListSelection = function (e) {
            if (e.elements.length) {
              var t = e.elements[0];
              this.onDidSelectEmitter.fire(t), C.alert(
                  n.localize(11, null, t.suggestion.label)), this.editor.focus()
            }
          }, e.prototype._getSuggestionAriaAlertLabel = function (e) {
            return N(e) ? n.localize(12, null, e.suggestion.label) : n.localize(
                13, null, e.suggestion.label)
          }, e.prototype._ariaAlert = function (e) {
            this._lastAriaAlertLabel !== e
            && (this._lastAriaAlertLabel = e, this._lastAriaAlertLabel
            && C.alert(this._lastAriaAlertLabel))
          }, e.prototype.onThemeChange = function (e) {
            var n = e.getColor(t.editorSuggestWidgetBackground);
            n
            && (this.listElement.style.backgroundColor = n.toString(), this.details.element.style.backgroundColor = n.toString(), this.messageElement.style.backgroundColor = n.toString());
            var i = e.getColor(t.editorSuggestWidgetBorder);
            i
            && (this.listElement.style.borderColor = i.toString(), this.details.element.style.borderColor = i.toString(), this.messageElement.style.borderColor = i.toString(), this.detailsBorderColor = i.toString());
            var o = e.getColor(E.focusBorder);
            o
            && (this.detailsFocusBorderColor = o.toString()), this.details.setBorderWidth(
                "hc" === e.type ? 2 : 1)
          }, e.prototype.onListFocus = function (e) {
            var t = this;
            if (!this.ignoreFocusEvents) {
              if (!e.elements.length) {
                return this.currentSuggestionDetails
                && (this.currentSuggestionDetails.cancel(), this.currentSuggestionDetails = null, this.focusedItem = null), void this._ariaAlert(
                    null);
              }
              var n = e.elements[0];
              if (this._ariaAlert(this._getSuggestionAriaAlertLabel(n)), n
              !== this.focusedItem) {
                this.currentSuggestionDetails
                && (this.currentSuggestionDetails.cancel(), this.currentSuggestionDetails = null);
                var i = e.indexes[0];
                this.suggestionSupportsAutoAccept.set(
                    !n.suggestion.noAutoAccept);
                var o = this.focusedItem, r = this.focusedItemIndex;
                this.focusedItemIndex = i, this.focusedItem = n, o
                && (this.ignoreFocusEvents = !0, this.list.splice(r, 1,
                    [o]), this.ignoreFocusEvents = !1), this.updateListHeight(), this.list.reveal(
                    i), this.currentSuggestionDetails = n.resolve().then(
                    function () {
                      t.ignoreFocusEvents = !0, t.list.splice(i, 1,
                          [n]), t.ignoreFocusEvents = !1, t.list.setFocus(
                          [i]), t.list.reveal(
                          i), t.expandDocsSettingFromStorage() ? t.showDetails()
                          : l.removeClass(t.element, "docs-side")
                    }).then(null, function (e) {
                  return !a.isPromiseCanceledError(e) && a.onUnexpectedError(e)
                }).then(function () {
                  return t.currentSuggestionDetails = null
                }), this.onDidFocusEmitter.fire(n)
              }
            }
          }, e.prototype.setState = function (t) {
            if (this.element) {
              var n = this.state !== t;
              switch (this.state = t, l.toggleClass(this.element, "frozen",
                  4 === t), t) {
                case 0:
                  l.hide(this.messageElement, this.details.element), l.show(
                      this.listElement), this.hide(), n && this.list.splice(0,
                      this.list.length);
                  break;
                case 1:
                  this.messageElement.textContent = e.LOADING_MESSAGE, l.hide(
                      this.listElement, this.details.element), l.show(
                      this.messageElement), l.removeClass(this.element,
                      "docs-side"), this.show();
                  break;
                case 2:
                  this.messageElement.textContent = e.NO_SUGGESTIONS_MESSAGE, l.hide(
                      this.listElement, this.details.element), l.show(
                      this.messageElement), l.removeClass(this.element,
                      "docs-side"), this.show();
                  break;
                case 3:
                  l.hide(this.messageElement), l.show(
                      this.listElement), this.expandDocsSettingFromStorage()
                  && N(this.list.getFocusedElements()[0]) ? (l.show(
                      this.details.element), this.expandSideOrBelow()) : l.hide(
                      this.details.element), this.show();
                  break;
                case 4:
                  l.hide(this.messageElement, this.details.element), l.show(
                      this.listElement), this.show();
                  break;
                case 5:
                  l.hide(this.messageElement), l.show(this.details.element,
                      this.listElement), this.show(), this._ariaAlert(
                      this.details.getAriaLabel())
              }
              n && this.editor.layoutContentWidget(this)
            }
          }, e.prototype.showTriggered = function (e) {
            var t = this;
            0 === this.state && (this.isAuto = !!e, this.isAuto
            || (this.loadingTimeout = setTimeout(function () {
              t.loadingTimeout = null, t.setState(1)
            }, 50)))
          }, e.prototype.showSuggestions = function (e, t, n) {
            if (this.loadingTimeout && (clearTimeout(
                this.loadingTimeout), this.loadingTimeout = null), this.completionModel = e, t
            && 2 !== this.state && 0 !== this.state) {
              this.setState(4);
            } else {
              var i = this.completionModel.items.length, o = 0 === i;
              if (this.suggestWidgetMultipleSuggestions.set(i > 1), o) {
                n
                    ? this.setState(0) : this.setState(
                        2), this.completionModel = null;
              } else {
                var r = this.completionModel.stats;
                r.wasAutomaticallyTriggered = !!n, this.telemetryService.publicLog(
                    "suggestWidget", _({}, r,
                        this.editor.getTelemetryData())), this.focusedItem = null, this.focusedItemIndex = null, this.list.splice(
                    0, this.list.length,
                    this.completionModel.items), this.list.setFocus(
                    [0]), this.list.reveal(0, 0), t ? this.setState(4)
                    : this.setState(3), this.detailsBorderColor
                && (this.details.element.style.borderColor = this.detailsBorderColor)
              }
            }
          }, e.prototype.selectNextPage = function () {
            switch (this.state) {
              case 0:
                return !1;
              case 5:
                return this.details.pageDown(), !0;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusNextPage(), !0
            }
          }, e.prototype.selectNext = function () {
            switch (this.state) {
              case 0:
                return !1;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusNext(1, !0), !0
            }
          }, e.prototype.selectLast = function () {
            switch (this.state) {
              case 0:
                return !1;
              case 5:
                return this.details.scrollBottom(), !0;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusLast(), !0
            }
          }, e.prototype.selectPreviousPage = function () {
            switch (this.state) {
              case 0:
                return !1;
              case 5:
                return this.details.pageUp(), !0;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusPreviousPage(), !0
            }
          }, e.prototype.selectPrevious = function () {
            switch (this.state) {
              case 0:
                return !1;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusPrevious(1, !0), !1
            }
          }, e.prototype.selectFirst = function () {
            switch (this.state) {
              case 0:
                return !1;
              case 5:
                return this.details.scrollTop(), !0;
              case 1:
                return !this.isAuto;
              default:
                return this.list.focusFirst(), !0
            }
          }, e.prototype.getFocusedItem = function () {
            if (0 !== this.state && 2 !== this.state && 1
                !== this.state) {
              return this.list.getFocusedElements()[0]
            }
          }, e.prototype.toggleDetailsFocus = function () {
            5 === this.state ? (this.setState(3), this.detailsBorderColor
                && (this.details.element.style.borderColor = this.detailsBorderColor))
                : 3 === this.state && this.expandDocsSettingFromStorage()
                && (this.setState(5), this.detailsFocusBorderColor
                && (this.details.element.style.borderColor = this.detailsFocusBorderColor)), this.telemetryService.publicLog(
                "suggestWidget:toggleDetailsFocus",
                this.editor.getTelemetryData())
          }, e.prototype.toggleDetails = function () {
            if (N(
                this.list.getFocusedElements()[0])) {
              if (this.expandDocsSettingFromStorage()) {
                this.updateExpandDocsSetting(
                    !1), l.hide(this.details.element), l.removeClass(
                    this.element,
                    "docs-side"), l.removeClass(this.element,
                    "docs-below"), this.editor.layoutContentWidget(
                    this), this.telemetryService.publicLog(
                    "suggestWidget:collapseDetails",
                    this.editor.getTelemetryData());
              } else {
                if (3 !== this.state && 5 !== this.state) {
                  return;
                }
                this.updateExpandDocsSetting(
                    !0), this.showDetails(), this.telemetryService.publicLog(
                    "suggestWidget:expandDetails",
                    this.editor.getTelemetryData())
              }
            }
          }, e.prototype.showDetails = function () {
            this.expandSideOrBelow(), l.show(
                this.details.element), this.details.render(
                this.list.getFocusedElements()[0]), this.details.element.style.maxHeight = this.maxWidgetHeight
                + "px", this.listElement.style.marginTop = "0px", this.editor.layoutContentWidget(
                this), this.adjustDocsPosition(), this.editor.focus(), this._ariaAlert(
                this.details.getAriaLabel())
          }, e.prototype.show = function () {
            var e = this;
            this.updateListHeight(), this.suggestWidgetVisible.set(
                !0), this.showTimeout = s.TPromise.timeout(100).then(
                function () {
                  l.addClass(e.element, "visible"), e.onDidShowEmitter.fire(e)
                })
          }, e.prototype.hide = function () {
            this.suggestWidgetVisible.reset(), this.suggestWidgetMultipleSuggestions.reset(), l.removeClass(
                this.element, "visible")
          }, e.prototype.hideWidget = function () {
            clearTimeout(this.loadingTimeout), this.setState(
                0), this.onDidHideEmitter.fire(this)
          }, e.prototype.getPosition = function () {
            return 0 === this.state ? null : {
              position: this.editor.getPosition(),
              preference: [g.ContentWidgetPositionPreference.BELOW,
                g.ContentWidgetPositionPreference.ABOVE]
            }
          }, e.prototype.getDomNode = function () {
            return this.element
          }, e.prototype.getId = function () {
            return e.ID
          }, e.prototype.updateListHeight = function () {
            var e = 0;
            if (2 === this.state || 1
                === this.state) {
              e = this.unfocusedHeight;
            } else {
              var t = this.list.contentHeight / this.unfocusedHeight;
              e = Math.min(t, 12) * this.unfocusedHeight
            }
            return this.element.style.lineHeight = this.unfocusedHeight
                + "px", this.listElement.style.height = e
                + "px", this.list.layout(e), this.editor.layoutContentWidget(
                this), e
          }, e.prototype.adjustDocsPosition = function () {
            var e = this.editor.getConfiguration().fontInfo.lineHeight,
                t = this.editor.getScrolledVisiblePosition(
                    this.editor.getPosition()),
                n = l.getDomNodePagePosition(this.editor.getDomNode()),
                i = n.left + t.left, o = n.top + t.top + t.height,
                r = l.getDomNodePagePosition(this.element), s = r.left,
                a = r.top;
            s < i - this.listWidth ? l.addClass(this.element, "list-right")
                : l.removeClass(this.element, "list-right"), l.hasClass(
                this.element, "docs-side") && o - e > a
            && this.details.element.offsetHeight > this.listElement.offsetHeight
            && (this.listElement.style.marginTop = this.details.element.offsetHeight
                - this.listElement.offsetHeight + "px")
          }, e.prototype.expandSideOrBelow = function () {
            var e = this.element.style.maxWidth.match(/(\d+)px/);
            !e || Number(e[1]) < this.maxWidgetWidth ? (l.addClass(this.element,
                    "docs-below"), l.removeClass(this.element, "docs-side"))
                : (l.addClass(this.element, "docs-side"), l.removeClass(
                    this.element, "docs-below"))
          }, Object.defineProperty(e.prototype, "maxWidgetHeight", {
            get: function () {
              return 12 * this.unfocusedHeight
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "unfocusedHeight", {
            get: function () {
              var e = this.editor.getConfiguration();
              return e.contribInfo.suggestLineHeight || e.fontInfo.lineHeight
            }, enumerable: !0, configurable: !0
          }), e.prototype.getHeight = function (e) {
            return this.unfocusedHeight
          }, e.prototype.getTemplateId = function (e) {
            return "suggestion"
          }, e.prototype.expandDocsSettingFromStorage = function () {
            return this.storageServiceAvailable
                ? this.storageService.getBoolean("expandSuggestionDocs",
                    L.StorageScope.GLOBAL) : this.expandSuggestionDocs
          }, e.prototype.updateExpandDocsSetting = function (e) {
            this.storageServiceAvailable ? this.storageService.store(
                    "expandSuggestionDocs", e, L.StorageScope.GLOBAL)
                : this.expandSuggestionDocs = e
          }, e.prototype.dispose = function () {
            this.state = null, this.suggestionSupportsAutoAccept = null, this.currentSuggestionDetails = null, this.focusedItem = null, this.element = null, this.messageElement = null, this.listElement = null, this.details.dispose(), this.details = null, this.list.dispose(), this.list = null, this.toDispose = u.dispose(
                this.toDispose), this.loadingTimeout && (clearTimeout(
                this.loadingTimeout), this.loadingTimeout = null), this.editorBlurTimeout
            && (this.editorBlurTimeout.cancel(), this.editorBlurTimeout = null), this.showTimeout
            && (this.showTimeout.cancel(), this.showTimeout = null)
          }, e.ID = "editor.widget.suggestWidget", e.LOADING_MESSAGE = n.localize(
              9, null), e.NO_SUGGESTIONS_MESSAGE = n.localize(10, null), e = v(
              [y(1, b.ITelemetryService), y(2, f.IContextKeyService),
                y(3, S.IThemeService), y(4, L.IStorageService),
                y(5, p.IKeybindingService)], e)
        }();
        t.SuggestWidget = O, S.registerThemingParticipant(function (e, n) {
          var i = e.getColor(t.editorSuggestWidgetHighlightForeground);
          i && n.addRule(
              ".monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight { color: "
              + i + "; }");
          var o = e.getColor(t.editorSuggestWidgetForeground);
          o && n.addRule(".monaco-editor .suggest-widget { color: " + o + "; }")
        })
      }),define(d[531],
      h([1, 0, 371, 10, 33, 3, 16, 58, 19, 31, 21, 13, 51, 30, 59, 2, 142, 180,
        109, 474, 530]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, C, b, w, S, E) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var L = function () {
          function e(e, t, n) {
            var i = this;
            this._disposables = [], this._activeAcceptCharacters = new Set, this._disposables.push(
                t.onDidShow(function () {
                  return i._onItem(t.getFocusedItem())
                })), this._disposables.push(
                t.onDidFocus(this._onItem, this)), this._disposables.push(
                t.onDidHide(this.reset, this)), this._disposables.push(
                e.onWillType(function (t) {
                  if (i._activeItem) {
                    var o = t[t.length - 1];
                    i._activeAcceptCharacters.has(o)
                    && e.getConfiguration().contribInfo.acceptSuggestionOnCommitCharacter
                    && n(i._activeItem)
                  }
                }))
          }

          return e.prototype._onItem = function (e) {
            if (e && !o.isFalsyOrEmpty(e.suggestion.commitCharacters)) {
              this._activeItem = e, this._activeAcceptCharacters.clear();
              for (var t = 0, n = e.suggestion.commitCharacters; t < n.length;
                  t++) {
                var i = n[t];
                i.length > 0 && this._activeAcceptCharacters.add(i[0])
              }
            } else {
              this.reset()
            }
          }, e.prototype.reset = function () {
            this._activeItem = void 0
          }, e.prototype.dispose = function () {
            r.dispose(this._disposables)
          }, e
        }(), x = function () {
          function e(e, t, n, i, o) {
            var r = this;
            this._editor = e, this._commandService = t, this._telemetryService = n, this._toDispose = [], this._model = new S.SuggestModel(
                this._editor), this._toDispose.push(
                this._model.onDidTrigger(function (e) {
                  return r._widget.showTriggered(e.auto)
                })), this._toDispose.push(
                this._model.onDidSuggest(function (e) {
                  return r._widget.showSuggestions(e.completionModel,
                      e.isFrozen, e.auto)
                })), this._toDispose.push(this._model.onDidCancel(function (e) {
              return !e.retrigger && r._widget.hideWidget()
            }));
            var s = w.Context.AcceptSuggestionsOnEnter.bindTo(i),
                a = function () {
                  var e = r._editor.getConfiguration().contribInfo.acceptSuggestionOnEnter;
                  s.set("on" === e || "smart" === e || !0 === e)
                };
            this._toDispose.push(
                this._editor.onDidChangeConfiguration(function (e) {
                  return a()
                })), a(), this._widget = o.createInstance(E.SuggestWidget,
                this._editor), this._toDispose.push(
                this._widget.onDidSelect(this._onDidSelectItem, this));
            var u = new L(e, this._widget, function (e) {
              return r._onDidSelectItem(e)
            });
            this._toDispose.push(u, this._model.onDidSuggest(function (e) {
              0 === e.completionModel.items.length && u.reset()
            }));
            var l = w.Context.MakesTextEdit.bindTo(i);
            this._toDispose.push(this._widget.onDidFocus(function (e) {
              var t = r._editor.getPosition(),
                  n = e.position.column - e.suggestion.overwriteBefore,
                  i = t.column, o = !0;
              "smart"
              !== r._editor.getConfiguration().contribInfo.acceptSuggestionOnEnter
              || 2 !== r._model.state || e.suggestion.command
              || e.suggestion.additionalTextEdits || "textmate"
              === e.suggestion.snippetType || i - n
              !== e.suggestion.insertText.length
              || (o = r._editor.getModel().getValueInRange({
                startLineNumber: t.lineNumber,
                startColumn: n,
                endLineNumber: t.lineNumber,
                endColumn: i
              }) !== e.suggestion.insertText), l.set(o)
            })), this._toDispose.push({
              dispose: function () {
                l.reset()
              }
            })
          }

          return t = e, e.get = function (e) {
            return e.getContribution(t.ID)
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.dispose = function () {
            this._toDispose = r.dispose(this._toDispose), this._widget
            && (this._widget.dispose(), this._widget = null), this._model
            && (this._model.dispose(), this._model = null)
          }, e.prototype._onDidSelectItem = function (e) {
            if (e) {
              var t = e.suggestion, n = e.position,
                  o = this._editor.getPosition().column - n.column;
              Array.isArray(t.additionalTextEdits)
              && (this._editor.pushUndoStop(), this._editor.executeEdits(
                  "suggestController.additionalTextEdits",
                  t.additionalTextEdits.map(function (e) {
                    return g.EditOperation.replace(m.Range.lift(e.range),
                        e.text)
                  })), this._editor.pushUndoStop());
              var r = t.insertText;
              "textmate" !== t.snippetType && (r = C.SnippetParser.escape(
                  r)), b.SnippetController2.get(this._editor).insert(r,
                  t.overwriteBefore + o, t.overwriteAfter), t.command
              && (s = this._commandService).executeCommand.apply(s,
                  [t.command.id].concat(t.command.arguments)).done(void 0,
                  i.onUnexpectedError), this._alertCompletionItem(
                  e), this._telemetryService.publicLog("suggestSnippetInsert",
                  _({}, this._editor.getTelemetryData(),
                      {suggestionType: t.type}))
            }
            this._model.cancel();
            var s
          }, e.prototype._alertCompletionItem = function (e) {
            var t = e.suggestion,
                i = n.localize(0, null, t.label, t.insertText);
            h.alert(i)
          }, e.prototype.triggerSuggest = function (e) {
            this._model.trigger(!1, !1, e), this._editor.revealLine(
                this._editor.getPosition().lineNumber), this._editor.focus()
          }, e.prototype.acceptSelectedSuggestion = function () {
            if (this._widget) {
              var e = this._widget.getFocusedItem();
              this._onDidSelectItem(e)
            }
          }, e.prototype.cancelSuggestWidget = function () {
            this._widget && (this._model.cancel(), this._widget.hideWidget())
          }, e.prototype.selectNextSuggestion = function () {
            this._widget && this._widget.selectNext()
          }, e.prototype.selectNextPageSuggestion = function () {
            this._widget && this._widget.selectNextPage()
          }, e.prototype.selectLastSuggestion = function () {
            this._widget && this._widget.selectLast()
          }, e.prototype.selectPrevSuggestion = function () {
            this._widget && this._widget.selectPrevious()
          }, e.prototype.selectPrevPageSuggestion = function () {
            this._widget && this._widget.selectPreviousPage()
          }, e.prototype.selectFirstSuggestion = function () {
            this._widget && this._widget.selectFirst()
          }, e.prototype.toggleSuggestionDetails = function () {
            this._widget && this._widget.toggleDetails()
          }, e.prototype.toggleSuggestionFocus = function () {
            this._widget && this._widget.toggleDetailsFocus()
          }, e.ID = "editor.contrib.suggestController", e = t = v(
              [p.editorContribution, y(1, l.ICommandService),
                y(2, a.ITelemetryService), y(3, u.IContextKeyService),
                y(4, s.IInstantiationService)], e);
          var t
        }();
        t.SuggestController = x;
        var N = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.triggerSuggest",
              label: n.localize(1, null),
              alias: "Trigger Suggest",
              precondition: u.ContextKeyExpr.and(c.EditorContextKeys.writable,
                  c.EditorContextKeys.hasCompletionItemProvider),
              kbOpts: {
                kbExpr: c.EditorContextKeys.textFocus,
                primary: 2058,
                mac: {primary: 266}
              }
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = x.get(t);
            n && n.triggerSuggest()
          }, t = v([d.editorAction], t)
        }(d.EditorAction);
        t.TriggerSuggestAction = N;
        var M = d.CommonEditorRegistry.commandWeight(90),
            T = d.EditorCommand.bindToContribution(x.get);
        d.CommonEditorRegistry.registerEditorCommand(new T({
          id: "acceptSelectedSuggestion",
          precondition: w.Context.Visible,
          handler: function (e) {
            return e.acceptSelectedSuggestion()
          },
          kbOpts: {weight: M, kbExpr: c.EditorContextKeys.textFocus, primary: 2}
        })), d.CommonEditorRegistry.registerEditorCommand(new T({
          id: "acceptSelectedSuggestionOnEnter",
          precondition: w.Context.Visible,
          handler: function (e) {
            return e.acceptSelectedSuggestion()
          },
          kbOpts: {
            weight: M,
            kbExpr: u.ContextKeyExpr.and(c.EditorContextKeys.textFocus,
                w.Context.AcceptSuggestionsOnEnter, w.Context.MakesTextEdit),
            primary: 3
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new T({
          id: "hideSuggestWidget",
          precondition: w.Context.Visible,
          handler: function (e) {
            return e.cancelSuggestWidget()
          },
          kbOpts: {
            weight: M,
            kbExpr: c.EditorContextKeys.textFocus,
            primary: 9,
            secondary: [1033]
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new T({
          id: "selectNextSuggestion",
          precondition: u.ContextKeyExpr.and(w.Context.Visible,
              w.Context.MultipleSuggestions),
          handler: function (e) {
            return e.selectNextSuggestion()
          },
          kbOpts: {
            weight: M,
            kbExpr: c.EditorContextKeys.textFocus,
            primary: 18,
            secondary: [2066],
            mac: {primary: 18, secondary: [2066, 300]}
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new T({
          id: "selectNextPageSuggestion",
          precondition: u.ContextKeyExpr.and(w.Context.Visible,
              w.Context.MultipleSuggestions),
          handler: function (e) {
            return e.selectNextPageSuggestion()
          },
          kbOpts: {
            weight: M,
            kbExpr: c.EditorContextKeys.textFocus,
            primary: 12,
            secondary: [2060]
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new T({
          id: "selectLastSuggestion",
          precondition: u.ContextKeyExpr.and(w.Context.Visible,
              w.Context.MultipleSuggestions),
          handler: function (e) {
            return e.selectLastSuggestion()
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new T({
          id: "selectPrevSuggestion",
          precondition: u.ContextKeyExpr.and(w.Context.Visible,
              w.Context.MultipleSuggestions),
          handler: function (e) {
            return e.selectPrevSuggestion()
          },
          kbOpts: {
            weight: M,
            kbExpr: c.EditorContextKeys.textFocus,
            primary: 16,
            secondary: [2064],
            mac: {primary: 16, secondary: [2064, 302]}
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new T({
          id: "selectPrevPageSuggestion",
          precondition: u.ContextKeyExpr.and(w.Context.Visible,
              w.Context.MultipleSuggestions),
          handler: function (e) {
            return e.selectPrevPageSuggestion()
          },
          kbOpts: {
            weight: M,
            kbExpr: c.EditorContextKeys.textFocus,
            primary: 11,
            secondary: [2059]
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new T({
          id: "selectFirstSuggestion",
          precondition: u.ContextKeyExpr.and(w.Context.Visible,
              w.Context.MultipleSuggestions),
          handler: function (e) {
            return e.selectFirstSuggestion()
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new T({
          id: "toggleSuggestionDetails",
          precondition: w.Context.Visible,
          handler: function (e) {
            return e.toggleSuggestionDetails()
          },
          kbOpts: {
            weight: M,
            kbExpr: c.EditorContextKeys.textFocus,
            primary: 2058,
            mac: {primary: 266}
          }
        })), d.CommonEditorRegistry.registerEditorCommand(new T({
          id: "toggleSuggestionFocus",
          precondition: w.Context.Visible,
          handler: function (e) {
            return e.toggleSuggestionFocus()
          },
          kbOpts: {
            weight: M,
            kbExpr: c.EditorContextKeys.textFocus,
            primary: 2570,
            mac: {primary: 778}
          }
        }))
      }),define(d[532],
      h([1, 0, 374, 18, 10, 2, 20, 13, 17, 3, 23, 14, 54, 34]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p) {
        "use strict";

        function f(e, t) {
          var n = u.DocumentHighlightProviderRegistry.ordered(e), r = !1;
          return i.sequence(n.map(function (n) {
            return function () {
              if (!r) {
                return i.asWinJsPromise(function (i) {
                  return n.provideDocumentHighlights(e, t, i)
                }).then(function (e) {
                  if (Array.isArray(e) && e.length > 0) {
                    return r = !0, e
                  }
                }, function (e) {
                  o.onUnexpectedExternalError(e)
                })
              }
            }
          })).then(function (e) {
            return e[0]
          })
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.editorWordHighlight = c.registerColor(
            "editor.wordHighlightBackground",
            {dark: "#575757B8", light: "#57575740", hc: null},
            n.localize(0, null)), t.editorWordHighlightStrong = c.registerColor(
            "editor.wordHighlightStrongBackground",
            {dark: "#004972B8", light: "#0e639c40", hc: null}, n.localize(1,
                null)), t.getOccurrencesAtPosition = f, a.CommonEditorRegistry.registerDefaultLanguageCommand(
            "_executeDocumentHighlights", f);
        var g = function () {
          function e(e) {
            var t = this;
            this.workerRequestTokenId = 0, this.workerRequest = null, this.workerRequestCompleted = !1, this.workerRequestValue = [], this.lastCursorPositionChangeTime = 0, this.renderDecorationsTimer = -1, this.editor = e, this.occurrencesHighlight = this.editor.getConfiguration().contribInfo.occurrencesHighlight, this.model = this.editor.getModel(), this.toUnhook = [], this.toUnhook.push(
                e.onDidChangeCursorPosition(function (e) {
                  t.occurrencesHighlight && t._onPositionChanged(e)
                })), this.toUnhook.push(e.onDidChangeModel(function (e) {
              t._stopAll(), t.model = t.editor.getModel()
            })), this.toUnhook.push(e.onDidChangeModelContent(function (e) {
              t._stopAll()
            })), this.toUnhook.push(e.onDidChangeConfiguration(function (e) {
              var n = t.editor.getConfiguration().contribInfo.occurrencesHighlight;
              t.occurrencesHighlight !== n
              && (t.occurrencesHighlight = n, t._stopAll())
            })), this._lastWordRange = null, this._decorationIds = [], this.workerRequestTokenId = 0, this.workerRequest = null, this.workerRequestCompleted = !1, this.lastCursorPositionChangeTime = 0, this.renderDecorationsTimer = -1
          }

          return e.prototype._removeDecorations = function () {
            this._decorationIds.length > 0
            && (this._decorationIds = this.editor.deltaDecorations(
                this._decorationIds, []))
          }, e.prototype._stopAll = function () {
            this._lastWordRange = null, this._removeDecorations(), -1
            !== this.renderDecorationsTimer && (clearTimeout(
                this.renderDecorationsTimer), this.renderDecorationsTimer = -1), null
            !== this.workerRequest
            && (this.workerRequest.cancel(), this.workerRequest = null), this.workerRequestCompleted
            || (this.workerRequestTokenId++, this.workerRequestCompleted = !0)
          }, e.prototype._onPositionChanged = function (e) {
            var t = this;
            if (this.occurrencesHighlight) {
              if (e.reason
                  === h.CursorChangeReason.Explicit) {
                if (u.DocumentHighlightProviderRegistry.has(
                    this.model)) {
                  var n = this.editor.getSelection();
                  if (n.startLineNumber === n.endLineNumber) {
                    var i = n.startLineNumber, o = n.startColumn,
                        s = n.endColumn,
                        a = this.model.getWordAtPosition(
                            {lineNumber: i, column: o});
                    if (!a || a.startColumn > o || a.endColumn
                        < s) {
                      this._stopAll();
                    } else {
                      for (var l = new r.Range(i, a.startColumn, i,
                              a.endColumn),
                          c = this._lastWordRange
                              && this._lastWordRange.equalsRange(l), d = 0,
                          p = this._decorationIds.length; !c && d < p; d++) {
                        var g = this.model.getDecorationRange(
                            this._decorationIds[d]);
                        g && g.startLineNumber === i && g.startColumn <= o
                        && g.endColumn >= s && (c = !0)
                      }
                      if (this.lastCursorPositionChangeTime = (new Date).getTime(), c) {
                        this.workerRequestCompleted
                        && -1 !== this.renderDecorationsTimer && (clearTimeout(
                            this.renderDecorationsTimer), this.renderDecorationsTimer = -1, this._beginRenderDecorations());
                      } else {
                        this._stopAll();
                        var m = ++this.workerRequestTokenId;
                        this.workerRequestCompleted = !1, this.workerRequest = f(
                            this.model,
                            this.editor.getPosition()), this.workerRequest.then(
                            function (e) {
                              m === t.workerRequestTokenId
                              && (t.workerRequestCompleted = !0, t.workerRequestValue = e
                                  || [], t._beginRenderDecorations())
                            }).done()
                      }
                      this._lastWordRange = l
                    }
                  } else {
                    this._stopAll()
                  }
                } else {
                  this._stopAll();
                }
              } else {
                this._stopAll();
              }
            } else {
              this._stopAll()
            }
          }, e.prototype._beginRenderDecorations = function () {
            var e = this, t = (new Date).getTime(),
                n = this.lastCursorPositionChangeTime + 250;
            t >= n
                ? (this.renderDecorationsTimer = -1, this.renderDecorations())
                : this.renderDecorationsTimer = setTimeout(function () {
                  e.renderDecorations()
                }, n - t)
          }, e.prototype.renderDecorations = function () {
            this.renderDecorationsTimer = -1;
            for (var t = [], n = 0, i = this.workerRequestValue.length; n < i;
                n++) {
              var o = this.workerRequestValue[n];
              t.push({range: o.range, options: e._getDecorationOptions(o.kind)})
            }
            this._decorationIds = this.editor.deltaDecorations(
                this._decorationIds, t)
          }, e._getDecorationOptions = function (e) {
            return e === u.DocumentHighlightKind.Write ? this._WRITE_OPTIONS : e
            === u.DocumentHighlightKind.Text ? this._TEXT_OPTIONS
                : this._REGULAR_OPTIONS
          }, e.prototype.dispose = function () {
            this._stopAll(), this.toUnhook = l.dispose(this.toUnhook)
          }, e._WRITE_OPTIONS = p.ModelDecorationOptions.register({
            stickiness: s.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
            className: "wordHighlightStrong",
            overviewRuler: {
              color: "#A0A0A0",
              darkColor: "#A0A0A0",
              position: s.OverviewRulerLane.Center
            }
          }), e._TEXT_OPTIONS = p.ModelDecorationOptions.register({
            stickiness: s.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
            className: "selectionHighlight",
            overviewRuler: {
              color: "#A0A0A0",
              darkColor: "#A0A0A0",
              position: s.OverviewRulerLane.Center
            }
          }), e._REGULAR_OPTIONS = p.ModelDecorationOptions.register({
            stickiness: s.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
            className: "wordHighlight",
            overviewRuler: {
              color: "#A0A0A0",
              darkColor: "#A0A0A0",
              position: s.OverviewRulerLane.Center
            }
          }), e
        }();
        !function () {
          function e(e) {
            this.wordHighligher = new g(e)
          }

          return t = e, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.dispose = function () {
            this.wordHighligher.dispose()
          }, e.ID = "editor.contrib.wordHighlighter", e = t = v(
              [a.commonEditorContribution], e);
          var t
        }();
        d.registerThemingParticipant(function (e, n) {
          var i = e.getColor(c.editorSelectionHighlight);
          i && (n.addRule(
              ".monaco-editor .focused .selectionHighlight { background-color: "
              + i + "; }"), n.addRule(
              ".monaco-editor .selectionHighlight { background-color: "
              + i.transparent(.5) + "; }"));
          var o = e.getColor(t.editorWordHighlight);
          o && n.addRule(
              ".monaco-editor .wordHighlight { background-color: " + o + "; }");
          var r = e.getColor(t.editorWordHighlightStrong);
          r && n.addRule(
              ".monaco-editor .wordHighlightStrong { background-color: " + r
              + "; }");
          var s = e.getColor(c.activeContrastBorder);
          s && (n.addRule(
              ".monaco-editor .selectionHighlight { border: 1px dotted " + s
              + "; box-sizing: border-box; }"), n.addRule(
              ".monaco-editor .wordHighlight { border: 1px dashed " + s
              + "; box-sizing: border-box; }"), n.addRule(
              ".monaco-editor .wordHighlightStrong { border: 1px dashed " + s
              + "; box-sizing: border-box; }"))
        })
      }),define(d[92],
      h([1, 0, 375, 53, 9, 26, 52, 11, 4, 75, 16, 42, 183, 194, 19, 32, 396]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m) {
        "use strict";
        Object.defineProperty(t, "__esModule",
            {value: !0}), t.IPeekViewService = c.createDecorator(
            "peekViewService");
        !function (e) {
          e.inPeekEditor = new g.RawContextKey("inReferenceSearchEditor",
              !0), e.notInPeekEditor = e.inPeekEditor.toNegated()
        }(t.PeekContext
            || (t.PeekContext = {})), t.NOT_INNER_EDITOR_CONTEXT_KEY = new g.RawContextKey(
            "inReferenceSearchEditor", !0), t.getOuterEditor = function (e) {
          var t = e.get(d.ICodeEditorService).getFocusedCodeEditor();
          return t instanceof p.EmbeddedCodeEditorWidget ? t.getParentEditor()
              : t
        };
        var v = {
          headerBackgroundColor: m.Color.white,
          primaryHeadingColor: m.Color.fromHex("#333333"),
          secondaryHeadingColor: m.Color.fromHex("#6c6c6cb3")
        }, _ = function (e) {
          function t(t, n) {
            void 0 === n && (n = {});
            var i = e.call(this, t, n) || this;
            return i._onDidClose = new a.Emitter, i._isActive = !1, r.mixin(
                i.options, v, !1), i
          }

          return f(t, e), t.prototype.dispose = function () {
            this._isActive = !1, e.prototype.dispose.call(
                this), this._onDidClose.fire(this)
          }, Object.defineProperty(t.prototype, "onDidClose", {
            get: function () {
              return this._onDidClose.event
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(t.prototype, "isActive", {
            get: function () {
              return this._isActive
            }, enumerable: !0, configurable: !0
          }), t.prototype.show = function (t, n) {
            this._isActive = !0, e.prototype.show.call(this, t, n)
          }, t.prototype.style = function (t) {
            var n = this.options;
            t.headerBackgroundColor
            && (n.headerBackgroundColor = t.headerBackgroundColor), t.primaryHeadingColor
            && (n.primaryHeadingColor = t.primaryHeadingColor), t.secondaryHeadingColor
            && (n.secondaryHeadingColor = t.secondaryHeadingColor), e.prototype.style.call(
                this, t)
          }, t.prototype._applyStyles = function () {
            e.prototype._applyStyles.call(this);
            var t = this.options;
            this._headElement
            && (this._headElement.style.backgroundColor = t.headerBackgroundColor.toString()), this._primaryHeading
            && (this._primaryHeading.style.color = t.primaryHeadingColor.toString()), this._secondaryHeading
            && (this._secondaryHeading.style.color = t.secondaryHeadingColor.toString()), this._bodyElement
            && (this._bodyElement.style.borderColor = t.frameColor.toString())
          }, t.prototype._fillContainer = function (e) {
            this.setCssClass("peekview-widget"), this._headElement = s.$(
                ".head").getHTMLElement(), this._bodyElement = s.$(
                ".body").getHTMLElement(), this._fillHead(
                this._headElement), this._fillBody(
                this._bodyElement), e.appendChild(
                this._headElement), e.appendChild(this._bodyElement)
          }, t.prototype._fillHead = function (e) {
            var t = this,
                o = s.$(".peekview-title").on(u.EventType.CLICK, function (e) {
                  return t._onTitleClick(e)
                }).appendTo(this._headElement).getHTMLElement();
            this._primaryHeading = s.$("span.filename").appendTo(
                o).getHTMLElement(), this._secondaryHeading = s.$(
                "span.dirname").appendTo(
                o).getHTMLElement(), this._metaHeading = s.$(
                "span.meta").appendTo(
                o).getHTMLElement(), this._actionbarWidget = new l.ActionBar(
                s.$(".peekview-actions").appendTo(
                    this._headElement)), this._actionbarWidget.push(
                new i.Action("peekview.close", n.localize(0, null),
                    "close-peekview-action", !0, function () {
                      return t.dispose(), null
                    }), {label: !1, icon: !0})
          }, t.prototype._onTitleClick = function (e) {
          }, t.prototype.setTitle = function (e, t) {
            s.$(this._primaryHeading).safeInnerHtml(
                e), this._primaryHeading.setAttribute("aria-label", e), t ? s.$(
                this._secondaryHeading).safeInnerHtml(t) : u.clearNode(
                this._secondaryHeading)
          }, t.prototype.setMetaTitle = function (e) {
            e ? s.$(this._metaHeading).safeInnerHtml(e) : u.clearNode(
                this._metaHeading)
          }, t.prototype._fillBody = function (e) {
          }, t.prototype._doLayout = function (e, t) {
            if (!this._isShowing && e
                < 0) {
              return this.dispose(), void this._onDidClose.fire(this);
            }
            var n = Math.ceil(1.2 * this.editor.getConfiguration().lineHeight),
                i = e - (n + 2);
            this._doLayoutHead(n, t), this._doLayoutBody(i, t)
          }, t.prototype._doLayoutHead = function (e, t) {
            this._headElement.style.height = o.format("{0}px",
                e), this._headElement.style.lineHeight = this._headElement.style.height
          }, t.prototype._doLayoutBody = function (e, t) {
            this._bodyElement.style.height = o.format("{0}px", e)
          }, t
        }(h.ZoneWidget);
        t.PeekViewWidget = _
      }),define(d[534],
      h([1, 0, 6, 3, 9, 4, 102, 27, 41, 16, 46, 19, 21, 13, 30, 181, 14, 23, 15,
        51, 71, 24, 28, 400]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, C, b, w, S,
          E, L) {
        "use strict";

        function x(e, t) {
          return e && 0 !== e.length ? 1 === e.length ? t ? o.format(k,
              e[0].positionLineNumber, e[0].positionColumn, t) : o.format(I,
              e[0].positionLineNumber, e[0].positionColumn) : t ? o.format(D,
              e.length, t) : e.length > 0 ? o.format(O, e.length) : null : T
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var N = new d.RawContextKey("accessibilityHelpWidgetVisible", !1),
            M = function (e) {
              function t(t, n) {
                var i = e.call(this) || this;
                return i._editor = t, i._widget = i._register(
                    n.createInstance(R, i._editor)), i
              }

              return f(t, e), n = t, t.get = function (e) {
                return e.getContribution(n.ID)
              }, t.prototype.getId = function () {
                return n.ID
              }, t.prototype.show = function () {
                this._widget.show()
              }, t.prototype.hide = function () {
                this._widget.hide()
              }, t.ID = "editor.contrib.accessibilityHelpController", t = n = v(
                  [g.editorContribution, y(1, l.IInstantiationService)], t);
              var n
            }(i.Disposable), T = n.localize("noSelection", "No selection"),
            k = n.localize("singleSelectionRange",
                "Line {0}, Column {1} ({2} selected)"),
            I = n.localize("singleSelection", "Line {0}, Column {1}"),
            D = n.localize("multiSelectionRange",
                "{0} selections ({1} characters selected)"),
            O = n.localize("multiSelection", "{0} selections"),
            R = function (e) {
              function t(t, i, o, s) {
                var u = e.call(this) || this;
                return u._contextKeyService = i, u._keybindingService = o, u._openerService = s, u._editor = t, u._isVisibleKey = N.bindTo(
                    u._contextKeyService), u._domNode = a.createFastDomNode(
                    document.createElement("div")), u._domNode.setClassName(
                    "accessibilityHelpWidget"), u._domNode.setDisplay(
                    "none"), u._domNode.setAttribute("role",
                    "dialog"), u._domNode.setAttribute("aria-hidden",
                    "true"), u._contentDomNode = a.createFastDomNode(
                    document.createElement(
                        "div")), u._contentDomNode.setAttribute("role",
                    "document"), u._domNode.appendChild(
                    u._contentDomNode), u._isVisible = !1, u._register(
                    u._editor.onDidLayoutChange(function () {
                      u._isVisible && u._layout()
                    })), u._register(
                    r.addStandardDisposableListener(u._contentDomNode.domNode,
                        "keydown", function (e) {
                          if (u._isVisible && (e.equals(2083) && (w.alert(
                              n.localize("emergencyConfOn",
                                  "Now changing the setting `accessibilitySupport` to 'on'.")), u._editor.updateOptions(
                              {accessibilitySupport: "on"}), r.clearNode(
                              u._contentDomNode.domNode), u._buildContent(), u._contentDomNode.domNode.focus(), e.preventDefault(), e.stopPropagation()), e.equals(
                              2086))) {
                            w.alert(n.localize("openingDocs",
                                "Now opening the Editor Accessibility documentation page."));
                            var t = u._editor.getRawConfiguration().accessibilityHelpUrl;
                            void 0 === t
                            && (t = "https://go.microsoft.com/fwlink/?linkid=852450"), u._openerService.open(
                                E.default.parse(
                                    t)), e.preventDefault(), e.stopPropagation()
                          }
                        })), u.onblur(u._contentDomNode.domNode, function () {
                  u.hide()
                }), u._editor.addOverlayWidget(u), u
              }

              return f(t, e), t.prototype.dispose = function () {
                this._editor.removeOverlayWidget(
                    this), e.prototype.dispose.call(this)
              }, t.prototype.getId = function () {
                return t.ID
              }, t.prototype.getDomNode = function () {
                return this._domNode.domNode
              }, t.prototype.getPosition = function () {
                return {preference: null}
              }, t.prototype.show = function () {
                this._isVisible
                || (this._isVisible = !0, this._isVisibleKey.set(
                    !0), this._layout(), this._domNode.setDisplay(
                    "block"), this._domNode.setAttribute("aria-hidden",
                    "false"), this._contentDomNode.domNode.tabIndex = 0, this._buildContent(), this._contentDomNode.domNode.focus())
              }, t.prototype._descriptionForCommand = function (e, t, n) {
                var i = this._keybindingService.lookupKeybinding(e);
                return i ? o.format(t, i.getAriaLabel()) : o.format(n, e)
              }, t.prototype._buildContent = function () {
                var e = this._editor.getConfiguration(),
                    t = this._editor.getSelections(), i = 0;
                if (t) {
                  var o = this._editor.getModel();
                  o && t.forEach(function (e) {
                    i += o.getValueLengthInRange(e)
                  })
                }
                var r = x(t, i);
                switch (e.wrappingInfo.inDiffEditor ? e.readOnly
                    ? r += n.localize("readonlyDiffEditor",
                        " in a read-only pane of a diff editor.")
                    : r += n.localize("editableDiffEditor",
                        " in a pane of a diff editor.") : e.readOnly
                    ? r += n.localize("readonlyEditor",
                        " in a read-only code editor") : r += n.localize(
                        "editableEditor",
                        " in a code editor"), e.accessibilitySupport) {
                  case 0:
                    var a = b.isMacintosh ? n.localize("changeConfigToOnMac",
                            "To configure the editor to be optimized for usage with a Screen Reader press Command+E now.")
                        : n.localize("changeConfigToOnWinLinux",
                            "To configure the editor to be optimized for usage with a Screen Reader press Control+E now.");
                    r += "\n\n - " + a;
                    break;
                  case 2:
                    r += "\n\n - " + n.localize("auto_on",
                        "The editor is configured to be optimized for usage with a Screen Reader.");
                    break;
                  case 1:
                    r += "\n\n - " + n.localize("auto_off",
                        "The editor is configured to never be optimized for usage with a Screen Reader, which is not the case at this time."), r += " "
                        + a
                }
                var u = n.localize("tabFocusModeOnMsg",
                        "Pressing Tab in the current editor will move focus to the next focusable element. Toggle this behavior by pressing {0}."),
                    l = n.localize("tabFocusModeOnMsgNoKb",
                        "Pressing Tab in the current editor will move focus to the next focusable element. The command {0} is currently not triggerable by a keybinding."),
                    c = n.localize("tabFocusModeOffMsg",
                        "Pressing Tab in the current editor will insert the tab character. Toggle this behavior by pressing {0}."),
                    d = n.localize("tabFocusModeOffMsgNoKb",
                        "Pressing Tab in the current editor will insert the tab character. The command {0} is currently not triggerable by a keybinding.");
                e.tabFocusMode ? r += "\n\n - " + this._descriptionForCommand(
                    m.ToggleTabFocusModeAction.ID, u, l) : r += "\n\n - "
                    + this._descriptionForCommand(m.ToggleTabFocusModeAction.ID,
                        c, d), r += "\n\n - " + (b.isMacintosh ? n.localize(
                        "openDocMac",
                        "Press Command+H now to open a browser window with more information related to editor accessibility.")
                    : n.localize("openDocWinLinux",
                        "Press Control+H now to open a browser window with more information related to editor accessibility.")), r += "\n\n"
                    + n.localize("outroMsg",
                        "You can dismiss this tooltip and return to the editor by pressing Escape or Shift+Escape."), this._contentDomNode.domNode.appendChild(
                    s.renderFormattedText(
                        r)), this._contentDomNode.domNode.setAttribute(
                    "aria-label", r)
              }, t.prototype.hide = function () {
                this._isVisible
                && (this._isVisible = !1, this._isVisibleKey.reset(), this._domNode.setDisplay(
                    "none"), this._domNode.setAttribute("aria-hidden",
                    "true"), this._contentDomNode.domNode.tabIndex = -1, r.clearNode(
                    this._contentDomNode.domNode), this._editor.focus())
              }, t.prototype._layout = function () {
                var e = this._editor.getLayoutInfo(),
                    n = Math.max(5, Math.min(t.WIDTH, e.width - 40)),
                    i = Math.max(5, Math.min(t.HEIGHT, e.height - 40));
                this._domNode.setWidth(n), this._domNode.setHeight(i);
                var o = Math.round((e.height - i) / 2);
                this._domNode.setTop(o);
                var r = Math.round((e.width - n) / 2);
                this._domNode.setLeft(r)
              }, t.ID = "editor.contrib.accessibilityHelpWidget", t.WIDTH = 500, t.HEIGHT = 300, t = v(
                  [y(1, d.IContextKeyService), y(2, c.IKeybindingService),
                    y(3, S.IOpenerService)], t)
            }(u.Widget), P = (function (e) {
              function t() {
                return e.call(this, {
                  id: "editor.action.showAccessibilityHelp",
                  label: n.localize("ShowAccessibilityHelpAction",
                      "Show Accessibility Help"),
                  alias: "Show Accessibility Help",
                  precondition: null,
                  kbOpts: {
                    kbExpr: h.EditorContextKeys.focus,
                    primary: L.isIE ? 2107 : 571
                  }
                }) || this
              }

              f(t, e), t.prototype.run = function (e, t) {
                var n = M.get(t);
                n && n.show()
              }, t = v([p.editorAction], t)
            }(p.EditorAction), p.EditorCommand.bindToContribution(M.get));
        p.CommonEditorRegistry.registerEditorCommand(new P({
          id: "closeAccessibilityHelp",
          precondition: N,
          handler: function (e) {
            return e.hide()
          },
          kbOpts: {
            weight: p.CommonEditorRegistry.commandWeight(100),
            kbExpr: h.EditorContextKeys.focus,
            primary: 9,
            secondary: [1033]
          }
        })), _.registerThemingParticipant(function (e, t) {
          var n = e.getColor(C.editorWidgetBackground);
          n && t.addRule(
              ".monaco-editor .accessibilityHelpWidget { background-color: " + n
              + "; }");
          var i = e.getColor(C.widgetShadow);
          i && t.addRule(
              ".monaco-editor .accessibilityHelpWidget { box-shadow: 0 2px 8px "
              + i + "; }");
          var o = e.getColor(C.contrastBorder);
          o && t.addRule(
              ".monaco-editor .accessibilityHelpWidget { border: 2px solid " + o
              + "; }")
        })
      }),define(d[535],
      h([1, 0, 376, 3, 9, 13, 25, 30, 88, 116, 17, 77, 68, 14, 23, 403]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g) {
        "use strict";

        function m(e) {
          for (var t = "", n = 0, i = e.length; n < i; n++) {
            var o = e.charCodeAt(n);
            switch (o) {
              case 9:
                t += "&rarr;";
                break;
              case 32:
                t += "&middot;";
                break;
              case 60:
                t += "&lt;";
                break;
              case 62:
                t += "&gt;";
                break;
              case 38:
                t += "&amp;";
                break;
              default:
                t += String.fromCharCode(o)
            }
          }
          return t
        }

        function _(e) {
          var t = c.TokenizationRegistry.get(e.language);
          return t || {
            getInitialState: function () {
              return h.NULL_STATE
            }, tokenize: function (t, n, i) {
              return h.nullTokenize(e.language, t, n, i)
            }, tokenize2: function (t, n, i) {
              return h.nullTokenize2(e.id, t, n, i)
            }
          }
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var C = function (e) {
          function t(t, n, i) {
            var o = e.call(this) || this;
            return o._editor = t, o._standaloneThemeService = n, o._modeService = i, o._widget = null, o._register(
                o._editor.onDidChangeModel(function (e) {
                  return o.stop()
                })), o._register(
                o._editor.onDidChangeModelLanguage(function (e) {
                  return o.stop()
                })), o._register(
                c.TokenizationRegistry.onDidChange(function (e) {
                  return o.stop()
                })), o
          }

          return f(t, e), n = t, t.get = function (e) {
            return e.getContribution(n.ID)
          }, t.prototype.getId = function () {
            return n.ID
          }, t.prototype.dispose = function () {
            this.stop(), e.prototype.dispose.call(this)
          }, t.prototype.launch = function () {
            this._widget || this._editor.getModel() && (this._widget = new b(
                this._editor, this._standaloneThemeService, this._modeService))
          }, t.prototype.stop = function () {
            this._widget && (this._widget.dispose(), this._widget = null)
          }, t.ID = "editor.contrib.inspectTokens", t = n = v(
              [a.editorContribution, y(1, d.IStandaloneThemeService),
                y(2, u.IModeService)], t);
          var n
        }(i.Disposable), b = (function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.inspectTokens",
              label: n.localize(0, null),
              alias: "Developer: Inspect Tokens",
              precondition: null
            }) || this
          }

          f(t, e), t.prototype.run = function (e, t) {
            var n = C.get(t);
            n && n.launch()
          }, t = v([r.editorAction], t)
        }(r.EditorAction), function (e) {
          function t(t, n, i) {
            var o = e.call(this) || this;
            return o.allowEditorOverflow = !0, o._editor = t, o._standaloneThemeService = n, o._modeService = i, o._model = o._editor.getModel(), o._domNode = document.createElement(
                "div"), o._domNode.className = "tokens-inspect-widget", o._tokenizationSupport = _(
                o._model.getLanguageIdentifier()), o._compute(
                o._editor.getPosition()), o._register(
                o._editor.onDidChangeCursorPosition(function (e) {
                  return o._compute(o._editor.getPosition())
                })), o._editor.addContentWidget(o), o
          }

          return f(t, e), t.prototype.dispose = function () {
            this._editor.removeContentWidget(this), e.prototype.dispose.call(
                this)
          }, t.prototype.getId = function () {
            return t._ID
          }, t.prototype._compute = function (e) {
            for (var t = this._getTokensAtLine(e.lineNumber), n = 0,
                i = t.tokens1.length - 1; i >= 0; i--) {
              var r = t.tokens1[i];
              if (e.column - 1 >= r.offset) {
                n = i;
                break
              }
            }
            for (var s = 0, i = t.tokens2.length >>> 1; i >= 0;
                i--) {
              if (e.column - 1 >= t.tokens2[i << 1]) {
                s = i;
                break
              }
            }
            var a = "", u = this._model.getLineContent(e.lineNumber), l = "";
            if (n < t.tokens1.length) {
              var c = t.tokens1[n].offset,
                  d = n + 1 < t.tokens1.length ? t.tokens1[n + 1].offset
                      : u.length;
              l = u.substring(c, d)
            }
            a += '<h2 class="tm-token">' + m(l)
                + '<span class="tm-token-length">(' + l.length + " " + (1
                === l.length ? "char" : "chars")
                + ")</span></h2>", a += '<hr class="tokens-inspect-separator" style="clear:both"/>';
            var h = this._decodeMetadata(t.tokens2[1 + (s << 1)]);
            a += '<table class="tm-metadata-table"><tbody>', a += '<tr><td class="tm-metadata-key">language</td><td class="tm-metadata-value">'
                + o.escape(h.languageIdentifier.language)
                + "</td>", a += '<tr><td class="tm-metadata-key">token type</td><td class="tm-metadata-value">'
                + this._tokenTypeToString(h.tokenType)
                + "</td>", a += '<tr><td class="tm-metadata-key">font style</td><td class="tm-metadata-value">'
                + this._fontStyleToString(h.fontStyle)
                + "</td>", a += '<tr><td class="tm-metadata-key">foreground</td><td class="tm-metadata-value">'
                + h.foreground.toRGBHex()
                + "</td>", a += '<tr><td class="tm-metadata-key">background</td><td class="tm-metadata-value">'
                + h.background.toRGBHex()
                + "</td>", a += "</tbody></table>", a += '<hr class="tokens-inspect-separator"/>', n
            < t.tokens1.length && (a += '<span class="tm-token-type">'
                + o.escape(t.tokens1[n].type)
                + "</span>"), this._domNode.innerHTML = a, this._editor.layoutContentWidget(
                this)
          }, t.prototype._decodeMetadata = function (e) {
            var t = c.TokenizationRegistry.getColorMap(),
                n = l.TokenMetadata.getLanguageId(e),
                i = l.TokenMetadata.getTokenType(e),
                o = l.TokenMetadata.getFontStyle(e),
                r = l.TokenMetadata.getForeground(e),
                s = l.TokenMetadata.getBackground(e);
            return {
              languageIdentifier: this._modeService.getLanguageIdentifier(n),
              tokenType: i,
              fontStyle: o,
              foreground: t[r],
              background: t[s]
            }
          }, t.prototype._tokenTypeToString = function (e) {
            switch (e) {
              case 0:
                return "Other";
              case 1:
                return "Comment";
              case 2:
                return "String";
              case 4:
                return "RegEx"
            }
            return "??"
          }, t.prototype._fontStyleToString = function (e) {
            var t = "";
            return 1 & e && (t += "italic "), 2 & e && (t += "bold "), 4 & e
            && (t += "underline "), 0 === t.length && (t = "---"), t
          }, t.prototype._getTokensAtLine = function (e) {
            var t = this._getStateBeforeLine(e),
                n = this._tokenizationSupport.tokenize(
                    this._model.getLineContent(e), t, 0),
                i = this._tokenizationSupport.tokenize2(
                    this._model.getLineContent(e), t, 0);
            return {
              startState: t,
              tokens1: n.tokens,
              tokens2: i.tokens,
              endState: n.endState
            }
          }, t.prototype._getStateBeforeLine = function (e) {
            for (var t = this._tokenizationSupport.getInitialState(), n = 1;
                n < e; n++) {
              t = this._tokenizationSupport.tokenize(
                  this._model.getLineContent(n), t, 0).endState;
            }
            return t
          }, t.prototype.getDomNode = function () {
            return this._domNode
          }, t.prototype.getPosition = function () {
            return {
              position: this._editor.getPosition(),
              preference: [s.ContentWidgetPositionPreference.BELOW,
                s.ContentWidgetPositionPreference.ABOVE]
            }
          }, t._ID = "editor.contrib.inspectTokensWidget", t
        }(i.Disposable));
        p.registerThemingParticipant(function (e, t) {
          var n = e.getColor(g.editorHoverBorder);
          if (n) {
            var i = e.type === p.HIGH_CONTRAST ? 2 : 1;
            t.addRule(".monaco-editor .tokens-inspect-widget { border: " + i
                + "px solid " + n + "; }"), t.addRule(
                ".monaco-editor .tokens-inspect-widget .tokens-inspect-separator { background-color: "
                + n + "; }")
          }
          var o = e.getColor(g.editorHoverBackground);
          o && t.addRule(
              ".monaco-editor .tokens-inspect-widget { background-color: " + o
              + "; }")
        })
      }),define(d[143], h([1, 0, 30, 483, 13, 14, 34]),
      function (e, t, n, i, o, r, s) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var a = function () {
          function e(e, t) {
            this.themeService = t, this.editor = e
          }

          return t = e, e.get = function (e) {
            return e.getContribution(t.ID)
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.dispose = function () {
            this.widget && (this.widget.destroy(), this.widget = null)
          }, e.prototype.run = function (e) {
            var t = this;
            this.widget && (this.widget.destroy(), this.widget = null);
            var n = function (e) {
              t.clearDecorations(), e && t.lastKnownEditorSelection
              && (t.editor.setSelection(
                  t.lastKnownEditorSelection), t.editor.revealRangeInCenterIfOutsideViewport(
                  t.lastKnownEditorSelection)), t.lastKnownEditorSelection = null, t.editor.focus()
            };
            this.widget = new i.QuickOpenEditorWidget(this.editor, function () {
                  return n(!1)
                }, function () {
                  return n(!0)
                }, function (n) {
                  t.widget.setInput(e.getModel(n), e.getAutoFocus(n))
                }, {inputAriaLabel: e.inputAriaLabel},
                this.themeService), this.lastKnownEditorSelection
            || (this.lastKnownEditorSelection = this.editor.getSelection()), this.widget.show(
                "")
          }, e.prototype.decorateLine = function (e, n) {
            var i = this;
            n.changeDecorations(function (n) {
              var o = [];
              i.rangeHighlightDecorationId && (o.push(
                  i.rangeHighlightDecorationId), i.rangeHighlightDecorationId = null);
              var r = [{range: e, options: t._RANGE_HIGHLIGHT_DECORATION}],
                  s = n.deltaDecorations(o, r);
              i.rangeHighlightDecorationId = s[0]
            })
          }, e.prototype.clearDecorations = function () {
            var e = this;
            this.rangeHighlightDecorationId && this.editor.changeDecorations(
                function (t) {
                  t.deltaDecorations([e.rangeHighlightDecorationId],
                      []), e.rangeHighlightDecorationId = null
                })
          }, e.ID = "editor.controller.quickOpenController", e._RANGE_HIGHLIGHT_DECORATION = s.ModelDecorationOptions.register(
              {className: "rangeHighlight", isWholeLine: !0}), e = t = v(
              [n.editorContribution, y(1, r.IThemeService)], e);
          var t
        }();
        t.QuickOpenController = a;
        var u = function (e) {
          function t(t, n) {
            var i = e.call(this, n) || this;
            return i._inputAriaLabel = t, i
          }

          return f(t, e), t.prototype.getController = function (e) {
            return a.get(e)
          }, t.prototype._show = function (e, t) {
            e.run({
              inputAriaLabel: this._inputAriaLabel, getModel: function (e) {
                return t.getModel(e)
              }, getAutoFocus: function (e) {
                return t.getAutoFocus(e)
              }
            })
          }, t
        }(o.EditorAction);
        t.BaseEditorQuickOpenAction = u
      }),define(d[537], h([1, 0, 377, 120, 100, 20, 21, 143, 13, 12, 2, 404]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var d = function (e) {
          function t(t, n, i) {
            var o = e.call(this) || this;
            return o.editor = n, o.decorator = i, o._parseResult = o._parseInput(
                t), o
          }

          return f(t, e), t.prototype._parseInput = function (e) {
            var t, i = e.split(",").map(function (e) {
              return parseInt(e, 10)
            }).filter(function (e) {
              return !isNaN(e)
            });
            t = 0 === i.length ? new l.Position(-1, -1) : 1 === i.length
                ? new l.Position(i[0], 1) : new l.Position(i[0], i[1]);
            var o, s, a = (o = r.isCommonCodeEditor(this.editor)
                ? this.editor.getModel()
                : this.editor.getModel().modified).validatePosition(t).equals(
                t);
            return s = a ? t.column && t.column > 1 ? n.localize(0, null,
                t.lineNumber, t.column) : n.localize(1, null, t.lineNumber,
                t.column) : t.lineNumber < 1 || t.lineNumber > o.getLineCount()
                ? n.localize(2, null, o.getLineCount()) : n.localize(3, null,
                    o.getLineMaxColumn(t.lineNumber)), {
              position: t,
              isValid: a,
              label: s
            }
          }, t.prototype.getLabel = function () {
            return this._parseResult.label
          }, t.prototype.getAriaLabel = function () {
            return n.localize(4, null, this._parseResult.label)
          }, t.prototype.run = function (e, t) {
            return e === o.Mode.OPEN ? this.runOpen() : this.runPreview()
          }, t.prototype.runOpen = function () {
            if (!this._parseResult.isValid) {
              return !1;
            }
            var e = this.toSelection();
            return this.editor.setSelection(e), this.editor.revealRangeInCenter(
                e), this.editor.focus(), !0
          }, t.prototype.runPreview = function () {
            if (!this._parseResult.isValid) {
              return this.decorator.clearDecorations(), !1;
            }
            var e = this.toSelection();
            return this.editor.revealRangeInCenter(
                e), this.decorator.decorateLine(e, this.editor), !1
          }, t.prototype.toSelection = function () {
            return new c.Range(this._parseResult.position.lineNumber,
                this._parseResult.position.column,
                this._parseResult.position.lineNumber,
                this._parseResult.position.column)
          }, t
        }(i.QuickOpenEntry);
        t.GotoLineEntry = d;
        var h = function (e) {
          function t() {
            return e.call(this, n.localize(5, null), {
              id: "editor.action.gotoLine",
              label: n.localize(6, null),
              alias: "Go to Line...",
              precondition: null,
              kbOpts: {
                kbExpr: s.EditorContextKeys.focus,
                primary: 2085,
                mac: {primary: 293}
              }
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = this;
            this._show(this.getController(t), {
              getModel: function (e) {
                return new i.QuickOpenModel([new d(e, t, n.getController(t))])
              }, getAutoFocus: function (e) {
                return {autoFocusFirstEntry: e.length > 0}
              }
            })
          }, t = v([u.editorAction], t)
        }(a.BaseEditorQuickOpenAction);
        t.GotoLineAction = h
      }),define(d[538],
      h([1, 0, 378, 10, 81, 7, 120, 100, 46, 21, 143, 13, 28]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var p = function (e) {
          function t(t, n, i, o) {
            var r = e.call(this) || this;
            return r.key = t, r.setHighlights(n), r.action = i, r.editor = o, r
          }

          return f(t, e), t.prototype.getLabel = function () {
            return this.action.label
          }, t.prototype.getAriaLabel = function () {
            return n.localize(0, null, this.getLabel())
          }, t.prototype.getGroupLabel = function () {
            return this.key
          }, t.prototype.run = function (e, t) {
            var n = this;
            return e === a.Mode.OPEN && (r.TPromise.timeout(50).done(
                function () {
                  n.editor.focus();
                  try {
                    (n.action.run() || r.TPromise.as(null)).done(null,
                        i.onUnexpectedError)
                  } catch (e) {
                    i.onUnexpectedError(e)
                  }
                }, i.onUnexpectedError), !0)
          }, t
        }(s.QuickOpenEntryGroup);
        t.EditorActionCommandEntry = p;
        var g = function (e) {
          function t() {
            return e.call(this, n.localize(1, null), {
              id: "editor.action.quickCommand",
              label: n.localize(2, null),
              alias: "Command Palette",
              precondition: null,
              kbOpts: {
                kbExpr: l.EditorContextKeys.focus,
                primary: h.isIE ? 571 : 59
              },
              menuOpts: {}
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = this, i = e.get(u.IKeybindingService);
            this._show(this.getController(t), {
              getModel: function (e) {
                return new s.QuickOpenModel(n._editorActionsToEntries(i, t, e))
              }, getAutoFocus: function (e) {
                return {autoFocusFirstEntry: !0, autoFocusPrefixMatch: e}
              }
            })
          }, t.prototype._sort = function (e, t) {
            var n = e.getLabel().toLowerCase(), i = t.getLabel().toLowerCase();
            return n.localeCompare(i)
          }, t.prototype._editorActionsToEntries = function (e, t, n) {
            for (var i = t.getSupportedActions(), r = [], s = 0; s < i.length;
                s++) {
              var a = i[s], u = e.lookupKeybinding(a.id);
              if (a.label) {
                var l = o.matchesFuzzy(n, a.label);
                l && r.push(new p(u ? u.getLabel() : "", l, a, t))
              }
            }
            return r = r.sort(this._sort)
          }, t = v([d.editorAction], t)
        }(c.BaseEditorQuickOpenAction);
        t.QuickCommandAction = g
      }),define(d[539],
      h([1, 0, 379, 81, 9, 120, 100, 21, 17, 143, 470, 13, 2, 405]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var p = function (e) {
          function t(t, n, i, o, r, s, a) {
            var u = e.call(this) || this;
            return u.name = t, u.type = n, u.description = i, u.range = o, u.setHighlights(
                r), u.editor = s, u.decorator = a, u
          }

          return f(t, e), t.prototype.getLabel = function () {
            return this.name
          }, t.prototype.getAriaLabel = function () {
            return n.localize(0, null, this.name)
          }, t.prototype.getIcon = function () {
            return this.type
          }, t.prototype.getDescription = function () {
            return this.description
          }, t.prototype.getType = function () {
            return this.type
          }, t.prototype.getRange = function () {
            return this.range
          }, t.prototype.run = function (e, t) {
            return e === s.Mode.OPEN ? this.runOpen(t) : this.runPreview()
          }, t.prototype.runOpen = function (e) {
            var t = this.toSelection();
            return this.editor.setSelection(t), this.editor.revealRangeInCenter(
                t), this.editor.focus(), !0
          }, t.prototype.runPreview = function () {
            var e = this.toSelection();
            return this.editor.revealRangeInCenter(
                e), this.decorator.decorateLine(this.range, this.editor), !1
          }, t.prototype.toSelection = function () {
            return new h.Range(this.range.startLineNumber,
                this.range.startColumn || 1, this.range.startLineNumber,
                this.range.startColumn || 1)
          }, t
        }(r.QuickOpenEntryGroup), g = function (e) {
          function t() {
            return e.call(this, n.localize(1, null), {
              id: "editor.action.quickOutline",
              label: n.localize(2, null),
              alias: "Go to Symbol...",
              precondition: a.EditorContextKeys.hasDocumentSymbolProvider,
              kbOpts: {kbExpr: a.EditorContextKeys.focus, primary: 3117},
              menuOpts: {group: "navigation", order: 3}
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = this, i = t.getModel();
            return u.DocumentSymbolProviderRegistry.has(i)
                ? c.getDocumentSymbols(i).then(function (e) {
                  0 !== e.entries.length && n._run(t, e.entries)
                }) : null
          }, t.prototype._run = function (e, t) {
            var n = this;
            this._show(this.getController(e), {
              getModel: function (i) {
                return new r.QuickOpenModel(n.toQuickOpenEntries(e, t, i))
              }, getAutoFocus: function (e) {
                return 0 === e.indexOf(":") && (e = e.substr(":".length)), {
                  autoFocusPrefixMatch: e,
                  autoFocusFirstEntry: !!e
                }
              }
            })
          }, t.prototype.toQuickOpenEntries = function (e, t, r) {
            var s = this.getController(e), a = [], l = r;
            0 === r.indexOf(":") && (l = l.substr(":".length));
            for (y = 0; y < t.length; y++) {
              var c = t[y], d = o.trim(c.name), f = i.matchesFuzzy(l, d);
              if (f) {
                var g = null;
                c.containerName && (g = c.containerName), a.push(
                    new p(d, u.symbolKindToCssClass(c.kind), g,
                        h.Range.lift(c.location.range), f, e, s))
              }
            }
            if (r && (a = 0 === r.indexOf(":") ? a.sort(
                this.sortScoped.bind(this, r.toLowerCase())) : a.sort(
                this.sortNormal.bind(this, r.toLowerCase()))), a.length > 0 && 0
            === r.indexOf(":")) {
              for (var m = null, v = null, _ = 0, y = 0; y < a.length; y++) {
                var C = a[y];
                m !== C.getType() ? (v && v.setGroupLabel(this.typeToLabel(m,
                        _)), m = C.getType(), v = C, _ = 1, C.setShowBorder(y > 0))
                    : _++
              }
              v && v.setGroupLabel(this.typeToLabel(m, _))
            } else {
              a.length > 0 && a[0].setGroupLabel(
                  n.localize(3, null, a.length));
            }
            return a
          }, t.prototype.typeToLabel = function (e, t) {
            switch (e) {
              case"module":
                return n.localize(4, null, t);
              case"class":
                return n.localize(5, null, t);
              case"interface":
                return n.localize(6, null, t);
              case"method":
                return n.localize(7, null, t);
              case"function":
                return n.localize(8, null, t);
              case"property":
                return n.localize(9, null, t);
              case"variable":
                return n.localize(10, null, t);
              case"var":
                return n.localize(11, null, t);
              case"constructor":
                return n.localize(12, null, t);
              case"call":
                return n.localize(13, null, t)
            }
            return e
          }, t.prototype.sortNormal = function (e, t, n) {
            var i = t.getLabel().toLowerCase(), o = n.getLabel().toLowerCase(),
                r = i.localeCompare(o);
            if (0 !== r) {
              return r;
            }
            var s = t.getRange(), a = n.getRange();
            return s.startLineNumber - a.startLineNumber
          }, t.prototype.sortScoped = function (e, t, n) {
            e = e.substr(":".length);
            var i = t.getType(), o = n.getType(), r = i.localeCompare(o);
            if (0 !== r) {
              return r;
            }
            if (e) {
              var s = t.getLabel().toLowerCase(),
                  a = n.getLabel().toLowerCase(), u = s.localeCompare(a);
              if (0 !== u) {
                return u
              }
            }
            var l = t.getRange(), c = n.getRange();
            return l.startLineNumber - c.startLineNumber
          }, t = v([d.editorAction], t)
        }(l.BaseEditorQuickOpenAction);
        t.QuickOutlineAction = g
      }),define(d[540],
      h([1, 0, 3, 7, 69, 16, 31, 46, 19, 42, 61, 129, 141, 193, 77, 149, 85, 14,
        51, 50, 380, 28]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, C, b, w, S,
          E) {
        "use strict";

        function L() {
          N || (N = !0, b.setARIAContainer(document.body))
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var x = 0, N = !1, M = function (e) {
          function t(t, n, i, o, r, s, a, u) {
            var l = this;
            return n = n || {}, n.ariaLabel = n.ariaLabel || S.localize(0,
                null), n.ariaLabel = n.ariaLabel + ";" + (E.isIE ? S.localize(1,
                null) : S.localize(2, null)), l = e.call(this, t, n, i, o, r, s,
                u) || this, a instanceof d.StandaloneKeybindingService
            && (l._standaloneKeybindingService = a), L(), l
          }

          return f(t, e), t.prototype.addCommand = function (e, t, n) {
            if (!this._standaloneKeybindingService) {
              return console.warn(
                  "Cannot add command because the editor is configured with an unrecognized KeybindingService"), null;
            }
            var i = "DYNAMIC_" + ++x, o = u.ContextKeyExpr.deserialize(n);
            return this._standaloneKeybindingService.addDynamicKeybinding(i, e,
                t, o), i
          }, t.prototype.createContextKey = function (e, t) {
            return this._contextKeyService.createKey(e, t)
          }, t.prototype.addAction = function (e) {
            var t = this;
            if ("string" != typeof e.id || "string" != typeof e.label
                || "function" != typeof e.run) {
              throw new Error(
                  "Invalid action descriptor, `id`, `label` and `run` are required properties!");
            }
            if (!this._standaloneKeybindingService) {
              return console.warn(
                  "Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"), n.empty;
            }
            var o = e.id, r = e.label, a = u.ContextKeyExpr.and(
                    u.ContextKeyExpr.equals("editorId", this.getId()),
                    u.ContextKeyExpr.deserialize(e.precondition)),
                l = e.keybindings, c = u.ContextKeyExpr.and(a,
                    u.ContextKeyExpr.deserialize(e.keybindingContext)),
                d = e.contextMenuGroupId || null, h = e.contextMenuOrder || 0,
                p = function () {
                  var n = e.run(t);
                  return n || i.TPromise.as(void 0)
                }, f = [], g = this.getId() + ":" + o;
            if (f.push(s.CommandsRegistry.registerCommand(g, p)), d) {
              var v = {command: {id: g, title: r}, when: a, group: d, order: h};
              f.push(_.MenuRegistry.appendMenuItem(_.MenuId.EditorContext, v))
            }
            Array.isArray(l) && (f = f.concat(l.map(function (e) {
              return t._standaloneKeybindingService.addDynamicKeybinding(g, e,
                  p, c)
            })));
            var y = new m.InternalEditorAction(g, r, r, a, p,
                this._contextKeyService);
            return this._actions[o] = y, f.push({
              dispose: function () {
                delete t._actions[o]
              }
            }), n.combinedDisposable(f)
          }, t = v([y(2, r.IInstantiationService), y(3, l.ICodeEditorService),
            y(4, s.ICommandService), y(5, u.IContextKeyService),
            y(6, a.IKeybindingService), y(7, C.IThemeService)], t)
        }(h.CodeEditor);
        t.StandaloneCodeEditor = M;
        var T = function (e) {
          function t(t, n, i, o, r, s, a, u, l, c) {
            var d = this;
            "string" == typeof (n = n || {}).theme && c.setTheme(n.theme);
            var h = n.model;
            if (delete n.model, d = e.call(this, t, n, o, r, s, a, u, c)
                || this, d._contextViewService = l, d._register(i), void 0 === h
                ? (h = self.monaco.editor.createModel(n.value || "",
                    n.language || "text/plain"), d._ownsModel = !0)
                : d._ownsModel = !1, d._attachModel(h), h) {
              var p = {oldModelUrl: null, newModelUrl: h.uri};
              d._onDidChangeModel.fire(p)
            }
            return d
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.prototype.destroy = function () {
            this.dispose()
          }, t.prototype._attachModel = function (t) {
            e.prototype._attachModel.call(this, t), this._view
            && this._contextViewService.setContainer(this._view.domNode.domNode)
          }, t.prototype._postDetachModelCleanup = function (t) {
            e.prototype._postDetachModelCleanup.call(this, t), t
            && this._ownsModel && (t.dispose(), this._ownsModel = !1)
          }, t = v([y(3, r.IInstantiationService), y(4, l.ICodeEditorService),
            y(5, s.ICommandService), y(6, u.IContextKeyService),
            y(7, a.IKeybindingService), y(8, o.IContextViewService),
            y(9, g.IStandaloneThemeService)], t)
        }(M);
        t.StandaloneEditor = T;
        var k = function (e) {
          function t(t, n, i, o, r, s, a, u, l, c, h) {
            var p = this;
            return "string" == typeof (n = n || {}).theme
            && (n.theme = c.setTheme(n.theme)), p = e.call(this, t, n, u, r, o,
                l, c, h) || this, s instanceof d.StandaloneKeybindingService
            && (p._standaloneKeybindingService = s), p._contextViewService = a, p._register(
                i), p._contextViewService.setContainer(
                p._containerDomElement), p
          }

          return f(t, e), t.prototype.dispose = function () {
            e.prototype.dispose.call(this)
          }, t.prototype.destroy = function () {
            this.dispose()
          }, t.prototype._createInnerEditor = function (e, t, n) {
            return e.createInstance(M, t, n)
          }, t.prototype.getOriginalEditor = function () {
            return e.prototype.getOriginalEditor.call(this)
          }, t.prototype.getModifiedEditor = function () {
            return e.prototype.getModifiedEditor.call(this)
          }, t.prototype.addCommand = function (e, t, n) {
            return this.getModifiedEditor().addCommand(e, t, n)
          }, t.prototype.createContextKey = function (e, t) {
            return this.getModifiedEditor().createContextKey(e, t)
          }, t.prototype.addAction = function (e) {
            return this.getModifiedEditor().addAction(e)
          }, t = v([y(3, r.IInstantiationService), y(4, u.IContextKeyService),
            y(5, a.IKeybindingService), y(6, o.IContextViewService),
            y(7, c.IEditorWorkerService), y(8, l.ICodeEditorService),
            y(9, g.IStandaloneThemeService), y(10, w.IMessageService)], t)
        }(p.DiffEditorWidget);
        t.StandaloneDiffEditor = k
      }),define(d[541], h([1, 0, 23, 37]), function (e, t, n, i) {
    "use strict";
    Object.defineProperty(t, "__esModule", {value: !0}), t.vs = {
      base: "vs",
      inherit: !1,
      rules: [{token: "", foreground: "000000", background: "fffffe"},
        {token: "invalid", foreground: "cd3131"},
        {token: "emphasis", fontStyle: "italic"},
        {token: "strong", fontStyle: "bold"},
        {token: "variable", foreground: "001188"},
        {token: "variable.predefined", foreground: "4864AA"},
        {token: "constant", foreground: "dd0000"},
        {token: "comment", foreground: "008000"},
        {token: "number", foreground: "09885A"},
        {token: "number.hex", foreground: "3030c0"},
        {token: "regexp", foreground: "800000"},
        {token: "annotation", foreground: "808080"},
        {token: "type", foreground: "008080"},
        {token: "delimiter", foreground: "000000"},
        {token: "delimiter.html", foreground: "383838"},
        {token: "delimiter.xml", foreground: "0000FF"},
        {token: "tag", foreground: "800000"},
        {token: "tag.id.jade", foreground: "4F76AC"},
        {token: "tag.class.jade", foreground: "4F76AC"},
        {token: "meta.scss", foreground: "800000"},
        {token: "metatag", foreground: "e00000"},
        {token: "metatag.content.html", foreground: "FF0000"},
        {token: "metatag.html", foreground: "808080"},
        {token: "metatag.xml", foreground: "808080"},
        {token: "metatag.php", fontStyle: "bold"},
        {token: "key", foreground: "863B00"},
        {token: "string.key.json", foreground: "A31515"},
        {token: "string.value.json", foreground: "0451A5"},
        {token: "attribute.name", foreground: "FF0000"},
        {token: "attribute.value", foreground: "0451A5"},
        {token: "attribute.value.number", foreground: "09885A"},
        {token: "attribute.value.unit", foreground: "09885A"},
        {token: "attribute.value.html", foreground: "0000FF"},
        {token: "attribute.value.xml", foreground: "0000FF"},
        {token: "string", foreground: "A31515"},
        {token: "string.html", foreground: "0000FF"},
        {token: "string.sql", foreground: "FF0000"},
        {token: "string.yaml", foreground: "0451A5"},
        {token: "keyword", foreground: "0000FF"},
        {token: "keyword.json", foreground: "0451A5"},
        {token: "keyword.flow", foreground: "AF00DB"},
        {token: "keyword.flow.scss", foreground: "0000FF"},
        {token: "operator.scss", foreground: "666666"},
        {token: "operator.sql", foreground: "778899"},
        {token: "operator.swift", foreground: "666666"},
        {token: "predefined.sql", foreground: "FF00FF"}],
      colors: (o = {}, o[n.editorBackground] = "#FFFFFE", o[n.editorForeground] = "#000000", o[n.editorInactiveSelection] = "#E5EBF1", o[i.editorIndentGuides] = "#D3D3D3", o[n.editorSelectionHighlight] = "#ADD6FF4D", o)
    }, t.vs_dark = {
      base: "vs-dark",
      inherit: !1,
      rules: [{token: "", foreground: "D4D4D4", background: "1E1E1E"},
        {token: "invalid", foreground: "f44747"},
        {token: "emphasis", fontStyle: "italic"},
        {token: "strong", fontStyle: "bold"},
        {token: "variable", foreground: "74B0DF"},
        {token: "variable.predefined", foreground: "4864AA"},
        {token: "variable.parameter", foreground: "9CDCFE"},
        {token: "constant", foreground: "569CD6"},
        {token: "comment", foreground: "608B4E"},
        {token: "number", foreground: "B5CEA8"},
        {token: "number.hex", foreground: "5BB498"},
        {token: "regexp", foreground: "B46695"},
        {token: "annotation", foreground: "cc6666"},
        {token: "type", foreground: "3DC9B0"},
        {token: "delimiter", foreground: "DCDCDC"},
        {token: "delimiter.html", foreground: "808080"},
        {token: "delimiter.xml", foreground: "808080"},
        {token: "tag", foreground: "569CD6"},
        {token: "tag.id.jade", foreground: "4F76AC"},
        {token: "tag.class.jade", foreground: "4F76AC"},
        {token: "meta.scss", foreground: "A79873"},
        {token: "meta.tag", foreground: "CE9178"},
        {token: "metatag", foreground: "DD6A6F"},
        {token: "metatag.content.html", foreground: "9CDCFE"},
        {token: "metatag.html", foreground: "569CD6"},
        {token: "metatag.xml", foreground: "569CD6"},
        {token: "metatag.php", fontStyle: "bold"},
        {token: "key", foreground: "9CDCFE"},
        {token: "string.key.json", foreground: "9CDCFE"},
        {token: "string.value.json", foreground: "CE9178"},
        {token: "attribute.name", foreground: "9CDCFE"},
        {token: "attribute.value", foreground: "CE9178"},
        {token: "attribute.value.number.css", foreground: "B5CEA8"},
        {token: "attribute.value.unit.css", foreground: "B5CEA8"},
        {token: "attribute.value.hex.css", foreground: "D4D4D4"},
        {token: "string", foreground: "CE9178"},
        {token: "string.sql", foreground: "FF0000"},
        {token: "keyword", foreground: "569CD6"},
        {token: "keyword.flow", foreground: "C586C0"},
        {token: "keyword.json", foreground: "CE9178"},
        {token: "keyword.flow.scss", foreground: "569CD6"},
        {token: "operator.scss", foreground: "909090"},
        {token: "operator.sql", foreground: "778899"},
        {token: "operator.swift", foreground: "909090"},
        {token: "predefined.sql", foreground: "FF00FF"}],
      colors: (r = {}, r[n.editorBackground] = "#1E1E1E", r[n.editorForeground] = "#D4D4D4", r[n.editorInactiveSelection] = "#3A3D41", r[i.editorIndentGuides] = "#404040", r[n.editorSelectionHighlight] = "#ADD6FF26", r)
    }, t.hc_black = {
      base: "hc-black",
      inherit: !1,
      rules: [{token: "", foreground: "FFFFFF", background: "000000"},
        {token: "invalid", foreground: "f44747"},
        {token: "emphasis", fontStyle: "italic"},
        {token: "strong", fontStyle: "bold"},
        {token: "variable", foreground: "1AEBFF"},
        {token: "variable.parameter", foreground: "9CDCFE"},
        {token: "constant", foreground: "569CD6"},
        {token: "comment", foreground: "608B4E"},
        {token: "number", foreground: "FFFFFF"},
        {token: "regexp", foreground: "C0C0C0"},
        {token: "annotation", foreground: "569CD6"},
        {token: "type", foreground: "3DC9B0"},
        {token: "delimiter", foreground: "FFFF00"},
        {token: "delimiter.html", foreground: "FFFF00"},
        {token: "tag", foreground: "569CD6"},
        {token: "tag.id.jade", foreground: "4F76AC"},
        {token: "tag.class.jade", foreground: "4F76AC"},
        {token: "meta", foreground: "D4D4D4"},
        {token: "meta.tag", foreground: "CE9178"},
        {token: "metatag", foreground: "569CD6"},
        {token: "metatag.content.html", foreground: "1AEBFF"},
        {token: "metatag.html", foreground: "569CD6"},
        {token: "metatag.xml", foreground: "569CD6"},
        {token: "metatag.php", fontStyle: "bold"},
        {token: "key", foreground: "9CDCFE"},
        {token: "string.key", foreground: "9CDCFE"},
        {token: "string.value", foreground: "CE9178"},
        {token: "attribute.name", foreground: "569CD6"},
        {token: "attribute.value", foreground: "3FF23F"},
        {token: "string", foreground: "CE9178"},
        {token: "string.sql", foreground: "FF0000"},
        {token: "keyword", foreground: "569CD6"},
        {token: "keyword.flow", foreground: "C586C0"},
        {token: "operator.sql", foreground: "778899"},
        {token: "operator.swift", foreground: "909090"},
        {token: "predefined.sql", foreground: "FF00FF"}],
      colors: (s = {}, s[n.editorBackground] = "#000000", s[n.editorForeground] = "#FFFFFF", s[i.editorIndentGuides] = "#FFFFFF", s)
    };
    var o, r, s
  }),define(d[542], h([1, 0, 202, 541, 4, 17, 32, 23, 14, 44, 11]),
      function (e, t, n, i, o, r, s, a, u, l, c) {
        "use strict";

        function d(e) {
          return e === f || e === g || e === m
        }

        function h(e) {
          switch (e) {
            case f:
              return i.vs;
            case g:
              return i.vs_dark;
            case m:
              return i.hc_black
          }
        }

        function p(e) {
          var t = h(e);
          return new y(e, "", t.colors, t.rules)
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var f = "vs", g = "vs-dark", m = "hc-black",
            v = l.Registry.as(a.Extensions.ColorContribution),
            _ = l.Registry.as(u.Extensions.ThemingContribution),
            y = function () {
              function e(e, t, n, i) {
                t.length > 0 ? (this.id = e + " " + t, this.themeName = t)
                    : (this.id = e, this.themeName = e), this.base = e, this.rules = i, this.colors = {};
                for (var o in n) {
                  this.colors[o] = s.Color.fromHex(n[o]);
                }
                this.defaultColors = {}
              }

              return e.prototype.getColor = function (e, t) {
                return this.colors.hasOwnProperty(e) ? this.colors[e] : !1 !== t
                    ? this.getDefault(e) : null
              }, e.prototype.getDefault = function (e) {
                if (this.defaultColors.hasOwnProperty(
                    e)) {
                  return this.defaultColors[e];
                }
                var t = v.resolveDefaultColor(e, this);
                return this.defaultColors[e] = t, t
              }, e.prototype.defines = function (e) {
                return this.colors.hasOwnProperty(e)
              }, Object.defineProperty(e.prototype, "type", {
                get: function () {
                  switch (this.base) {
                    case f:
                      return "light";
                    case m:
                      return "hc";
                    default:
                      return "dark"
                  }
                }, enumerable: !0, configurable: !0
              }), Object.defineProperty(e.prototype, "tokenTheme", {
                get: function () {
                  return this._tokenTheme
                  || (this._tokenTheme = n.TokenTheme.createFromRawTokenTheme(
                      this.rules)), this._tokenTheme
                }, enumerable: !0, configurable: !0
              }), e
            }(), C = function () {
              function e() {
                this._onThemeChange = new c.Emitter, this._knownThemes = new Map, this._knownThemes.set(
                    f, p(f)), this._knownThemes.set(g, p(g)), this._knownThemes.set(
                    m,
                    p(m)), this._styleElement = o.createStyleSheet(), this._styleElement.className = "monaco-colors", this.setTheme(
                    f)
              }

              return Object.defineProperty(e.prototype, "onThemeChange", {
                get: function () {
                  return this._onThemeChange.event
                }, enumerable: !0, configurable: !0
              }), e.prototype.defineTheme = function (e, t) {
                if (!/^[a-z0-9\-]+$/i.test(e) || d(e)) {
                  throw new Error(
                      "Illegal theme name!");
                }
                if (!d(t.base)) {
                  throw new Error("Illegal theme base!");
                }
                var n = [], i = {};
                if (t.inherit) {
                  var o = h(t.base);
                  n = n.concat(o.rules);
                  for (var r in o.colors) {
                    i[r] = o.colors[r]
                  }
                }
                n = n.concat(t.rules);
                for (var r in t.colors) {
                  i[r] = t.colors[r];
                }
                this._knownThemes.set(e, new y(t.base, e, i, n))
              }, e.prototype.getTheme = function () {
                return this._theme
              }, e.prototype.setTheme = function (e) {
                var t;
                t = this._knownThemes.has(e) ? this._knownThemes.get(e)
                    : this._knownThemes.get(f), this._theme = t;
                var i = [], o = {}, s = {
                  addRule: function (e) {
                    o[e] || (i.push(e), o[e] = !0)
                  }
                };
                _.getThemingParticipants().forEach(function (e) {
                  return e(t, s)
                });
                var a = t.tokenTheme.getColorMap();
                return s.addRule(n.generateTokensCSSForColorMap(
                    a)), this._styleElement.innerHTML = i.join(
                    "\n"), r.TokenizationRegistry.setColorMap(
                    a), this._onThemeChange.fire(t), t.id
              }, e
            }();
        t.StandaloneThemeServiceImpl = C
      }),define(d[144], h([1, 0, 24, 16, 45, 80]), function (e, t, n, i, o, r) {
    "use strict";
    Object.defineProperty(t, "__esModule",
        {value: !0}), t.IWorkspaceContextService = i.createDecorator(
        "contextService");
    var s = function () {
      function e(e, t) {
        this._resource = e, this._ctime = t, this._name = o.basename(
            this._resource.fsPath) || this._resource.fsPath
      }

      return Object.defineProperty(e.prototype, "resource", {
        get: function () {
          return this._resource
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "name", {
        get: function () {
          return this._name
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "ctime", {
        get: function () {
          return this._ctime
        }, enumerable: !0, configurable: !0
      }), e.prototype.toResource = function (e, t) {
        return "string" == typeof e ? n.default.file(
            o.join(t ? t.fsPath : this._resource.fsPath, e)) : null
      }, e
    }();
    t.LegacyWorkspace = s;
    var a = function () {
      function e(e, t, n, i) {
        void 0 === i
        && (i = null), this.id = e, this._name = t, this._roots = n, this._configuration = i, this._rootsMap = new r.TrieMap(
            r.TrieMap.PathSplitter), this.updateRootsMap()
      }

      return Object.defineProperty(e.prototype, "roots", {
        get: function () {
          return this._roots
        }, set: function (e) {
          this._roots = e, this.updateRootsMap()
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "name", {
        get: function () {
          return this._name
        }, set: function (e) {
          this._name = e
        }, enumerable: !0, configurable: !0
      }), Object.defineProperty(e.prototype, "configuration", {
        get: function () {
          return this._configuration
        }, set: function (e) {
          this._configuration = e
        }, enumerable: !0, configurable: !0
      }), e.prototype.getRoot = function (e) {
        return e ? this._rootsMap.findSubstr(e.fsPath) : null
      }, e.prototype.updateRootsMap = function () {
        this._rootsMap = new r.TrieMap(r.TrieMap.PathSplitter);
        for (var e = 0, t = this.roots; e < t.length; e++) {
          var n = t[e];
          this._rootsMap.insert(n.fsPath, n)
        }
      }, e.prototype.toJSON = function () {
        return {id: this.id, roots: this.roots, name: this.name}
      }, e
    }();
    t.Workspace = a
  }),define(d[544],
      h([1, 0, 367, 10, 174, 11, 3, 70, 9, 7, 32, 52, 4, 99, 204, 162, 128, 161,
        16, 84, 144, 2, 20, 175, 194, 92, 125, 87, 23, 14, 137, 156, 34, 24,
        392]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, C, b, w, S,
          E, L, x, N, M, T, k, I, D, O, R, P, A) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var F = function () {
          function e(e, t) {
            var n = this;
            this._editor = e, this._model = t, this._decorations = new Map, this._decorationIgnoreSet = new Set, this._callOnDispose = [], this._callOnModelChange = [], this._callOnDispose.push(
                this._editor.onDidChangeModel(function () {
                  return n._onModelChanged()
                })), this._onModelChanged()
          }

          return e.prototype.dispose = function () {
            this._callOnModelChange = s.dispose(
                this._callOnModelChange), this._callOnDispose = s.dispose(
                this._callOnDispose), this.removeDecorations()
          }, e.prototype._onModelChanged = function () {
            this._callOnModelChange = s.dispose(this._callOnModelChange);
            var e = this._editor.getModel();
            if (e) {
              for (var t = 0, n = this._model.groups; t < n.length; t++) {
                var i = n[t];
                if (i.uri.toString()
                    === e.uri.toString()) {
                  return void this._addDecorations(i)
                }
              }
            }
          }, e.prototype._addDecorations = function (t) {
            var n = this;
            this._callOnModelChange.push(
                this._editor.getModel().onDidChangeDecorations(function (e) {
                  return n._onDecorationChanged(e)
                })), this._editor.changeDecorations(function (i) {
              for (var o = [], r = [], s = 0, a = t.children.length; s < a;
                  s++) {
                var u = t.children[s];
                n._decorationIgnoreSet.has(u.id) || (o.push(
                    {range: u.range, options: e.DecorationOptions}), r.push(s))
              }
              for (var l = i.deltaDecorations([], o), s = 0; s < l.length;
                  s++) {
                n._decorations.set(l[s], t.children[r[s]])
              }
            })
          }, e.prototype._onDecorationChanged = function (e) {
            for (var t = this, n = e.changedDecorations, i = [], o = 0,
                r = n.length; o < r; o++) {
              var s = this._decorations.get(n[o]);
              if (s) {
                var a = this._editor.getModel().getDecorationRange(n[o]),
                    u = !1;
                E.Range.equalsRange(a, s.range) || (E.Range.spansMultipleLines(
                    a) ? u = !0 : s.range.endColumn - s.range.startColumn
                    !== a.endColumn - a.startColumn && (u = !0), u
                    ? (this._decorationIgnoreSet.add(s.id), i.push(n[o]))
                    : s.range = a)
              }
            }
            this._editor.changeDecorations(function (e) {
              for (var n = 0, o = i.length; n < o; n++) {
                t._decorations.delete(
                    i[n]);
              }
              e.deltaDecorations(i, [])
            })
          }, e.prototype.removeDecorations = function () {
            var e = this;
            this._editor.changeDecorations(function (t) {
              e._decorations.forEach(function (e, n) {
                t.removeDecoration(n)
              }), e._decorations.clear()
            })
          }, e.DecorationOptions = P.ModelDecorationOptions.register({
            stickiness: L.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
            className: "reference-decoration"
          }), e
        }(), W = function () {
          function e(e) {
            this._textModelResolverService = e
          }

          return e.prototype.getId = function (e, t) {
            return t instanceof T.ReferencesModel ? "root" : t
            instanceof T.FileReferences ? t.id : t instanceof T.OneReference
                ? t.id : void 0
          }, e.prototype.hasChildren = function (e, t) {
            return t instanceof T.ReferencesModel || t
                instanceof T.FileReferences && !t.failure
          }, e.prototype.getChildren = function (e, t) {
            return t instanceof T.ReferencesModel ? l.TPromise.as(t.groups) : t
            instanceof T.FileReferences ? t.resolve(
                this._textModelResolverService).then(function (n) {
              return t.failure ? e.refresh(t).then(function () {
                return n.children
              }) : n.children
            }) : l.TPromise.as([])
          }, e.prototype.getParent = function (e, t) {
            var n = null;
            return t instanceof T.FileReferences ? n = t.parent : t
                instanceof T.OneReference && (n = t.parent), l.TPromise.as(n)
          }, e = v([y(0, k.ITextModelService)], e)
        }(), B = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype.onTap = function (n, i, o) {
            if (i
                instanceof T.FileReferences) {
              return o.preventDefault(), o.stopPropagation(), this._expandCollapse(
                  n, i);
            }
            var r = e.prototype.onTap.call(this, n, i, o);
            return n.emit(t.Events.FOCUSED, i), r
          }, t.prototype.onMouseDown = function (n, i, o) {
            if (o.leftButton) {
              if (i
                  instanceof T.FileReferences) {
                return o.preventDefault(), o.stopPropagation(), this._expandCollapse(
                    n, i);
              }
              var r = e.prototype.onClick.call(this, n, i, o);
              return o.ctrlKey || o.metaKey ? n.emit(t.Events.OPEN_TO_SIDE, i)
                  : 2 === o.detail ? n.emit(t.Events.SELECTED, i) : n.emit(
                      t.Events.FOCUSED, i), r
            }
            return !1
          }, t.prototype.onClick = function (t, n, i) {
            return !i.leftButton && e.prototype.onClick.call(this, t, n, i)
          }, t.prototype._expandCollapse = function (e, t) {
            return e.isExpanded(t) ? e.collapse(t).done(null,
                i.onUnexpectedError) : e.expand(t).done(null,
                i.onUnexpectedError), !0
          }, t.prototype.onEscape = function (e, t) {
            return !1
          }, t.prototype.onEnter = function (n, i) {
            var o = n.getFocus();
            if (o instanceof T.FileReferences) {
              return this._expandCollapse(n,
                  o);
            }
            var r = e.prototype.onEnter.call(this, n, i);
            return i.ctrlKey || i.metaKey ? n.emit(t.Events.OPEN_TO_SIDE, o)
                : n.emit(t.Events.SELECTED, o), r
          }, t.prototype.onUp = function (t, n) {
            return e.prototype.onUp.call(this, t, n), this._fakeFocus(t, n), !0
          }, t.prototype.onPageUp = function (t, n) {
            return e.prototype.onPageUp.call(this, t, n), this._fakeFocus(t,
                n), !0
          }, t.prototype.onLeft = function (t, n) {
            return e.prototype.onLeft.call(this, t, n), this._fakeFocus(t,
                n), !0
          }, t.prototype.onDown = function (t, n) {
            return e.prototype.onDown.call(this, t, n), this._fakeFocus(t,
                n), !0
          }, t.prototype.onPageDown = function (t, n) {
            return e.prototype.onPageDown.call(this, t, n), this._fakeFocus(t,
                n), !0
          }, t.prototype.onRight = function (t, n) {
            return e.prototype.onRight.call(this, t, n), this._fakeFocus(t,
                n), !0
          }, t.prototype._fakeFocus = function (e, n) {
            var i = e.getFocus();
            e.setSelection([i]), e.emit(t.Events.FOCUSED, i)
          }, t.Events = {
            FOCUSED: "events/custom/focused",
            SELECTED: "events/custom/selected",
            OPEN_TO_SIDE: "events/custom/opentoside"
          }, t
        }(_.DefaultController), V = function () {
          function e(e, t, n, i) {
            this._contextService = t, this._environmentService = n;
            var o = document.createElement("div");
            h.addClass(o, "reference-file"), e.appendChild(
                o), this.file = new m.FileLabel(o, A.default.parse("no:file"),
                this._contextService,
                this._environmentService), this.badge = new g.CountBadge(o);
            var r = O.attachBadgeStyler(this.badge, i);
            this.dispose = function () {
              return r.dispose()
            }
          }

          return e.prototype.set = function (e) {
            this.file.setFile(e.uri, this._contextService,
                this._environmentService);
            var t = e.children.length;
            this.badge.setCount(t), e.failure ? this.badge.setTitleFormat(
                n.localize(0, null)) : t > 1 ? this.badge.setTitleFormat(
                n.localize(1, null, t)) : this.badge.setTitleFormat(
                n.localize(2, null, t))
          }, e = v([y(1, S.IWorkspaceContextService),
            y(2, b.optional(R.IEnvironmentService)), y(3, D.IThemeService)], e)
        }(), H = function () {
          function e(e) {
            var t = document.createElement("div");
            this.before = document.createElement(
                "span"), this.inside = document.createElement(
                "span"), this.after = document.createElement(
                "span"), h.addClass(this.inside, "referenceMatch"), h.addClass(
                t, "reference"), t.appendChild(this.before), t.appendChild(
                this.inside), t.appendChild(this.after), e.appendChild(t)
          }

          return e.prototype.set = function (e) {
            var t = e.parent.preview.preview(e.range), n = t.before,
                i = t.inside, o = t.after;
            this.before.innerHTML = u.escape(
                n), this.inside.innerHTML = u.escape(
                i), this.after.innerHTML = u.escape(o)
          }, e
        }(), z = function () {
          function e(e, t, n) {
            this._contextService = e, this._themeService = t, this._environmentService = n
          }

          return e.prototype.getHeight = function (e, t) {
            return 22
          }, e.prototype.getTemplateId = function (t, n) {
            if (n instanceof T.FileReferences) {
              return e._ids.FileReferences;
            }
            if (n instanceof T.OneReference) {
              return e._ids.OneReference;
            }
            throw n
          }, e.prototype.renderTemplate = function (t, n, i) {
            if (n === e._ids.FileReferences) {
              return new V(i,
                  this._contextService, this._environmentService,
                  this._themeService);
            }
            if (n === e._ids.OneReference) {
              return new H(i);
            }
            throw n
          }, e.prototype.renderElement = function (e, t, n, i) {
            if (t instanceof T.FileReferences) {
              i.set(t);
            } else {
              if (!(t instanceof T.OneReference)) {
                throw n;
              }
              i.set(t)
            }
          }, e.prototype.disposeTemplate = function (e, t, n) {
            n instanceof V && n.dispose()
          }, e._ids = {
            FileReferences: "FileReferences",
            OneReference: "OneReference"
          }, e = v([y(0, S.IWorkspaceContextService), y(1, D.IThemeService),
            y(2, b.optional(R.IEnvironmentService))], e)
        }(), K = function () {
          function e() {
          }

          return e.prototype.getAriaLabel = function (e, t) {
            return t instanceof T.FileReferences ? t.getAriaMessage() : t
            instanceof T.OneReference ? t.getAriaMessage() : void 0
          }, e
        }(), U = function () {
          function e(e, t) {
            var n = this;
            this._disposables = [], this._onDidChangePercentages = new r.Emitter, this._ratio = t, this._sash = new p.Sash(
                e, {
                  getVerticalSashLeft: function () {
                    return n._width * n._ratio
                  }, getVerticalSashHeight: function () {
                    return n._height
                  }
                });
            var i;
            this._disposables.push(
                this._sash.addListener("start", function (e) {
                  i = e.startX - n._width * n.ratio
                })), this._disposables.push(
                this._sash.addListener("change", function (e) {
                  var t = e.currentX - i;
                  t > 20 && t + 20 < n._width && (n._ratio = t
                      / n._width, n._sash.layout(), n._onDidChangePercentages.fire(
                      n))
                }))
          }

          return e.prototype.dispose = function () {
            this._sash.dispose(), this._onDidChangePercentages.dispose(), s.dispose(
                this._disposables)
          }, Object.defineProperty(e.prototype, "onDidChangePercentages", {
            get: function () {
              return this._onDidChangePercentages.event
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "width", {
            set: function (e) {
              this._width = e, this._sash.layout()
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "height", {
            set: function (e) {
              this._height = e, this._sash.layout()
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "percentages", {
            get: function () {
              var e = 100 * this._ratio;
              return [e + "%", 100 - e + "%"]
            }, enumerable: !0, configurable: !0
          }), Object.defineProperty(e.prototype, "ratio", {
            get: function () {
              return this._ratio
            }, enumerable: !0, configurable: !0
          }), e
        }(), j = function (e) {
          function u(t, n, i, o, s, a, u) {
            var l = e.call(this, t, {
              showFrame: !1,
              showArrow: !0,
              isResizeable: !0,
              isAccessible: !0
            }) || this;
            return l.layoutData = n, l._textModelResolverService = i, l._contextService = o, l._themeService = s, l._instantiationService = a, l._environmentService = u, l._disposeOnNewModel = [], l._callOnDispose = [], l._onDidSelectReference = new r.Emitter, l._applyTheme(
                s.getTheme()), l._callOnDispose.push(s.onThemeChange(
                l._applyTheme.bind(
                    l))), l._instantiationService = l._instantiationService.createChild(
                new w.ServiceCollection([M.IPeekViewService, l])), l.create(), l
          }

          return f(u, e), u.prototype._applyTheme = function (e) {
            var n = e.getColor(t.peekViewBorder) || c.Color.transparent;
            this.style({
              arrowColor: n,
              frameColor: n,
              headerBackgroundColor: e.getColor(t.peekViewTitleBackground)
                  || c.Color.transparent,
              primaryHeadingColor: e.getColor(t.peekViewTitleForeground),
              secondaryHeadingColor: e.getColor(t.peekViewTitleInfoForeground)
            })
          }, u.prototype.dispose = function () {
            this.setModel(null), this._callOnDispose = s.dispose(
                this._callOnDispose), s.dispose(this._preview,
                this._previewNotAvailableMessage, this._tree, this._sash,
                this._previewModelReference), e.prototype.dispose.call(this)
          }, Object.defineProperty(u.prototype, "onDidSelectReference", {
            get: function () {
              return this._onDidSelectReference.event
            }, enumerable: !0, configurable: !0
          }), u.prototype.show = function (t) {
            this.editor.revealRangeInCenterIfOutsideViewport(
                t), e.prototype.show.call(this, t,
                this.layoutData.heightInLines || 18)
          }, u.prototype.focus = function () {
            this._tree.DOMFocus()
          }, u.prototype._onTitleClick = function (e) {
            this._preview && this._preview.getModel()
            && this._onDidSelectReference.fire({
              element: this._getFocusedReference(),
              kind: e.ctrlKey || e.metaKey ? "side" : "open",
              source: "title"
            })
          }, u.prototype._fillBody = function (e) {
            var t = this, i = d.$(e);
            this.setCssClass("reference-zone-widget"), i.div(
                {class: "messages"}, function (e) {
                  t._messageContainer = e.hide()
                }), i.div({class: "preview inline"}, function (e) {
              var i = {
                scrollBeyondLastLine: !1,
                scrollbar: {
                  verticalScrollbarSize: 14,
                  horizontal: "auto",
                  useShadows: !0,
                  verticalHasArrows: !1,
                  horizontalHasArrows: !1
                },
                overviewRulerLanes: 2,
                fixedOverflowWidgets: !0,
                minimap: {enabled: !1}
              };
              t._preview = t._instantiationService.createInstance(
                  N.EmbeddedCodeEditorWidget, e.getHTMLElement(), i,
                  t.editor), t._previewContainer = e.hide(), t._previewNotAvailableMessage = x.Model.createFromString(
                  n.localize(3, null))
            }), this._sash = new U(e,
                this.layoutData.ratio || .8), this._sash.onDidChangePercentages(
                function () {
                  var e = t._sash.percentages, n = e[0], i = e[1];
                  t._previewContainer.style({width: n}), t._treeContainer.style(
                      {width: i}), t._preview.layout(), t._tree.layout(), t.layoutData.ratio = t._sash.ratio
                }), i.div({class: "ref-tree inline"}, function (e) {
              var i = {
                dataSource: t._instantiationService.createInstance(W),
                renderer: t._instantiationService.createInstance(z),
                controller: new B,
                accessibilityProvider: new K
              }, o = {
                allowHorizontalScroll: !1,
                twistiePixels: 20,
                ariaLabel: n.localize(4, null)
              };
              t._tree = new C.Tree(e.getHTMLElement(), i,
                  o), t._callOnDispose.push(O.attachListStyler(t._tree,
                  t._themeService)), t._treeContainer = e.hide()
            })
          }, u.prototype._doLayoutBody = function (t, n) {
            e.prototype._doLayoutBody.call(this, t, n);
            var i = t + "px";
            this._sash.height = t, this._sash.width = n;
            var o = this._sash.percentages, r = o[0], s = o[1];
            this._previewContainer.style(
                {height: i, width: r}), this._treeContainer.style(
                {height: i, width: s}), this._tree.layout(
                t), this._preview.layout(), this.layoutData = {
              heightInLines: this._viewZone.heightInLines,
              ratio: this._sash.ratio
            }
          }, u.prototype._onWidth = function (e) {
            this._sash.width = e, this._preview.layout()
          }, u.prototype.setSelection = function (e) {
            return this._revealReference(e)
          }, u.prototype.setModel = function (e) {
            if (this._disposeOnNewModel = s.dispose(
                this._disposeOnNewModel), this._model = e, this._model) {
              return this._onNewModel()
            }
          }, u.prototype._onNewModel = function () {
            var e = this;
            if (this._model.empty) {
              return this.setTitle(
                  ""), this._messageContainer.innerHtml(
                  n.localize(5, null)).show(), l.TPromise.as(void 0);
            }
            this._messageContainer.hide(), this._decorationsManager = new F(
                this._preview, this._model), this._disposeOnNewModel.push(
                this._decorationsManager), this._disposeOnNewModel.push(
                this._model.onDidChangeReferenceRange(function (t) {
                  return e._tree.refresh(t)
                })), this._disposeOnNewModel.push(
                this._tree.addListener(B.Events.FOCUSED, function (t) {
                  t instanceof T.OneReference && (e._revealReference(
                      t), e._onDidSelectReference.fire(
                      {element: t, kind: "show", source: "tree"}))
                })), this._disposeOnNewModel.push(
                this._tree.addListener(B.Events.SELECTED, function (t) {
                  t instanceof T.OneReference && e._onDidSelectReference.fire(
                      {element: t, kind: "goto", source: "tree"})
                })), this._disposeOnNewModel.push(
                this._tree.addListener(B.Events.OPEN_TO_SIDE, function (t) {
                  t instanceof T.OneReference && e._onDidSelectReference.fire(
                      {element: t, kind: "side", source: "tree"})
                })), this._disposeOnNewModel.push(
                this._preview.onMouseDown(function (t) {
                  2 === t.event.detail && e._onDidSelectReference.fire({
                    element: e._getFocusedReference(),
                    kind: t.event.ctrlKey || t.event.metaKey ? "side" : "open",
                    source: "editor"
                  })
                })), h.addClass(this.container,
                "results-loaded"), this._treeContainer.show(), this._previewContainer.show(), this._preview.layout(), this._tree.layout(), this.focus();
            var t = 1 === this._model.groups.length ? this._model.groups[0]
                : this._model;
            return this._tree.setInput(t)
          }, u.prototype._getFocusedReference = function () {
            var e = this._tree.getFocus();
            return e instanceof T.OneReference ? e : e
            instanceof T.FileReferences && e.children.length > 0 ? e.children[0]
                : void 0
          }, u.prototype._revealReference = function (e) {
            var t = this;
            e.uri.scheme !== a.Schemas.inMemory ? this.setTitle(e.name,
                o.getPathLabel(e.directory, this._contextService,
                    this._environmentService)) : this.setTitle(
                n.localize(6, null));
            var r = this._textModelResolverService.createModelReference(e.uri);
            return l.TPromise.join([r, this._tree.reveal(e)]).then(
                function (n) {
                  var i = n[0];
                  if (t._model) {
                    s.dispose(t._previewModelReference);
                    var o = i.object;
                    if (o) {
                      t._previewModelReference = i, t._preview.setModel(
                          o.textEditorModel);
                      var r = E.Range.lift(e.range).collapseToStart();
                      t._preview.setSelection(
                          r), t._preview.revealRangeInCenter(r)
                    } else {
                      t._preview.setModel(
                          t._previewNotAvailableMessage), i.dispose();
                    }
                    t._tree.setSelection([e]), t._tree.setFocus(e)
                  } else {
                    i.dispose()
                  }
                }, i.onUnexpectedError)
          }, u
        }(M.PeekViewWidget);
        t.ReferenceWidget = j, t.peekViewTitleBackground = I.registerColor(
            "peekViewTitle.background",
            {dark: "#1E1E1E", light: "#FFFFFF", hc: "#0C141F"},
            n.localize(7, null)), t.peekViewTitleForeground = I.registerColor(
            "peekViewTitleLabel.foreground",
            {dark: "#FFFFFF", light: "#333333", hc: "#FFFFFF"}, n.localize(8,
                null)), t.peekViewTitleInfoForeground = I.registerColor(
            "peekViewTitleDescription.foreground",
            {dark: "#ccccccb3", light: "#6c6c6cb3", hc: "#FFFFFF99"},
            n.localize(9, null)), t.peekViewBorder = I.registerColor(
            "peekView.border",
            {dark: "#007acc", light: "#007acc", hc: I.contrastBorder},
            n.localize(10,
                null)), t.peekViewResultsBackground = I.registerColor(
            "peekViewResult.background",
            {dark: "#252526", light: "#F3F3F3", hc: c.Color.black},
            n.localize(11,
                null)), t.peekViewResultsMatchForeground = I.registerColor(
            "peekViewResult.lineForeground",
            {dark: "#bbbbbb", light: "#646465", hc: c.Color.white},
            n.localize(12,
                null)), t.peekViewResultsFileForeground = I.registerColor(
            "peekViewResult.fileForeground",
            {dark: c.Color.white, light: "#1E1E1E", hc: c.Color.white},
            n.localize(13,
                null)), t.peekViewResultsSelectionBackground = I.registerColor(
            "peekViewResult.selectionBackground",
            {dark: "#3399ff33", light: "#3399ff33", hc: null}, n.localize(14,
                null)), t.peekViewResultsSelectionForeground = I.registerColor(
            "peekViewResult.selectionForeground",
            {dark: c.Color.white, light: "#6C6C6C", hc: c.Color.white},
            n.localize(15, null)), t.peekViewEditorBackground = I.registerColor(
            "peekViewEditor.background",
            {dark: "#001F33", light: "#F2F8FC", hc: c.Color.black},
            n.localize(16,
                null)), t.peekViewEditorGutterBackground = I.registerColor(
            "peekViewEditorGutter.background", {
              dark: t.peekViewEditorBackground,
              light: t.peekViewEditorBackground,
              hc: t.peekViewEditorBackground
            }, n.localize(17,
                null)), t.peekViewResultsMatchHighlight = I.registerColor(
            "peekViewResult.matchHighlightBackground",
            {dark: "#ea5c004d", light: "#ea5c004d", hc: null}, n.localize(18,
                null)), t.peekViewEditorMatchHighlight = I.registerColor(
            "peekViewEditor.matchHighlightBackground",
            {dark: "#ff8f0099", light: "#f5d802de", hc: null},
            n.localize(19, null)), D.registerThemingParticipant(
            function (e, n) {
              var i = e.getColor(t.peekViewResultsMatchHighlight);
              i && n.addRule(
                  ".monaco-editor .reference-zone-widget .ref-tree .referenceMatch { background-color: "
                  + i + "; }");
              var o = e.getColor(t.peekViewEditorMatchHighlight);
              o && n.addRule(
                  ".monaco-editor .reference-zone-widget .preview .reference-decoration { background-color: "
                  + o + "; }");
              var r = e.getColor(I.activeContrastBorder);
              r && (n.addRule(
                  ".monaco-editor .reference-zone-widget .ref-tree .referenceMatch { border: 1px dotted "
                  + r + "; box-sizing: border-box; }"), n.addRule(
                  ".monaco-editor .reference-zone-widget .preview .reference-decoration { border: 2px solid "
                  + r + "; box-sizing: border-box; }"));
              var s = e.getColor(t.peekViewResultsBackground);
              s && n.addRule(
                  ".monaco-editor .reference-zone-widget .ref-tree { background-color: "
                  + s + "; }");
              var a = e.getColor(t.peekViewResultsMatchForeground);
              a && n.addRule(
                  ".monaco-editor .reference-zone-widget .ref-tree { color: "
                  + a + "; }");
              var u = e.getColor(t.peekViewResultsFileForeground);
              u && n.addRule(
                  ".monaco-editor .reference-zone-widget .ref-tree .reference-file { color: "
                  + u + "; }");
              var l = e.getColor(t.peekViewResultsSelectionBackground);
              l && n.addRule(
                  ".monaco-editor .reference-zone-widget .ref-tree .monaco-tree.focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: "
                  + l + "; }");
              var c = e.getColor(t.peekViewResultsSelectionForeground);
              c && n.addRule(
                  ".monaco-editor .reference-zone-widget .ref-tree .monaco-tree.focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: "
                  + c + " !important; }");
              var d = e.getColor(t.peekViewEditorBackground);
              d && n.addRule(
                  ".monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input {\tbackground-color: "
                  + d + ";}");
              var h = e.getColor(t.peekViewEditorGutterBackground);
              h && n.addRule(
                  ".monaco-editor .reference-zone-widget .preview .monaco-editor .margin {\tbackground-color: "
                  + h + ";}")
            })
      }),define(d[198],
      h([1, 0, 364, 10, 3, 36, 64, 11, 16, 19, 50, 58, 62, 144, 76, 30, 92, 544,
        87, 14, 12, 156]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, f, g, m, _, C, b, w,
          S) {
        "use strict";
        Object.defineProperty(t, "__esModule",
            {value: !0}), t.ctxReferenceSearchVisible = new l.RawContextKey(
            "referenceSearchVisible", !1);
        var E = function () {
          function e(e, n, i, o, r, s, a, u, l, c, d, h, p) {
            this._editorService = i, this._textModelResolverService = o, this._telemetryService = r, this._messageService = s, this._instantiationService = a, this._contextService = u, this._storageService = l, this._themeService = c, this._configurationService = d, this._peekViewService = h, this._environmentService = p, this._requestIdPool = 0, this._disposables = [], this._ignoreModelChangeEvent = !1, this._editor = e, this._referenceSearchVisible = t.ctxReferenceSearchVisible.bindTo(
                n)
          }

          return E = e, e.get = function (e) {
            return e.getContribution(E.ID)
          }, e.prototype.getId = function () {
            return E.ID
          }, e.prototype.dispose = function () {
            this._widget
            && (this._widget.dispose(), this._widget = null), this._editor = null
          }, e.prototype.toggleWidget = function (e, t, i) {
            var o, s = this;
            if (this._widget
            && (o = this._widget.position), this.closeWidget(), o
            && e.containsPosition(o)) {
              return null;
            }
            this._referenceSearchVisible.set(!0), this._disposables.push(
                this._editor.onDidChangeModelLanguage(function () {
                  s.closeWidget()
                })), this._disposables.push(
                this._editor.onDidChangeModel(function () {
                  s._ignoreModelChangeEvent || s.closeWidget()
                }));
            var u = JSON.parse(
                this._storageService.get("peekViewLayout", void 0, "{}"));
            this._widget = new _.ReferenceWidget(this._editor, u,
                this._textModelResolverService, this._contextService,
                this._themeService, this._instantiationService,
                this._environmentService), this._widget.setTitle(
                n.localize(0, null)), this._widget.show(
                e), this._disposables.push(this._widget.onDidClose(function () {
              t.cancel(), s._storageService.store("peekViewLayout",
                  JSON.stringify(
                      s._widget.layoutData)), s._widget = null, s.closeWidget()
            })), this._disposables.push(
                this._widget.onDidSelectReference(function (e) {
                  var t = e.element, n = e.kind;
                  switch (n) {
                    case"open":
                      if ("editor" === e.source
                          && s._configurationService.lookup(
                              "editor.stablePeek").value) {
                        break;
                      }
                    case"side":
                      s._openReference(t, "side" === n);
                      break;
                    case"goto":
                      i.onGoto ? i.onGoto(t) : s._gotoReference(t)
                  }
                }));
            var l = ++this._requestIdPool, c = t.then(function (t) {
                  if (l === s._requestIdPool && s._widget) {
                    s._model && s._model.dispose(), s._model = t;
                    var n = Date.now();
                    return s._disposables.push({
                      dispose: function () {
                        s._telemetryService.publicLog("zoneWidgetShown",
                            {mode: "reference search", elapsedTime: Date.now() - n})
                      }
                    }), s._widget.setModel(s._model).then(function () {
                      s._widget.setMetaTitle(i.getMetaTitle(s._model));
                      var t = s._editor.getModel().uri,
                          n = new w.Position(e.startLineNumber, e.startColumn),
                          o = s._model.nearestReference(t, n);
                      if (o) {
                        return s._widget.setSelection(o)
                      }
                    })
                  }
                }, function (e) {
                  s._messageService.show(r.default.Error, e)
                }), d = a.stopwatch(a.fromPromise(c)),
                h = this._editor.getModel().getLanguageIdentifier().language;
            d(function (e) {
              return s._telemetryService.publicLog("findReferences",
                  {duration: e, mode: h})
            })
          }, e.prototype.closeWidget = function () {
            this._widget
            && (this._widget.dispose(), this._widget = null), this._referenceSearchVisible.reset(), this._disposables = o.dispose(
                this._disposables), this._model
            && (this._model.dispose(), this._model = null), this._editor.focus(), this._requestIdPool += 1
          }, e.prototype._gotoReference = function (e) {
            var t = this;
            this._widget.hide(), this._ignoreModelChangeEvent = !0;
            var n = e.uri, o = e.range;
            this._editorService.openEditor(
                {resource: n, options: {selection: o}}).done(function (e) {
              t._ignoreModelChangeEvent = !1, e && e.getControl() === t._editor
                  ? (t._widget.show(o), t._widget.focus()) : t.closeWidget()
            }, function (e) {
              t._ignoreModelChangeEvent = !1, i.onUnexpectedError(e)
            })
          }, e.prototype._openReference = function (e, t) {
            var n = e.uri, i = e.range;
            this._editorService.openEditor(
                {resource: n, options: {selection: i}}, t), t
            || this.closeWidget()
          }, e.ID = "editor.contrib.referencesController", e = E = v(
              [g.editorContribution, y(1, l.IContextKeyService),
                y(2, s.IEditorService), y(3, C.ITextModelService),
                y(4, d.ITelemetryService), y(5, c.IMessageService),
                y(6, u.IInstantiationService), y(7, p.IWorkspaceContextService),
                y(8, f.IStorageService), y(9, b.IThemeService),
                y(10, h.IConfigurationService),
                y(11, u.optional(m.IPeekViewService)),
                y(12, u.optional(S.IEnvironmentService))], e);
          var E
        }();
        t.ReferencesController = E
      }),define(d[199],
      h([1, 0, 351, 51, 40, 15, 36, 7, 64, 50, 2, 13, 177, 198, 125, 92, 19,
        521, 21]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, y, C) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var b = function () {
          return function (e, t, n, i) {
            void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === n
            && (n = !0), void 0 === i
            && (i = !0), this.openToSide = e, this.openInPeek = t, this.filterCurrent = n, this.showMessage = i
          }
        }();
        t.DefinitionActionConfig = b;
        var w = function (e) {
          function t(t, n) {
            var i = e.call(this, n) || this;
            return i._configuration = t, i
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = this, i = e.get(l.IMessageService),
                o = e.get(u.IEditorService), r = t.getModel(),
                a = t.getPosition();
            return this._getDeclarationsAtPosition(r, a).then(function (e) {
              if (!r.isDisposed() && t.getModel() === r) {
                for (var i = -1, s = [], u = 0; u < e.length; u++) {
                  var l = e[u];
                  if (l && l.range) {
                    var d = l.uri, h = l.range, p = s.push({uri: d, range: h});
                    n._configuration.filterCurrent && d.toString()
                    === r.uri.toString() && c.Range.containsPosition(h, a) && -1
                    === i && (i = p - 1)
                  }
                }
                if (0 === s.length) {
                  if (n._configuration.showMessage) {
                    var f = r.getWordAtPosition(a);
                    y.MessageController.get(t).showMessage(
                        n._getNoResultFoundMessage(f), a)
                  }
                } else if (1 === s.length && -1 !== i) {
                  var m = s[0];
                  n._openReference(o, m, !1)
                } else {
                  n._onResult(o, t, new g.ReferencesModel(s))
                }
              }
            }, function (e) {
              return i.show(s.default.Error, e), !1
            })
          }, t.prototype._getDeclarationsAtPosition = function (e, t) {
            return h.getDefinitionsAtPosition(e, t)
          }, t.prototype._getNoResultFoundMessage = function (e) {
            return e && e.word ? n.localize(0, null, e.word) : n.localize(1,
                null)
          }, t.prototype._getMetaTitle = function (e) {
            return e.references.length > 1 && n.localize(2, null,
                e.references.length)
          }, t.prototype._onResult = function (e, t, n) {
            var o = this, r = n.getAriaMessage();
            if (i.alert(r), this._configuration.openInPeek) {
              this._openInPeek(e,
                  t, n);
            } else {
              var s = n.nearestReference(t.getModel().uri, t.getPosition());
              this._openReference(e, s, this._configuration.openToSide).then(
                  function (t) {
                    t && n.references.length > 1 ? o._openInPeek(e, t, n)
                        : n.dispose()
                  })
            }
          }, t.prototype._openReference = function (e, t, n) {
            var i = t.uri, o = t.range;
            return e.openEditor({
              resource: i,
              options: {
                selection: c.Range.collapseToStart(o),
                revealIfVisible: !n
              }
            }, n).then(function (e) {
              return e && e.getControl()
            })
          }, t.prototype._openInPeek = function (e, t, n) {
            var i = this, o = p.ReferencesController.get(t);
            o ? o.toggleWidget(t.getSelection(), a.TPromise.as(n), {
              getMetaTitle: function (e) {
                return i._getMetaTitle(e)
              }, onGoto: function (t) {
                return o.closeWidget(), i._openReference(e, t, !1)
              }
            }) : n.dispose()
          }, t
        }(d.EditorAction);
        t.DefinitionAction = w;
        var S = r.isWeb ? 2118 : 70, E = function (e) {
          function t() {
            return e.call(this, new b, {
              id: i.ID,
              label: n.localize(3, null),
              alias: "Go to Definition",
              precondition: _.ContextKeyExpr.and(
                  C.EditorContextKeys.hasDefinitionProvider,
                  C.EditorContextKeys.isInEmbeddedEditor.toNegated()),
              kbOpts: {kbExpr: C.EditorContextKeys.textFocus, primary: S},
              menuOpts: {group: "navigation", order: 1.1}
            }) || this
          }

          return f(t,
              e), i = t, t.ID = "editor.action.goToDeclaration", t = i = v(
              [d.editorAction], t);
          var i
        }(w);
        t.GoToDefinitionAction = E;
        var L = function (e) {
          function t() {
            return e.call(this, new b(!0), {
              id: i.ID,
              label: n.localize(4, null),
              alias: "Open Definition to the Side",
              precondition: _.ContextKeyExpr.and(
                  C.EditorContextKeys.hasDefinitionProvider,
                  C.EditorContextKeys.isInEmbeddedEditor.toNegated()),
              kbOpts: {
                kbExpr: C.EditorContextKeys.textFocus,
                primary: o.KeyChord(2089, S)
              }
            }) || this
          }

          return f(t,
              e), i = t, t.ID = "editor.action.openDeclarationToTheSide", t = i = v(
              [d.editorAction], t);
          var i
        }(w);
        t.OpenDefinitionToSideAction = L;
        var x = function (e) {
          function t() {
            return e.call(this, new b(void 0, !0, !1), {
              id: "editor.action.previewDeclaration",
              label: n.localize(5, null),
              alias: "Peek Definition",
              precondition: _.ContextKeyExpr.and(
                  C.EditorContextKeys.hasDefinitionProvider,
                  m.PeekContext.notInPeekEditor,
                  C.EditorContextKeys.isInEmbeddedEditor.toNegated()),
              kbOpts: {
                kbExpr: C.EditorContextKeys.textFocus,
                primary: 582,
                linux: {primary: 3140}
              },
              menuOpts: {group: "navigation", order: 1.2}
            }) || this
          }

          return f(t, e), t = v([d.editorAction], t)
        }(w);
        t.PeekDefinitionAction = x;
        var N = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype._getDeclarationsAtPosition = function (e,
              t) {
            return h.getImplementationsAtPosition(e, t)
          }, t.prototype._getNoResultFoundMessage = function (e) {
            return e && e.word ? n.localize(6, null, e.word) : n.localize(7,
                null)
          }, t.prototype._getMetaTitle = function (e) {
            return e.references.length > 1 && n.localize(8, null,
                e.references.length)
          }, t
        }(w);
        t.ImplementationAction = N;
        var M = function (e) {
          function t() {
            return e.call(this, new b, {
              id: i.ID,
              label: n.localize(9, null),
              alias: "Go to Implementation",
              precondition: _.ContextKeyExpr.and(
                  C.EditorContextKeys.hasImplementationProvider,
                  C.EditorContextKeys.isInEmbeddedEditor.toNegated()),
              kbOpts: {kbExpr: C.EditorContextKeys.textFocus, primary: 2118}
            }) || this
          }

          return f(t,
              e), i = t, t.ID = "editor.action.goToImplementation", t = i = v(
              [d.editorAction], t);
          var i
        }(N);
        t.GoToImplementationAction = M;
        var T = function (e) {
          function t() {
            return e.call(this, new b(!1, !0, !1), {
              id: i.ID,
              label: n.localize(10, null),
              alias: "Peek Implementation",
              precondition: _.ContextKeyExpr.and(
                  C.EditorContextKeys.hasImplementationProvider,
                  C.EditorContextKeys.isInEmbeddedEditor.toNegated()),
              kbOpts: {kbExpr: C.EditorContextKeys.textFocus, primary: 3142}
            }) || this
          }

          return f(t,
              e), i = t, t.ID = "editor.action.peekImplementation", t = i = v(
              [d.editorAction], t);
          var i
        }(N);
        t.PeekImplementationAction = T;
        var k = function (e) {
          function t() {
            return null !== e && e.apply(this, arguments) || this
          }

          return f(t, e), t.prototype._getDeclarationsAtPosition = function (e,
              t) {
            return h.getTypeDefinitionsAtPosition(e, t)
          }, t.prototype._getNoResultFoundMessage = function (e) {
            return e && e.word ? n.localize(11, null, e.word) : n.localize(12,
                null)
          }, t.prototype._getMetaTitle = function (e) {
            return e.references.length > 1 && n.localize(13, null,
                e.references.length)
          }, t
        }(w);
        t.TypeDefinitionAction = k;
        var I = function (e) {
          function t() {
            return e.call(this, new b, {
              id: i.ID,
              label: n.localize(14, null),
              alias: "Go to Type Definition",
              precondition: _.ContextKeyExpr.and(
                  C.EditorContextKeys.hasTypeDefinitionProvider,
                  C.EditorContextKeys.isInEmbeddedEditor.toNegated()),
              kbOpts: {kbExpr: C.EditorContextKeys.textFocus, primary: 0},
              menuOpts: {group: "navigation", order: 1.4}
            }) || this
          }

          return f(t,
              e), i = t, t.ID = "editor.action.goToTypeDefinition", t = i = v(
              [d.editorAction], t);
          var i
        }(k);
        t.GoToTypeDefintionAction = I;
        var D = function (e) {
          function t() {
            return e.call(this, new b(!1, !0, !1), {
              id: i.ID,
              label: n.localize(15, null),
              alias: "Peek Type Definition",
              precondition: _.ContextKeyExpr.and(
                  C.EditorContextKeys.hasTypeDefinitionProvider,
                  C.EditorContextKeys.isInEmbeddedEditor.toNegated()),
              kbOpts: {kbExpr: C.EditorContextKeys.textFocus, primary: 0}
            }) || this
          }

          return f(t,
              e), i = t, t.ID = "editor.action.peekTypeDefinition", t = i = v(
              [d.editorAction], t);
          var i
        }(k);
        t.PeekTypeDefinitionAction = D
      }),define(d[547],
      h([1, 0, 352, 18, 10, 7, 88, 2, 17, 25, 30, 177, 3, 87, 14, 23, 131, 199,
        192, 171]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, f, g, m, _, C) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        !function () {
          function e(e, t, n) {
            var r = this;
            this.textModelResolverService = t, this.modeService = n, this.toUnhook = [], this.decorations = [], this.editor = e, this.throttler = new i.Throttler;
            var s = new C.ClickLinkGesture(e);
            this.toUnhook.push(s), this.toUnhook.push(
                s.onMouseMoveOrRelevantKeyDown(function (e) {
                  var t = e[0], n = e[1];
                  r.startFindDefinition(t, n)
                })), this.toUnhook.push(s.onExecute(function (e) {
              r.isEnabled(e) && r.gotoDefinition(e.target,
                  e.hasSideBySideModifier).done(function () {
                r.removeDecorations()
              }, function (e) {
                r.removeDecorations(), o.onUnexpectedError(e)
              })
            })), this.toUnhook.push(s.onCancel(function () {
              r.removeDecorations(), r.currentWordUnderMouse = null
            }))
          }

          return t = e, e.prototype.startFindDefinition = function (e, i) {
            var s = this;
            if (!this.isEnabled(e,
                i)) {
              return this.currentWordUnderMouse = null, void this.removeDecorations();
            }
            var u = e.target.position,
                l = u ? this.editor.getModel().getWordAtPosition(u) : null;
            if (!l) {
              return this.currentWordUnderMouse = null, void this.removeDecorations();
            }
            if (!this.currentWordUnderMouse
                || this.currentWordUnderMouse.startColumn !== l.startColumn
                || this.currentWordUnderMouse.endColumn !== l.endColumn
                || this.currentWordUnderMouse.word !== l.word) {
              this.currentWordUnderMouse = l;
              var c = new m.EditorState(this.editor, 15);
              this.throttler.queue(function () {
                return c.validate(s.editor) ? s.findDefinition(e.target)
                    : r.TPromise.as(null)
              }).then(function (e) {
                if (e && e.length && c.validate(s.editor)) {
                  if (e.length
                      > 1) {
                    s.addDecoration(
                        new a.Range(u.lineNumber, l.startColumn, u.lineNumber,
                            l.endColumn), n.localize(0, null, e.length));
                  } else {
                    var i = e[0];
                    if (!i.uri) {
                      return;
                    }
                    s.textModelResolverService.createModelReference(i.uri).then(
                        function (e) {
                          if (e.object && e.object.textEditorModel) {
                            var n = e.object.textEditorModel,
                                o = i.range.startLineNumber;
                            if (0 !== n.getLineMaxColumn(o)) {
                              for (var r = n.getLineFirstNonWhitespaceColumn(o),
                                  c = Math.min(n.getLineCount(),
                                      o + t.MAX_SOURCE_PREVIEW_LINES),
                                  d = o + 1,
                                  h = r; d < c; d++) {
                                var p = n.getLineFirstNonWhitespaceColumn(d);
                                if (h = Math.min(h, p), r === p) {
                                  break
                                }
                              }
                              var f = new a.Range(o, 1, d + 1, 1),
                                  g = n.getValueInRange(f).replace(
                                      new RegExp("^\\s{" + (h - 1) + "}", "gm"),
                                      "").trim();
                              s.addDecoration(
                                  new a.Range(u.lineNumber, l.startColumn,
                                      u.lineNumber, l.endColumn), {
                                    language: s.modeService.getModeIdByFilenameOrFirstLine(
                                        n.uri.fsPath), value: g
                                  }), e.dispose()
                            } else {
                              e.dispose()
                            }
                          } else {
                            e.dispose()
                          }
                        })
                  }
                } else {
                  s.removeDecorations()
                }
              }).done(void 0, o.onUnexpectedError)
            }
          }, e.prototype.addDecoration = function (e, t) {
            var n = {
              range: e,
              options: {
                inlineClassName: "goto-definition-link",
                hoverMessage: t
              }
            };
            this.decorations = this.editor.deltaDecorations(this.decorations,
                [n])
          }, e.prototype.removeDecorations = function () {
            this.decorations.length > 0
            && (this.decorations = this.editor.deltaDecorations(
                this.decorations, []))
          }, e.prototype.isEnabled = function (e, t) {
            return this.editor.getModel() && e.isNoneOrSingleMouseDown
                && e.target.type === l.MouseTargetType.CONTENT_TEXT
                && (e.hasTriggerModifier || t && t.keyCodeIsTriggerKey)
                && u.DefinitionProviderRegistry.has(this.editor.getModel())
          }, e.prototype.findDefinition = function (e) {
            return this.editor.getModel() ? d.getDefinitionsAtPosition(
                this.editor.getModel(), e.position) : r.TPromise.as(null)
          }, e.prototype.gotoDefinition = function (e, t) {
            var n = this;
            this.editor.setPosition(e.position);
            var i = new _.DefinitionAction(
                new _.DefinitionActionConfig(t, !1, !0, !1), {
                  alias: void 0,
                  label: void 0,
                  id: void 0,
                  precondition: void 0
                });
            return this.editor.invokeWithinContext(function (e) {
              return i.run(e, n.editor)
            })
          }, e.prototype.getId = function () {
            return t.ID
          }, e.prototype.dispose = function () {
            this.toUnhook = h.dispose(this.toUnhook)
          }, e.ID = "editor.contrib.gotodefinitionwithmouse", e.MAX_SOURCE_PREVIEW_LINES = 8, e = t = v(
              [c.editorContribution, y(1, p.ITextModelService),
                y(2, s.IModeService)], e);
          var t
        }();
        f.registerThemingParticipant(function (e, t) {
          var n = e.getColor(g.editorActiveLinkForeground);
          n && t.addRule(".monaco-editor .goto-definition-link { color: " + n
              + " !important; }")
        })
      }),define(d[548],
      h([1, 0, 363, 24, 7, 64, 16, 31, 19, 105, 12, 2, 20, 13, 17, 92, 198, 125,
        18, 10, 21]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, _, C, b, w, S) {
        "use strict";

        function E(e, t) {
          var n = m.getOuterEditor(e);
          if (n) {
            var i = _.ReferencesController.get(n);
            i && i.closeWidget()
          }
        }

        function L(e, t) {
          var n = g.ReferenceProviderRegistry.ordered(e).map(function (n) {
            return b.asWinJsPromise(function (i) {
              return n.provideReferences(e, t, {includeDeclaration: !0}, i)
            }).then(function (e) {
              if (Array.isArray(e)) {
                return e
              }
            }, function (e) {
              w.onUnexpectedExternalError(e)
            })
          });
          return o.TPromise.join(n).then(function (e) {
            for (var t = [], n = 0, i = e; n < i.length; n++) {
              var o = i[n];
              o && t.push.apply(t, o)
            }
            return t
          })
        }

        Object.defineProperty(t, "__esModule", {value: !0});
        var x = {
          getMetaTitle: function (e) {
            return e.references.length > 1 && n.localize(0, null,
                e.references.length)
          }
        }, N = function () {
          function e(e, t, n) {
            n && m.PeekContext.inPeekEditor.bindTo(t)
          }

          return t = e, e.prototype.dispose = function () {
          }, e.prototype.getId = function () {
            return t.ID
          }, e.ID = "editor.contrib.referenceController", e = t = v(
              [p.commonEditorContribution, y(1, u.IContextKeyService),
                y(2, s.optional(m.IPeekViewService))], e);
          var t
        }();
        t.ReferenceController = N;
        var M = function (e) {
          function t() {
            return e.call(this, {
              id: "editor.action.referenceSearch.trigger",
              label: n.localize(1, null),
              alias: "Find All References",
              precondition: u.ContextKeyExpr.and(
                  S.EditorContextKeys.hasReferenceProvider,
                  m.PeekContext.notInPeekEditor,
                  S.EditorContextKeys.isInEmbeddedEditor.toNegated()),
              kbOpts: {kbExpr: S.EditorContextKeys.textFocus, primary: 1094},
              menuOpts: {group: "navigation", order: 1.5}
            }) || this
          }

          return f(t, e), t.prototype.run = function (e, t) {
            var n = _.ReferencesController.get(t);
            if (n) {
              var i = t.getSelection(),
                  o = L(t.getModel(), i.getStartPosition()).then(function (e) {
                    return new C.ReferencesModel(e)
                  });
              n.toggleWidget(i, o, x)
            }
          }, t = v([p.editorAction], t)
        }(p.EditorAction);
        t.ReferenceAction = M;
        a.CommandsRegistry.registerCommand("editor.action.findReferences",
            function (e, t, n) {
              if (!(t instanceof i.default)) {
                throw new Error(
                    "illegal argument, uri");
              }
              if (!n) {
                throw new Error("illegal argument, position");
              }
              return e.get(r.IEditorService).openEditor({resource: t}).then(
                  function (e) {
                    var t = e.getControl();
                    if (h.isCommonCodeEditor(t)) {
                      var i = _.ReferencesController.get(t);
                      if (i) {
                        var r = L(t.getModel(), c.Position.lift(n)).then(
                            function (e) {
                              return new C.ReferencesModel(e)
                            }), s = new d.Range(n.lineNumber, n.column,
                            n.lineNumber, n.column);
                        return o.TPromise.as(i.toggleWidget(s, r, x))
                      }
                    }
                  })
            }), a.CommandsRegistry.registerCommand(
            "editor.action.showReferences", {
              handler: function (e, t, n, s) {
                if (!(t instanceof i.default)) {
                  throw new Error(
                      "illegal argument, uri expected");
                }
                return e.get(r.IEditorService).openEditor({resource: t}).then(
                    function (e) {
                      var t = e.getControl();
                      if (h.isCommonCodeEditor(t)) {
                        var i = _.ReferencesController.get(t);
                        if (i) {
                          return o.TPromise.as(i.toggleWidget(
                              new d.Range(n.lineNumber, n.column, n.lineNumber,
                                  n.column),
                              o.TPromise.as(new C.ReferencesModel(s)), x)).then(
                              function () {
                                return !0
                              })
                        }
                      }
                    })
              },
              description: {
                description: "Show references at a position in a file",
                args: [{
                  name: "uri",
                  description: "The text document in which to show references",
                  constraint: i.default
                }, {
                  name: "position",
                  description: "The position at which to show",
                  constraint: c.Position.isIPosition
                }, {
                  name: "locations",
                  description: "An array of locations.",
                  constraint: Array
                }]
              }
            }), l.KeybindingsRegistry.registerCommandAndKeybindingRule({
          id: "closeReferenceSearch",
          weight: p.CommonEditorRegistry.commandWeight(50),
          primary: 9,
          secondary: [1033],
          when: u.ContextKeyExpr.and(_.ctxReferenceSearchVisible,
              u.ContextKeyExpr.not("config.editor.stablePeek")),
          handler: E
        }), l.KeybindingsRegistry.registerCommandAndKeybindingRule({
          id: "closeReferenceSearchEditor",
          weight: p.CommonEditorRegistry.commandWeight(-101),
          primary: 9,
          secondary: [1033],
          when: u.ContextKeyExpr.and(m.PeekContext.inPeekEditor,
              u.ContextKeyExpr.not("config.editor.stablePeek")),
          handler: E
        }), t.provideReferences = L, p.CommonEditorRegistry.registerDefaultLanguageCommand(
            "_executeReferenceProvider", L)
      }),define(d[549],
      h([1, 0, 134, 191, 193, 164, 514, 313, 450, 451, 452, 516, 454, 455, 456,
        431, 520, 458, 460, 199, 547, 522, 523, 524, 464, 525, 465, 527, 469,
        548, 529, 471, 180, 531, 181, 532, 476, 517]), function (e, t) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0})
      }),define(d[200],
      h([1, 0, 3, 62, 387, 69, 478, 16, 413, 84, 31, 46, 19, 421, 103, 50, 163,
        76, 58, 144, 42, 61, 147, 146, 88, 437, 56, 430, 485, 129, 417, 85, 77,
        542]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, g, m, v, _, y, C, b,
          w, S, E, L, x, N, M, T, k, I, D, O, R) {
        "use strict";
        Object.defineProperty(t, "__esModule", {value: !0});
        var P;
        !function (e) {
          function t(e, t) {
            var n = new o(e, t);
            return r.push(n), n
          }

          var n = new l.ServiceCollection, o = function () {
            function e(e, t) {
              this._serviceId = e, this._factory = t, this._value = null
            }

            return Object.defineProperty(e.prototype, "id", {
              get: function () {
                return this._serviceId
              }, enumerable: !0, configurable: !0
            }), e.prototype.get = function (e) {
              if (!this._value) {
                if (e
                && (this._value = e[this._serviceId.toString()]), this._value
                || (this._value = this._factory(
                    e)), !this._value) {
                  throw new Error(
                      "Service " + this._serviceId + " is missing!");
                }
                n.set(this._serviceId, this._value)
              }
              return this._value
            }, e
          }();
          e.LazyStaticService = o;
          var r = [];
          e.init = function (e) {
            var t = new l.ServiceCollection;
            for (var n in e) {
              e.hasOwnProperty(n) && t.set(a.createDecorator(n),
                  e[n]);
            }
            r.forEach(function (n) {
              return t.set(n.id, n.get(e))
            });
            var i = new u.InstantiationService(t, !0);
            return t.set(a.IInstantiationService, i), [t, i]
          }, e.instantiationService = t(a.IInstantiationService, function () {
            return new u.InstantiationService(n, !0)
          });
          var s = new k.SimpleConfigurationService;
          e.configurationService = t(i.IConfigurationService, function () {
            return s
          }), e.resourceConfigurationService = t(
              E.ITextResourceConfigurationService, function () {
                return new k.SimpleResourceConfigurationService(s)
              }), e.contextService = t(C.IWorkspaceContextService, function () {
            return new k.SimpleWorkspaceContextService
          }), e.telemetryService = t(y.ITelemetryService, function () {
            return new k.StandaloneTelemetryService
          }), e.messageService = t(m.IMessageService, function () {
            return new k.SimpleMessageService
          }), e.markerService = t(g.IMarkerService, function () {
            return new p.MarkerService
          }), e.modeService = t(L.IModeService, function (e) {
            return new x.ModeServiceImpl
          }), e.modelService = t(N.IModelService, function (t) {
            return new M.ModelServiceImpl(e.markerService.get(t),
                e.configurationService.get(t))
          }), e.editorWorkerService = t(w.IEditorWorkerService, function (t) {
            return new S.EditorWorkerServiceImpl(e.modelService.get(t),
                e.resourceConfigurationService.get(t), e.modeService.get(t))
          }), e.standaloneThemeService = t(O.IStandaloneThemeService,
              function () {
                return new R.StandaloneThemeServiceImpl
              }), e.codeEditorService = t(b.ICodeEditorService, function (t) {
            return new T.CodeEditorServiceImpl(e.standaloneThemeService.get(t))
          }), e.progressService = t(v.IProgressService, function () {
            return new k.SimpleProgressService
          }), e.storageService = t(_.IStorageService, function () {
            return _.NullStorageService
          })
        }(P = t.StaticServices || (t.StaticServices = {}));
        var A = function (e) {
          function t(t, n) {
            var a = e.call(this) || this, u = P.init(n), l = u[0], p = u[1];
            a._serviceCollection = l, a._instantiationService = p;
            var f = a.get(i.IConfigurationService),
                g = a.get(m.IMessageService), v = a.get(y.ITelemetryService),
                _ = function (e, t) {
                  var i = null;
                  return n && (i = n[e.toString()]), i
                  || (i = t()), a._serviceCollection.set(e, i), i
                }, C = _(h.IContextKeyService, function () {
                  return a._register(new I.ContextKeyService(f))
                }), b = _(c.ICommandService, function () {
                  return new k.StandaloneCommandService(a._instantiationService)
                });
            _(d.IKeybindingService, function () {
              return a._register(new k.StandaloneKeybindingService(C, b, g, t))
            });
            var w = _(r.IContextViewService, function () {
              return a._register(new s.ContextViewService(t, v, g))
            });
            return _(r.IContextMenuService, function () {
              return a._register(new o.ContextMenuService(t, v, g, w))
            }), _(D.IMenuService, function () {
              return new k.SimpleMenuService(b)
            }), a
          }

          return f(t, e), t.prototype.get = function (e) {
            var t = this._serviceCollection.get(e);
            if (!t) {
              throw new Error("Missing service " + e);
            }
            return t
          }, t.prototype.set = function (e, t) {
            this._serviceCollection.set(e, t)
          }, t.prototype.has = function (e) {
            return this._serviceCollection.has(e)
          }, t
        }(n.Disposable);
        t.DynamicStandaloneServices = A
      }),define(d[422],
      h([1, 0, 20, 25, 540, 48, 200, 480, 71, 273, 129, 17, 397, 164, 64, 31,
        69, 16, 46, 19, 42, 61, 87, 68, 77, 132, 49, 54, 50, 408]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p, f, g, m, v, _, y, C,
          b, w, S, E, L, x, N, M) {
        "use strict";

        function T(e, t, n) {
          var i = new s.DynamicStandaloneServices(e, t), o = null;
          i.has(f.IEditorService) || (o = new c.SimpleEditorService, i.set(
              f.IEditorService, o));
          var r = null;
          i.has(w.ITextModelService)
          || (r = new c.SimpleEditorModelResolverService, i.set(
              w.ITextModelService, r)), i.has(u.IOpenerService) || i.set(
              u.IOpenerService, new a.OpenerService(i.get(f.IEditorService),
                  i.get(g.ICommandService)));
          var l = n(i);
          return o && o.setEditor(l), r && r.setEditor(l), l
        }

        function k(e, t, n) {
          return T(e, n, function (n) {
            return new o.StandaloneEditor(e, t, n,
                n.get(v.IInstantiationService), n.get(C.ICodeEditorService),
                n.get(g.ICommandService), n.get(y.IContextKeyService),
                n.get(_.IKeybindingService), n.get(m.IContextViewService),
                n.get(E.IStandaloneThemeService))
          })
        }

        function I(e) {
          return s.StaticServices.codeEditorService.get().onCodeEditorAdd(
              function (t) {
                e(t)
              })
        }

        function D(e, t, n) {
          return T(e, n, function (n) {
            return new o.StandaloneDiffEditor(e, t, n,
                n.get(v.IInstantiationService), n.get(y.IContextKeyService),
                n.get(_.IKeybindingService), n.get(m.IContextViewService),
                n.get(b.IEditorWorkerService), n.get(C.ICodeEditorService),
                n.get(E.IStandaloneThemeService), n.get(M.IMessageService))
          })
        }

        function O(e, t) {
          return new p.DiffNavigator(e, t)
        }

        function R(e, t, n) {
          return s.StaticServices.modelService.get().createModel(e, t, n)
        }

        function P(e, t, n) {
          if (e = e || "", !t) {
            var i = n ? n.path : null, o = e.indexOf("\n"), r = e;
            return -1 !== o && (r = e.substring(0, o)), R(e,
                s.StaticServices.modeService.get().getOrCreateModeByFilenameOrFirstLine(
                    i, r), n)
          }
          return R(e, s.StaticServices.modeService.get().getOrCreateMode(t), n)
        }

        function A(e, t) {
          s.StaticServices.modelService.get().setMode(e,
              s.StaticServices.modeService.get().getOrCreateMode(t))
        }

        function F(e, t, n) {
          e && s.StaticServices.markerService.get().changeOne(t, e.uri, n)
        }

        function W(e) {
          return s.StaticServices.markerService.get().read(e)
        }

        function B(e) {
          return s.StaticServices.modelService.get().getModel(e)
        }

        function V() {
          return s.StaticServices.modelService.get().getModels()
        }

        function H(e) {
          return s.StaticServices.modelService.get().onModelAdded(e)
        }

        function z(e) {
          return s.StaticServices.modelService.get().onModelRemoved(e)
        }

        function K(e) {
          return s.StaticServices.modelService.get().onModelModeChanged(
              function (t) {
                e({model: t.model, oldLanguage: t.oldModeId})
              })
        }

        function U(e) {
          return h.createWebWorker(s.StaticServices.modelService.get(), e)
        }

        function j(e, t) {
          return l.Colorizer.colorizeElement(
              s.StaticServices.standaloneThemeService.get(),
              s.StaticServices.modeService.get(), e, t)
        }

        function q(e, t, n) {
          return l.Colorizer.colorize(s.StaticServices.modeService.get(), e, t,
              n)
        }

        function G(e, t, n) {
          return void 0 === n && (n = 4), l.Colorizer.colorizeModelLine(e, t, n)
        }

        function Y(e) {
          var t = d.TokenizationRegistry.get(e);
          return t || {
            getInitialState: function () {
              return S.NULL_STATE
            }, tokenize: function (t, n, i) {
              return S.nullTokenize(e, t, n, i)
            }, tokenize2: void 0
          }
        }

        function Z(e, t) {
          s.StaticServices.modeService.get().getOrCreateMode(t);
          for (var n = Y(t), i = e.split(/\r\n|\r|\n/), o = [],
              r = n.getInitialState(), a = 0, u = i.length; a < u; a++) {
            var l = i[a], c = n.tokenize(l, r, 0);
            o[a] = c.tokens, r = c.endState
          }
          return o
        }

        function $(e, t) {
          s.StaticServices.standaloneThemeService.get().defineTheme(e, t)
        }

        function X(e) {
          s.StaticServices.standaloneThemeService.get().setTheme(e)
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.setupServices = function (e) {
          return s.StaticServices.init(e)
        }, t.create = k, t.onDidCreateEditor = I, t.createDiffEditor = D, t.createDiffNavigator = O, t.createModel = P, t.setModelLanguage = A, t.setModelMarkers = F, t.getModelMarkers = W, t.getModel = B, t.getModels = V, t.onDidCreateModel = H, t.onWillDisposeModel = z, t.onDidChangeModelLanguage = K, t.createWebWorker = U, t.colorizeElement = j, t.colorize = q, t.colorizeModelLine = G, t.tokenize = Z, t.defineTheme = $, t.setTheme = X, t.createMonacoEditorAPI = function () {
          return {
            create: k,
            onDidCreateEditor: I,
            createDiffEditor: D,
            createDiffNavigator: O,
            createModel: P,
            setModelLanguage: A,
            setModelMarkers: F,
            getModelMarkers: W,
            getModels: V,
            getModel: B,
            onDidCreateModel: H,
            onWillDisposeModel: z,
            onDidChangeModelLanguage: K,
            createWebWorker: U,
            colorizeElement: j,
            colorize: q,
            colorizeModelLine: G,
            tokenize: Z,
            defineTheme: $,
            setTheme: X,
            ScrollbarVisibility: r.ScrollbarVisibility,
            WrappingIndent: x.WrappingIndent,
            OverviewRulerLane: n.OverviewRulerLane,
            EndOfLinePreference: n.EndOfLinePreference,
            DefaultEndOfLine: n.DefaultEndOfLine,
            EndOfLineSequence: n.EndOfLineSequence,
            TrackedRangeStickiness: n.TrackedRangeStickiness,
            CursorChangeReason: N.CursorChangeReason,
            MouseTargetType: i.MouseTargetType,
            TextEditorCursorStyle: x.TextEditorCursorStyle,
            TextEditorCursorBlinkingStyle: x.TextEditorCursorBlinkingStyle,
            ContentWidgetPositionPreference: i.ContentWidgetPositionPreference,
            OverlayWidgetPositionPreference: i.OverlayWidgetPositionPreference,
            RenderMinimap: x.RenderMinimap,
            InternalEditorOptions: x.InternalEditorOptions,
            BareFontInfo: L.BareFontInfo,
            FontInfo: L.FontInfo,
            TextModelResolvedOptions: n.TextModelResolvedOptions,
            FindMatch: n.FindMatch,
            EditorType: n.EditorType
          }
        }
      }),define(d[227],
      h([1, 0, 7, 126, 200, 17, 60, 12, 2, 18, 275, 276, 43, 97]),
      function (e, t, n, i, o, r, s, a, u, l, c, d, h, p) {
        "use strict";

        function f(e) {
          i.ModesRegistry.registerLanguage(e)
        }

        function g() {
          var e = [];
          return e = e.concat(i.ModesRegistry.getLanguages())
        }

        function m(e, t) {
          var n = o.StaticServices.modeService.get().onDidCreateMode(
              function (i) {
                i.getId() === e && (n.dispose(), t())
              });
          return n
        }

        function v(e, t) {
          var n = o.StaticServices.modeService.get().getLanguageIdentifier(e);
          if (!n) {
            throw new Error(
                "Cannot set configuration for unknown language " + e);
          }
          return h.LanguageConfigurationRegistry.register(n, t)
        }

        function _(e, t) {
          var n = o.StaticServices.modeService.get().getLanguageIdentifier(e);
          if (!n) {
            throw new Error(
                "Cannot set tokens provider for unknown language " + e);
          }
          var i = new F(o.StaticServices.standaloneThemeService.get(), n, t);
          return r.TokenizationRegistry.register(e, i)
        }

        function y(e, t) {
          var n = c.compile(e, t), i = d.createTokenizationSupport(
              o.StaticServices.modeService.get(),
              o.StaticServices.standaloneThemeService.get(), e, n);
          return r.TokenizationRegistry.register(e, i)
        }

        function C(e, t) {
          return r.ReferenceProviderRegistry.register(e, t)
        }

        function b(e, t) {
          return r.RenameProviderRegistry.register(e, t)
        }

        function w(e, t) {
          return r.SignatureHelpProviderRegistry.register(e, t)
        }

        function S(e, t) {
          return r.HoverProviderRegistry.register(e, {
            provideHover: function (e, n, i) {
              var o = e.getWordAtPosition(n);
              return l.toThenable(t.provideHover(e, n, i)).then(function (e) {
                if (e) {
                  return !e.range && o && (e.range = new u.Range(
                      n.lineNumber, o.startColumn, n.lineNumber,
                      o.endColumn)), e.range || (e.range = new u.Range(
                      n.lineNumber, n.column, n.lineNumber, n.column)), e
                }
              })
            }
          })
        }

        function E(e, t) {
          return r.DocumentSymbolProviderRegistry.register(e, t)
        }

        function L(e, t) {
          return r.DocumentHighlightProviderRegistry.register(e, t)
        }

        function x(e, t) {
          return r.DefinitionProviderRegistry.register(e, t)
        }

        function N(e, t) {
          return r.ImplementationProviderRegistry.register(e, t)
        }

        function M(e, t) {
          return r.TypeDefinitionProviderRegistry.register(e, t)
        }

        function T(e, t) {
          return r.CodeLensProviderRegistry.register(e, t)
        }

        function k(e, t) {
          return r.CodeActionProviderRegistry.register(e, {
            provideCodeActions: function (e, n, i) {
              var r = o.StaticServices.markerService.get().read(
                  {resource: e.uri}).filter(function (e) {
                return u.Range.areIntersectingOrTouching(e, n)
              });
              return t.provideCodeActions(e, n, {markers: r}, i)
            }
          })
        }

        function I(e, t) {
          return r.DocumentFormattingEditProviderRegistry.register(e, t)
        }

        function D(e, t) {
          return r.DocumentRangeFormattingEditProviderRegistry.register(e, t)
        }

        function O(e, t) {
          return r.OnTypeFormattingEditProviderRegistry.register(e, t)
        }

        function R(e, t) {
          return r.LinkProviderRegistry.register(e, t)
        }

        function P(e, t) {
          var n = new B(t);
          return r.SuggestRegistry.register(e, {
            triggerCharacters: t.triggerCharacters,
            provideCompletionItems: function (e, t, i) {
              return n.provideCompletionItems(e, t, i)
            },
            resolveCompletionItem: function (e, t, i, o) {
              return n.resolveCompletionItem(e, t, i, o)
            }
          })
        }

        function A(e) {
          switch (e) {
            case W.Method:
              return "method";
            case W.Function:
              return "function";
            case W.Constructor:
              return "constructor";
            case W.Field:
              return "field";
            case W.Variable:
              return "variable";
            case W.Class:
              return "class";
            case W.Interface:
              return "interface";
            case W.Module:
              return "module";
            case W.Property:
              return "property";
            case W.Unit:
              return "unit";
            case W.Value:
              return "value";
            case W.Enum:
              return "enum";
            case W.Keyword:
              return "keyword";
            case W.Snippet:
              return "snippet";
            case W.Text:
              return "text";
            case W.Color:
              return "color";
            case W.File:
              return "file";
            case W.Reference:
              return "reference";
            case W.Folder:
              return "folder"
          }
          return "property"
        }

        Object.defineProperty(t, "__esModule",
            {value: !0}), t.register = f, t.getLanguages = g, t.onLanguage = m, t.setLanguageConfiguration = v;
        var F = function () {
          function e(e, t, n) {
            this._standaloneThemeService = e, this._languageIdentifier = t, this._actual = n
          }

          return e.prototype.getInitialState = function () {
            return this._actual.getInitialState()
          }, e.prototype._toClassicTokens = function (e, t, n) {
            for (var i = [], o = 0, r = 0, s = e.length; r < s; r++) {
              var a = e[r], u = a.startIndex;
              0 === r ? u = 0 : u < o && (u = o), i[r] = new p.Token(u + n,
                  a.scopes, t), o = u
            }
            return i
          }, e.prototype.tokenize = function (e, t, n) {
            var i, o = this._actual.tokenize(e, t),
                r = this._toClassicTokens(o.tokens,
                    this._languageIdentifier.language, n);
            return i = o.endState.equals(t) ? t
                : o.endState, new p.TokenizationResult(r, i)
          }, e.prototype._toBinaryTokens = function (e, t) {
            for (var n = this._languageIdentifier.id,
                i = this._standaloneThemeService.getTheme().tokenTheme, o = [],
                r = 0, s = 0, a = 0, u = e.length; a < u; a++) {
              var l = e[a], c = i.match(n, l.scopes);
              if (!(r > 0 && o[r - 1] === c)) {
                var d = l.startIndex;
                0 === a ? d = 0 : d < s && (d = s), o[r++] = d
                    + t, o[r++] = c, s = d
              }
            }
            for (var h = new Uint32Array(r), a = 0; a < r; a++) {
              h[a] = o[a];
            }
            return h
          }, e.prototype.tokenize2 = function (e, t, n) {
            var i, o = this._actual.tokenize(e, t),
                r = this._toBinaryTokens(o.tokens, n);
            return i = o.endState.equals(t) ? t
                : o.endState, new p.TokenizationResult2(r, i)
          }, e
        }();
        t.TokenizationSupport2Adapter = F, t.setTokensProvider = _, t.setMonarchTokensProvider = y, t.registerReferenceProvider = C, t.registerRenameProvider = b, t.registerSignatureHelpProvider = w, t.registerHoverProvider = S, t.registerDocumentSymbolProvider = E, t.registerDocumentHighlightProvider = L, t.registerDefinitionProvider = x, t.registerImplementationProvider = N, t.registerTypeDefinitionProvider = M, t.registerCodeLensProvider = T, t.registerCodeActionProvider = k, t.registerDocumentFormattingEditProvider = I, t.registerDocumentRangeFormattingEditProvider = D, t.registerOnTypeFormattingEditProvider = O, t.registerLinkProvider = R, t.registerCompletionItemProvider = P;
        var W;
        !function (e) {
          e[e.Text = 0] = "Text", e[e.Method = 1] = "Method", e[e.Function = 2] = "Function", e[e.Constructor = 3] = "Constructor", e[e.Field = 4] = "Field", e[e.Variable = 5] = "Variable", e[e.Class = 6] = "Class", e[e.Interface = 7] = "Interface", e[e.Module = 8] = "Module", e[e.Property = 9] = "Property", e[e.Unit = 10] = "Unit", e[e.Value = 11] = "Value", e[e.Enum = 12] = "Enum", e[e.Keyword = 13] = "Keyword", e[e.Snippet = 14] = "Snippet", e[e.Color = 15] = "Color", e[e.File = 16] = "File", e[e.Reference = 17] = "Reference", e[e.Folder = 18] = "Folder"
        }(W = t.CompletionItemKind || (t.CompletionItemKind = {}));
        var B = function () {
          function e(e) {
            this._provider = e
          }

          return e.from = function (e, t, n) {
            var i = {
              _actual: e,
              label: e.label,
              insertText: e.label,
              type: A(e.kind),
              detail: e.detail,
              documentation: e.documentation,
              sortText: e.sortText,
              filterText: e.filterText,
              snippetType: "internal"
            }, o = e.textEdit ? e.textEdit.range : e.range;
            if (o) {
              if (!(o.startLineNumber === o.endLineNumber) || o.startLineNumber
                  !== t.lineNumber) {
                return console.warn(
                    "INVALID range, must be single line and on the same line"), null;
              }
              i.overwriteBefore = t.column
                  - o.startColumn, i.overwriteAfter = o.endColumn - t.column
            } else {
              i.overwriteBefore = t.column
                  - n.column, i.overwriteAfter = 0;
            }
            return e.textEdit ? i.insertText = e.textEdit.text : "object"
            == typeof e.insertText && "string" == typeof e.insertText.value
                ? (i.insertText = e.insertText.value, i.snippetType = "textmate")
                : "string" == typeof e.insertText
                && (i.insertText = e.insertText), i
          }, e.prototype.provideCompletionItems = function (t, n, i) {
            return l.toThenable(
                this._provider.provideCompletionItems(t, n, i)).then(
                function (i) {
                  var o = {suggestions: []}, r = n,
                      s = t.getWordUntilPosition(n);
                  s && (r = new a.Position(r.lineNumber, s.startColumn));
                  var u;
                  if (Array.isArray(i)) {
                    u = {
                      items: i,
                      isIncomplete: !1
                    };
                  } else if ("object" == typeof i && Array.isArray(
                      i.items)) {
                    u = i, o.incomplete = u.isIncomplete;
                  } else {
                    if (!i) {
                      return;
                    }
                    console.warn(
                        "INVALID result from completion provider. expected CompletionItem-array or CompletionList but got:",
                        i)
                  }
                  for (var l = 0; l < u.items.length; l++) {
                    var c = u.items[l], d = e.from(c, n, r);
                    d && o.suggestions.push(d)
                  }
                  return o
                })
          }, e.prototype.resolveCompletionItem = function (t, i, o, r) {
            if ("function"
                != typeof this._provider.resolveCompletionItem) {
              return n.TPromise.as(
                  o);
            }
            var s = o._actual;
            return s ? l.toThenable(
                this._provider.resolveCompletionItem(s, r)).then(function (n) {
              var o = i, r = t.getWordUntilPosition(i);
              return r && (o = new a.Position(o.lineNumber,
                  r.startColumn)), e.from(n, i, o)
            }) : n.TPromise.as(o)
          }, e
        }();
        t.createMonacoLanguagesAPI = function () {
          return {
            register: f,
            getLanguages: g,
            onLanguage: m,
            setLanguageConfiguration: v,
            setTokensProvider: _,
            setMonarchTokensProvider: y,
            registerReferenceProvider: C,
            registerRenameProvider: b,
            registerCompletionItemProvider: P,
            registerSignatureHelpProvider: w,
            registerHoverProvider: S,
            registerDocumentSymbolProvider: E,
            registerDocumentHighlightProvider: L,
            registerDefinitionProvider: x,
            registerImplementationProvider: N,
            registerTypeDefinitionProvider: M,
            registerCodeLensProvider: T,
            registerCodeActionProvider: k,
            registerDocumentFormattingEditProvider: I,
            registerDocumentRangeFormattingEditProvider: D,
            registerOnTypeFormattingEditProvider: O,
            registerLinkProvider: R,
            DocumentHighlightKind: r.DocumentHighlightKind,
            CompletionItemKind: W,
            SymbolKind: r.SymbolKind,
            IndentAction: s.IndentAction
          }
        }
      }),define(d[553],
      h([1, 0, 152, 422, 227, 49, 549, 534, 535, 432, 539, 537, 538, 477]),
      function (e, t, n, i, o, r) {
        "use strict";
        Object.defineProperty(t, "__esModule",
            {value: !0}), r.EDITOR_DEFAULTS.wrappingIndent = r.WrappingIndent.None, r.EDITOR_DEFAULTS.contribInfo.folding = !1, r.EDITOR_DEFAULTS.viewInfo.glyphMargin = !1, r.EDITOR_DEFAULTS.autoIndent = !1;
        var s = n.createMonacoBaseAPI();
        for (var a in s) {
          s.hasOwnProperty(a) && (t[a] = s[a]);
        }
        t.editor = i.createMonacoEditorAPI(), t.languages = o.createMonacoLanguagesAPI();
        var u = self;
        u.monaco = t, void 0 !== u.require && "function"
        == typeof u.require.config && u.require.config({
          ignoreDuplicateModules: ["vscode-languageserver-types",
            "vscode-languageserver-types/main", "vscode-nls",
            "vscode-nls/vscode-nls", "jsonc-parser", "jsonc-parser/main",
            "vscode-uri", "vscode-uri/index"]
        })
      })
}).call(this);

/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * monaco-typescript version: 2.3.0(fd172013f77fa599e03a1c17b79aab62637569fa)
 * Released under the MIT license
 * https://github.com/Microsoft/monaco-typescript/blob/master/LICENSE.md
 *-----------------------------------------------------------------------------*/
define("vs/language/typescript/src/monaco.contribution",
    ["require", "exports", "vs/editor/edcore.main"], function (e, t) {
      "use strict";

      function n() {
        return new monaco.Promise(function (e, t) {
          r(function (n) {
            n.getTypeScriptWorker().then(e, t)
          })
        })
      }

      function i() {
        return new monaco.Promise(function (e, t) {
          r(function (n) {
            n.getJavaScriptWorker().then(e, t)
          })
        })
      }

      function o() {
        return {
          ModuleKind: c,
          JsxEmit: p,
          NewLineKind: u,
          ScriptTarget: g,
          ModuleResolutionKind: d,
          typescriptDefaults: S,
          javascriptDefaults: m,
          getTypeScriptWorker: n,
          getJavaScriptWorker: i
        }
      }

      function r(t) {
        e(["vs/language/typescript/src/mode"], t)
      }

      Object.defineProperty(t, "__esModule", {value: !0});
      var a = monaco.Emitter, s = function () {
        function e(e, t) {
          this._onDidChange = new a, this._extraLibs = Object.create(
              null), this._workerMaxIdleTime = 12e4, this.setCompilerOptions(
              e), this.setDiagnosticsOptions(t)
        }

        return Object.defineProperty(e.prototype, "onDidChange", {
          get: function () {
            return this._onDidChange.event
          }, enumerable: !0, configurable: !0
        }), e.prototype.getExtraLibs = function () {
          var e = Object.create(null);
          for (var t in this._extraLibs) {
            e[t] = this._extraLibs[t];
          }
          return Object.freeze(e)
        }, e.prototype.addExtraLib = function (e, t) {
          var n = this;
          if ("undefined" == typeof t && (t = "ts:extralib-"
              + Date.now()), this._extraLibs[t]) {
            throw new Error(
                t + " already a extra lib");
          }
          return this._extraLibs[t] = e, this._onDidChange.fire(this), {
            dispose: function () {
              delete n._extraLibs[t] && n._onDidChange.fire(n)
            }
          }
        }, e.prototype.getCompilerOptions = function () {
          return this._compilerOptions
        }, e.prototype.setCompilerOptions = function (e) {
          this._compilerOptions = e || Object.create(
              null), this._onDidChange.fire(this)
        }, e.prototype.getDiagnosticsOptions = function () {
          return this._diagnosticsOptions
        }, e.prototype.setDiagnosticsOptions = function (e) {
          this._diagnosticsOptions = e || Object.create(
              null), this._onDidChange.fire(this)
        }, e.prototype.setMaximunWorkerIdleTime = function (e) {
          this._workerMaxIdleTime = e
        }, e.prototype.getWorkerMaxIdleTime = function () {
          return this._workerMaxIdleTime
        }, e.prototype.setEagerModelSync = function (e) {
          this._eagerModelSync = e
        }, e.prototype.getEagerModelSync = function () {
          return this._eagerModelSync
        }, e
      }();
      t.LanguageServiceDefaultsImpl = s;
      var c;
      !function (e) {
        e[e.None = 0] = "None", e[e.CommonJS = 1] = "CommonJS", e[e.AMD = 2] = "AMD", e[e.UMD = 3] = "UMD", e[e.System = 4] = "System", e[e.ES2015 = 5] = "ES2015"
      }(c || (c = {}));
      var p;
      !function (e) {
        e[e.None = 0] = "None", e[e.Preserve = 1] = "Preserve", e[e.React = 2] = "React"
      }(p || (p = {}));
      var u;
      !function (e) {
        e[e.CarriageReturnLineFeed = 0] = "CarriageReturnLineFeed", e[e.LineFeed = 1] = "LineFeed"
      }(u || (u = {}));
      var l;
      !function (e) {
        e[e.Unknown = 0] = "Unknown", e[e.JS = 1] = "JS", e[e.JSX = 2] = "JSX", e[e.TS = 3] = "TS", e[e.TSX = 4] = "TSX"
      }(l || (l = {}));
      var g;
      !function (e) {
        e[e.ES3 = 0] = "ES3", e[e.ES5 = 1] = "ES5", e[e.ES2015 = 2] = "ES2015", e[e.ES2016 = 3] = "ES2016", e[e.ES2017 = 4] = "ES2017", e[e.ESNext = 5] = "ESNext", e[e.Latest = 5] = "Latest"
      }(g || (g = {}));
      var f;
      !function (e) {
        e[e.Standard = 0] = "Standard", e[e.JSX = 1] = "JSX"
      }(f || (f = {}));
      var d;
      !function (e) {
        e[e.Classic = 1] = "Classic", e[e.NodeJs = 2] = "NodeJs"
      }(d || (d = {}));
      var S = new s({allowNonTsExtensions: !0, target: g.Latest},
              {noSemanticValidation: !1, noSyntaxValidation: !1}),
          m = new s({allowNonTsExtensions: !0, allowJs: !0, target: g.Latest},
              {noSemanticValidation: !0, noSyntaxValidation: !1});
      monaco.languages.typescript = o(), monaco.languages.register({
        id: "typescript",
        extensions: [".ts", ".tsx"],
        aliases: ["TypeScript", "ts", "typescript"],
        mimetypes: ["text/typescript"]
      }), monaco.languages.onLanguage("typescript", function () {
        r(function (e) {
          return e.setupTypeScript(S)
        })
      }), monaco.languages.register({
        id: "javascript",
        extensions: [".js", ".es6", ".jsx"],
        firstLine: "^#!.*\\bnode",
        filenames: ["jakefile"],
        aliases: ["JavaScript", "javascript", "js"],
        mimetypes: ["text/javascript"]
      }), monaco.languages.onLanguage("javascript", function () {
        r(function (e) {
          return e.setupJavaScript(m)
        })
      })
    });
/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * monaco-css version: 1.3.3(69ad62c9851c1708c61446b6ac2218b99fcdd428)
 * Released under the MIT license
 * https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md
 *-----------------------------------------------------------------------------*/
!function (e) {
  if ("object" == typeof module && "object" == typeof module.exports) {
    var n = e(require, exports);
    void 0 !== n && (module.exports = n)
  } else {
    "function" == typeof define && define.amd && define(
        "vs/language/css/monaco.contribution",
        ["require", "exports", "vs/editor/edcore.main"], e)
  }
}(function (e, n) {
  function o() {
    return {cssDefaults: a, lessDefaults: c, scssDefaults: u}
  }

  function t(n) {
    e(["vs/language/css/cssMode"], n)
  }

  Object.defineProperty(n, "__esModule", {value: !0});
  var i = monaco.Emitter, r = function () {
    function e(e, n) {
      this._onDidChange = new i, this._languageId = e, this.setDiagnosticsOptions(
          n)
    }

    return Object.defineProperty(e.prototype, "onDidChange", {
      get: function () {
        return this._onDidChange.event
      }, enumerable: !0, configurable: !0
    }), Object.defineProperty(e.prototype, "languageId", {
      get: function () {
        return this._languageId
      }, enumerable: !0, configurable: !0
    }), Object.defineProperty(e.prototype, "diagnosticsOptions", {
      get: function () {
        return this._diagnosticsOptions
      }, enumerable: !0, configurable: !0
    }), e.prototype.setDiagnosticsOptions = function (e) {
      this._diagnosticsOptions = e || Object.create(
          null), this._onDidChange.fire(this)
    }, e
  }();
  n.LanguageServiceDefaultsImpl = r;
  var s = {
    validate: !0,
    lint: {
      compatibleVendorPrefixes: "ignore",
      vendorPrefix: "warning",
      duplicateProperties: "warning",
      emptyRules: "warning",
      importStatement: "ignore",
      boxModel: "ignore",
      universalSelector: "ignore",
      zeroUnits: "ignore",
      fontFaceProperties: "warning",
      hexColorLength: "error",
      argumentsInColorFunction: "error",
      unknownProperties: "warning",
      ieHack: "ignore",
      unknownVendorSpecificProperties: "ignore",
      propertyIgnoredDueToDisplay: "warning",
      important: "ignore",
      "float": "ignore",
      idSelector: "ignore"
    }
  }, a = new r("css", s), u = new r("scss", s), c = new r("less", s);
  monaco.languages.css = o(), monaco.languages.onLanguage("less", function () {
    t(function (e) {
      return e.setupMode(c)
    })
  }), monaco.languages.onLanguage("scss", function () {
    t(function (e) {
      return e.setupMode(u)
    })
  }), monaco.languages.onLanguage("css", function () {
    t(function (e) {
      return e.setupMode(a)
    })
  })
});
/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * monaco-json version: 1.3.2(63d6dadc9cc5928c83a232dd95cdc31403f08974)
 * Released under the MIT license
 * https://github.com/Microsoft/monaco-json/blob/master/LICENSE.md
 *-----------------------------------------------------------------------------*/
!function (e) {
  if ("object" == typeof module && "object" == typeof module.exports) {
    var n = e(require, exports);
    void 0 !== n && (module.exports = n)
  } else {
    "function" == typeof define && define.amd && define(
        "vs/language/json/monaco.contribution",
        ["require", "exports", "vs/editor/edcore.main"], e)
  }
}(function (e, n) {
  function o() {
    return {jsonDefaults: r}
  }

  function t(n) {
    e(["vs/language/json/jsonMode"], n)
  }

  Object.defineProperty(n, "__esModule", {value: !0});
  var i = monaco.Emitter, s = function () {
    function e(e, n) {
      this._onDidChange = new i, this._languageId = e, this.setDiagnosticsOptions(
          n)
    }

    return Object.defineProperty(e.prototype, "onDidChange", {
      get: function () {
        return this._onDidChange.event
      }, enumerable: !0, configurable: !0
    }), Object.defineProperty(e.prototype, "languageId", {
      get: function () {
        return this._languageId
      }, enumerable: !0, configurable: !0
    }), Object.defineProperty(e.prototype, "diagnosticsOptions", {
      get: function () {
        return this._diagnosticsOptions
      }, enumerable: !0, configurable: !0
    }), e.prototype.setDiagnosticsOptions = function (e) {
      this._diagnosticsOptions = e || Object.create(
          null), this._onDidChange.fire(this)
    }, e
  }();
  n.LanguageServiceDefaultsImpl = s;
  var a = {validate: !0, allowComments: !0, schemas: []}, r = new s("json", a);
  monaco.languages.json = o(), monaco.languages.register({
    id: "json",
    extensions: [".json", ".bowerrc", ".jshintrc", ".jscsrc", ".eslintrc",
      ".babelrc"],
    aliases: ["JSON", "json"],
    mimetypes: ["application/json"]
  }), monaco.languages.onLanguage("json", function () {
    t(function (e) {
      return e.setupMode(r)
    })
  })
});
/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * monaco-html version: 1.3.2(5ec45016d73d25ccf42bc1626de18d4329aabe34)
 * Released under the MIT license
 * https://github.com/Microsoft/monaco-html/blob/master/LICENSE.md
 *-----------------------------------------------------------------------------*/
!function (e) {
  if ("object" == typeof module && "object" == typeof module.exports) {
    var t = e(require, exports);
    void 0 !== t && (module.exports = t)
  } else {
    "function" == typeof define && define.amd && define(
        "vs/language/html/monaco.contribution",
        ["require", "exports", "vs/editor/edcore.main"], e)
  }
}(function (e, t) {
  function n() {
    return {htmlDefaults: d, razorDefaults: p, handlebarDefaults: m}
  }

  function o(t) {
    e(["vs/language/html/htmlMode"], t)
  }

  Object.defineProperty(t, "__esModule", {value: !0});
  var a = monaco.Emitter, r = function () {
    function e(e, t) {
      this._onDidChange = new a, this._languageId = e, this.setOptions(t)
    }

    return Object.defineProperty(e.prototype, "onDidChange", {
      get: function () {
        return this._onDidChange.event
      }, enumerable: !0, configurable: !0
    }), Object.defineProperty(e.prototype, "languageId", {
      get: function () {
        return this._languageId
      }, enumerable: !0, configurable: !0
    }), Object.defineProperty(e.prototype, "options", {
      get: function () {
        return this._options
      }, enumerable: !0, configurable: !0
    }), e.prototype.setOptions = function (e) {
      this._options = e || Object.create(null), this._onDidChange.fire(this)
    }, e
  }();
  t.LanguageServiceDefaultsImpl = r;
  var u = {
        tabSize: 4,
        insertSpaces: !1,
        wrapLineLength: 120,
        unformatted: 'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',
        contentUnformatted: "pre",
        indentInnerHtml: !1,
        preserveNewLines: !0,
        maxPreserveNewLines: null,
        indentHandlebars: !1,
        endWithNewline: !1,
        extraLiners: "head, body, /html",
        wrapAttributes: "auto"
      }, i = {format: u, suggest: {html5: !0, angular1: !0, ionic: !0}},
      s = {format: u, suggest: {html5: !0}},
      l = {format: u, suggest: {html5: !0, razor: !0}}, g = "html",
      c = "handlebars", f = "razor", d = new r(g, i), m = new r(c, s),
      p = new r(f, l);
  monaco.languages.html = n(), monaco.languages.onLanguage(g, function () {
    o(function (e) {
      return e.setupMode(d)
    })
  }), monaco.languages.onLanguage(c, function () {
    o(function (e) {
      return e.setupMode(m)
    })
  }), monaco.languages.onLanguage(f, function () {
    o(function (e) {
      return e.setupMode(p)
    })
  })
});
/*!-----------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * monaco-languages version: 0.9.0(e162b4ba29044167bc7181c42b3270fa8a467424)
 * Released under the MIT license
 * https://github.com/Microsoft/monaco-languages/blob/master/LICENSE.md
 *-----------------------------------------------------------------------------*/
define("vs/basic-languages/src/monaco.contribution",
    ["require", "exports", "vs/editor/edcore.main"], function (s, e) {
      "use strict";

      function i(e) {
        var i = o[e].module;
        return new l.Promise(function (a, t, o) {
          s([i], function (s) {
            l.languages.setMonarchTokensProvider(e,
                s.language), l.languages.setLanguageConfiguration(e, s.conf), a(
                void 0)
          }, t)
        })
      }

      function a(s) {
        return n[s] || (n[s] = i(s)), n[s]
      }

      function t(s) {
        var e = s.id;
        o[e] = s, l.languages.register(s), l.languages.onLanguage(e,
            function () {
              a(e)
            })
      }

      Object.defineProperty(e, "__esModule", {value: !0});
      var l = "undefined" == typeof monaco ? self.monaco : monaco, o = {},
          n = {};
      e.loadLanguage = a, t({
        id: "bat",
        extensions: [".bat", ".cmd"],
        aliases: ["Batch", "bat"],
        module: "./bat"
      }), t({
        id: "coffeescript",
        extensions: [".coffee"],
        aliases: ["CoffeeScript", "coffeescript", "coffee"],
        mimetypes: ["text/x-coffeescript", "text/coffeescript"],
        module: "./coffee"
      }), t({
        id: "c",
        extensions: [".c", ".h"],
        aliases: ["C", "c"],
        module: "./cpp"
      }), t({
        id: "cpp",
        extensions: [".cpp", ".cc", ".cxx", ".hpp", ".hh", ".hxx"],
        aliases: ["C++", "Cpp", "cpp"],
        module: "./cpp"
      }), t({
        id: "csharp",
        extensions: [".cs", ".csx"],
        aliases: ["C#", "csharp"],
        module: "./csharp"
      }), t({
        id: "dockerfile",
        extensions: [".dockerfile"],
        filenames: ["Dockerfile"],
        aliases: ["Dockerfile"],
        module: "./dockerfile"
      }), t({
        id: "fsharp",
        extensions: [".fs", ".fsi", ".ml", ".mli", ".fsx", ".fsscript"],
        aliases: ["F#", "FSharp", "fsharp"],
        module: "./fsharp"
      }), t(
          {id: "go", extensions: [".go"], aliases: ["Go"], module: "./go"}), t({
        id: "handlebars",
        extensions: [".handlebars", ".hbs"],
        aliases: ["Handlebars", "handlebars"],
        mimetypes: ["text/x-handlebars-template"],
        module: "./handlebars"
      }), t({
        id: "html",
        extensions: [".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp",
          ".asp", ".aspx", ".jshtm"],
        aliases: ["HTML", "htm", "html", "xhtml"],
        mimetypes: ["text/html", "text/x-jshtm", "text/template",
          "text/ng-template"],
        module: "./html"
      }), t({
        id: "ini",
        extensions: [".ini", ".properties", ".gitconfig"],
        filenames: ["config", ".gitattributes", ".gitconfig", ".editorconfig"],
        aliases: ["Ini", "ini"],
        module: "./ini"
      }), t({
        id: "pug",
        extensions: [".jade", ".pug"],
        aliases: ["Pug", "Jade", "jade"],
        module: "./pug"
      }), t({
        id: "java",
        extensions: [".java", ".jav"],
        aliases: ["Java", "java"],
        mimetypes: ["text/x-java-source", "text/x-java"],
        module: "./java"
      }), t({
        id: "lua",
        extensions: [".lua"],
        aliases: ["Lua", "lua"],
        module: "./lua"
      }), t({
        id: "markdown",
        extensions: [".md", ".markdown", ".mdown", ".mkdn", ".mkd", ".mdwn",
          ".mdtxt", ".mdtext"],
        aliases: ["Markdown", "markdown"],
        module: "./markdown"
      }), t({
        id: "msdax",
        extensions: [".dax", ".msdax"],
        aliases: ["DAX", "MSDAX"],
        module: "./msdax"
      }), t({
        id: "objective-c",
        extensions: [".m"],
        aliases: ["Objective-C"],
        module: "./objective-c"
      }), t({
        id: "postiats",
        extensions: [".dats", ".sats", ".hats"],
        aliases: ["ATS", "ATS/Postiats"],
        module: "./postiats"
      }), t({
        id: "php",
        extensions: [".php", ".php4", ".php5", ".phtml", ".ctp"],
        aliases: ["PHP", "php"],
        mimetypes: ["application/x-php"],
        module: "./php"
      }), t({
        id: "powershell",
        extensions: [".ps1", ".psm1", ".psd1"],
        aliases: ["PowerShell", "powershell", "ps", "ps1"],
        module: "./powershell"
      }), t({
        id: "python",
        extensions: [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"],
        aliases: ["Python", "py"],
        firstLine: "^#!/.*\\bpython[0-9.-]*\\b",
        module: "./python"
      }), t({
        id: "r",
        extensions: [".r", ".rhistory", ".rprofile", ".rt"],
        aliases: ["R", "r"],
        module: "./r"
      }), t({
        id: "razor",
        extensions: [".cshtml"],
        aliases: ["Razor", "razor"],
        mimetypes: ["text/x-cshtml"],
        module: "./razor"
      }), t({
        id: "ruby",
        extensions: [".rb", ".rbx", ".rjs", ".gemspec", ".pp"],
        filenames: ["rakefile"],
        aliases: ["Ruby", "rb"],
        module: "./ruby"
      }), t({
        id: "swift",
        aliases: ["Swift", "swift"],
        extensions: [".swift"],
        mimetypes: ["text/swift"],
        module: "./swift"
      }), t({
        id: "sql",
        extensions: [".sql"],
        aliases: ["SQL"],
        module: "./sql"
      }), t({
        id: "vb",
        extensions: [".vb"],
        aliases: ["Visual Basic", "vb"],
        module: "./vb"
      }), t({
        id: "xml",
        extensions: [".xml", ".dtd", ".ascx", ".csproj", ".config", ".wxi",
          ".wxl", ".wxs", ".xaml", ".svg", ".svgz"],
        firstLine: "(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",
        aliases: ["XML", "xml"],
        mimetypes: ["text/xml", "application/xml", "application/xaml+xml",
          "application/xml-dtd"],
        module: "./xml"
      }), t({
        id: "less",
        extensions: [".less"],
        aliases: ["Less", "less"],
        mimetypes: ["text/x-less", "text/less"],
        module: "./less"
      }), t({
        id: "scss",
        extensions: [".scss"],
        aliases: ["Sass", "sass", "scss"],
        mimetypes: ["text/x-scss", "text/scss"],
        module: "./scss"
      }), t({
        id: "css",
        extensions: [".css"],
        aliases: ["CSS", "css"],
        mimetypes: ["text/css"],
        module: "./css"
      }), t({
        id: "yaml",
        extensions: [".yaml", ".yml"],
        aliases: ["YAML", "yaml", "YML", "yml"],
        mimetypes: ["application/x-yaml"],
        module: "./yaml"
      }), t({
        id: "sol",
        extensions: [".sol"],
        aliases: ["sol", "solidity", "Solidity"],
        module: "./solidity"
      }), t({
        id: "sb",
        extensions: [".sb"],
        aliases: ["Small Basic", "sb"],
        module: "./sb"
      })
    });
define("vs/editor/editor.main",
    ["vs/editor/edcore.main", "vs/language/typescript/src/monaco.contribution",
      "vs/language/css/monaco.contribution",
      "vs/language/json/monaco.contribution",
      "vs/language/html/monaco.contribution",
      "vs/basic-languages/src/monaco.contribution"], function () {
    });
//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.js.map
